Homeio 1.10.2 turns the Terminal into a real shell on your server and lets you name, decorate and link the containers you started yourself. Full notes are in CHANGELOG.md; the release post is at homeio.app/homeio-1-10-2-terminal-release.
New
- A real terminal (#58). The Terminal window opens a full login shell on the server, the same one an SSH login gives: root on a script install, so
git,apt,nano,topand anything else that runs in a terminal works, with colours, resizing, clickable links and scrollback. Copy and paste are Ctrl+Shift+C / Ctrl+Shift+V. Open in Terminal on an app opens a shell inside its container. When the shell exits, Enter starts a new one. Where the shell cannot run (the Docker image, demo mode) the window keeps the previous command terminal. - Name, icon and link for containers Homeio did not deploy (#55). App Settings in their right-click menu sets a display name, an icon URL (with a preview) and the URL that Open Dashboard and Copy URL use. Settings are kept by container name, so they survive the container being recreated; Reset brings back the defaults.
Fixed
- The terminal WebSocket could never open a shell: node-pty was loaded through a default import it does not have, and on script installs nginx dropped the WebSocket upgrade.
/api/terminalnow has its own nginx location.
Security
- The terminal WebSocket only accepts Homeio's own pages. A handshake whose Origin does not match the host it came in on (another site, or another app on the same IP at a different port) is refused, even with a valid session cookie.
Upgrading
Script installs:
curl -fsSL https://raw.githubusercontent.com/doctor-io/homeio/main/scripts/update.sh | sudo bashUpdate now in Settings also installs 1.10.2, but it runs the update script already on the server, which writes the old nginx settings: the Terminal opens a shell only after the next update, or after running the command above once.
Docker installs:
docker compose pull && docker compose up -dThe database gets one new table (container_customizations), created on start.