docker-compose.yml
Rama main · réplica de lectura del repositorio original.
# Terminas server. Put an HTTPS reverse proxy (Caddy, nginx, Traefik, a Cloudflare tunnel...) in front of it:
# the web UI needs https (browser crypto), and sign-in details should never travel in plain text.
# WebSocket upgrades on /api/relay must be passed through (web SSH).
#
# cp .env.example .env # set SHELL_PUBLIC_URL=https://your.domain and a sign-in method
# docker compose up -d
services:
terminas:
build: .
image: terminas-server:latest
restart: unless-stopped
init: true
env_file: .env
environment:
SHELL_HOST: 0.0.0.0
SHELL_PORT: 5280
SHELL_DATA_DIR: /data
SHELL_TRUST_PROXY: 1
# admin console: listens inside the container, published only on this machine's 127.0.0.1 (see below)
SHELL_CONSOLE_HOST: 0.0.0.0
SHELL_CONSOLE_PORT: 5282
ports:
# only on this machine; the reverse proxy connects here
- "127.0.0.1:5280:5280"
# admin console — never publish this to the internet. Open http://127.0.0.1:5282/admin on this machine
# (or through an SSH tunnel). Set its password: docker compose exec terminas node server/scripts/console-password.ts
- "127.0.0.1:5282:5282"
volumes:
- terminas-data:/data
volumes:
terminas-data: