Changelog
Overview
- In app terminal access to your servers re #142
- docker exec into containers re #75
- IMPORTANT: Use
disable_terminals
(PERIPHERY_DISABLE_TERMINALS
) in periphery config to disable this functionality on particular servers.
Details
-
Server: Adds the
Terminals
tab, which allows you to connect to and manage multiple persistent shells on the server.- Uses portable-pty for the pseudoterminal on the backend and xterm.js for the frontend.
- Networked over websockets.
- Supports TUI applications like
htop
/ncdu
/nvim
(and runnables-cli) - Each shell history / active running process is persisted on periphery after the client disconnects, making them suitable for long running tasks (you can run servers from them etc)
- The shell starts as the same linux user that
periphery
runs as.- For
systemctl --user
installs, you login as your linux user on the host (complete with any custom prompt). - For root systemctl installs, you would login as root linux user. You should consider creating a custom
periphery
user with intented permissions, and updating yourperiphery.service
systemctl config to use this user instead: link - For container Periphery, you connect to shell inside periphery container. The functionality will be more limited, but you can still communicate with docker socket in there (its mounted in), and
docker exec
into containers
- For
- The terminals can have mutliple Komodo users connected at once, and their view is synced.
- If Periphery is restarted, the Terminal sessions will be lost, as they are child processes of periphery.
- User must be admin or have
Write
permission on Server to connect to terminals - Use
disable_terminals
(PERIPHERY_DISABLE_TERMINALS
) in periphery config to disable this functionality on particular servers. - Easy access to
docker exec -it
(container shell access) from Container page, Terminal tab
-
Deployment / Stack: Adds the Terminal tab to Deployments and Stack services.
- Configurable shell command inside container, eg
sh
orbash
.
- Configurable shell command inside container, eg