What's new
Built-in web terminal: open an interactive shell inside any running container straight from the browser (docker exec over WebSocket + xterm.js). No more SSH-ing into the host just to poke around inside a container. Auto-detects bash/sh, and shows a clear message if a container has no shell at all.
One-click image update: the "Update" badge is no longer just a read-only flag. Click it and Servedash pulls the new image and recreates the container with its current config (ports, volumes, env, networks). Before touching anything, it classifies the update:
- ✅ Safe: not managed by docker-compose or a Portainer stack, no custom networking. One click, no extra confirmation.
⚠️ Risky: compose-managed, Portainer-managed, or has custom networking. Servedash explains exactly why and requires you to check "I understand the risk, update anyway" before proceeding.
If a recreate fails partway through, Servedash restores the original container rather than leaving you with neither.
⚠️ Security-relevant change
The Docker socket mount changes from read-only to read-write in docker-compose.yml — required for docker exec and image recreate/removal. This is equivalent to root on the host. If you're upgrading, update your compose file's volume line and keep Servedash off the public internet, same as before but now more so.
Upgrading
git pull
docker compose up -d --build
Make sure your docker-compose.yml mounts /var/run/docker.sock:/var/run/docker.sock (no :ro).v1.3.0 发布说明
更新内容
内置网页终端: 直接在浏览器里打开任意运行中容器的交互式 shell(通过 WebSocket 跑 docker exec + xterm.js),不用再为了看一眼容器里面的东西专门 SSH 到宿主机。自动探测 bash/sh,容器里完全没有 shell 的话也会给出清楚的提示。
一键镜像更新: "Update" 徽章不再只是只读提示了。点一下,Servedash 会 pull 新镜像,并用当前容器的配置(端口、volume、环境变量、网络)重建容器。在改动任何东西之前,会先做风险分类:
- ✅ 安全:不是 docker-compose 或 Portainer stack 管理的、没有自定义网络配置。一键完成,不需要额外确认。
⚠️ 有风险:compose 管理、Portainer 管理,或有自定义网络配置。Servedash 会说明具体原因,需要勾选"我理解风险,仍然更新"才会继续。
如果重建过程中途失败,Servedash 会恢复原容器,不会让你两边都没有。
⚠️ 涉及安全性的改动
Docker socket 挂载方式从只读改成了读写(docker-compose.yml)——内置终端和镜像重建/删除都需要这个权限,等同于宿主机的 root 权限。升级的话记得把你自己的 compose 文件里 volume 那行也改一下,并且继续保持不暴露在公网上。
升级方法
git pull
docker compose up -d --build
确认你的 docker-compose.yml 里 socket 挂载是 /var/run/docker.sock:/var/run/docker.sock(不带 :ro)。