v1.17.4
moghtech/komodov1.17.4Apr 27, 2025by mbecker20
AI Summary
Adds in-app terminal access to servers and docker exec into containers, allowing users to run TUI applications like htop and nvim directly from the Komodo interface.
Key Highlights
- Added in-app terminal access to servers
- Added docker exec into containers
- Supports TUI applications like htop, ncdu, and nvim
New Features
- Persistent shell terminals on servers
- Docker exec support
- Multi-user terminal viewing
- Shell history persistence
Full Release Notes
# 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](https://docs.rs/portable-pty/0.9.0/portable_pty/) for the pseudoterminal on the backend and [xterm.js](https://xtermjs.org/) for the frontend.
- Networked over websockets.
- Supports TUI applications like `htop` / `ncdu` / `nvim` (and [runnables-cli](https://crates.io/crates/runnables-cli/1.3.7))
- 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 your `periphery.service` systemctl config to use this user instead: [link](https://bbs.archlinux.org/viewtopic.php?id=162297)
- 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
- 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` or `bash`.


