NOTICE: Xterm.js support is currently not implemented. I'm asking the community for support in helping us reverse engineer the network layer of Proxmox's Xterm.js sessions.
Convoy terminal is a console proxy for Convoy that hides the Proxmox origin IP address. Written with Rust and utilizing Svelte, Coterm is built for performance, and every millisecond counts.
docker run -p 3000:3000 -e CONVOY_URL="<panel url>" -e TOKEN="<coterm token>" ghcr.io/convoypanel/coterm:latest
The port can be modified by editing the first number to a different value. For example, if you want to broadcast on port 80, you do ...-p 80:3000...
. More information about publishing ports can be found here on the Docker documentation.
While the quick start is an easy way to get up and running, you may want to enable TLS for Coterm to serve console sessions securely. For that reason, we recommend using a docker-compose.yml
configuration. The default configuration we have below is for Caddy. You may modify the settings to use other web servers like Nginx, Apache, etc.
Download the example compose file and environment file
curl -o docker-compose.yml https://raw.githubusercontent.com/ConvoyPanel/coterm/develop/docker-compose.example.yml
curl -o .env https://raw.githubusercontent.com/ConvoyPanel/coterm/develop/.env.docker.example
Please open the .env
environment file in your editor of choice and populate the variables.
If you need to modify the Caddy web server configuration, please refer to the Caddyfile documentation.
git clone "https://github.com/ConvoyPanel/coterm.git"
npm install
npm run build
cd ./src-rust && cargo build --release
npm install
npm run dev
Note: you will need to re-run cargo run
every time you make an edit to the Rust backend.
cd ./src-rust
cargo run