Skip to main content

Docker

The simplest way to get Termix server up and running is with Docker.

Termix is light. It idles at about 118 MB of RAM, and 1 core with 1 GB covers most setups. See Benchmarks for measured usage and how much to allocate for larger fleets.

Installation

services:
termix:
image: ghcr.io/lukegus/termix:latest
container_name: termix
restart: unless-stopped
ports:
- '8080:8080'
volumes:
- termix-data:/app/data
environment:
PORT: '8080'
depends_on:
- guacd
networks:
- termix-net

guacd:
image: guacamole/guacd:1.6.0
container_name: guacd
restart: unless-stopped
ports:
- "4822:4822"
networks:
- termix-net

volumes:
termix-data:
driver: local

networks:
termix-net:
driver: bridge

To start the containers, run:

docker-compose up -d

Docker Hub Mirror

As an alternative to GHCR, you can also use the Docker Hub mirror by replacing ghcr.io/lukegus/termix:latest with bugattiguy527/termix:latest in any of the configurations above.

Specific Version

By default, :latest always points to the newest release. If you want to pin a specific version instead, replace :latest in your docker run/compose with one of these tag formats, swapping in the version you want:

  • :x.x.x, for example :2.4.0
  • :release-x.x.x, for example :release-2.4.0

Both formats point to the same image for a given version, so use whichever you prefer. See a list of all versions here, or browse every published tag on GitHub.

Beta Builds

Want to try what's coming next?

Termix publishes an automated weekly beta build from active development, tagged :beta. It's a great way to try upcoming features early and help catch issues before they reach stable.

To opt in, replace :latest with :beta in any of the configurations above, for example:

ghcr.io/lukegus/termix:beta
warning

The :beta tag is a rolling, unstable channel:

  • It is overwritten every week with a fresh snapshot of in-progress development, it is not a fixed version.
  • It may contain incomplete features, regressions, or breaking changes without notice.
  • Do not run it in production or on data you can't afford to lose.

If you need to reference an exact beta snapshot later, each weekly build is also pushed as a dated tag, :beta-x.x.x-beta.YYYYMMDD, and published as a pre-release on GitHub.

Found something broken on a beta build? Open a Beta Feedback report on the Support page, or mention it in the Discord server in the meantime. Be sure to include the exact beta build tag you're running.

Database

The compose files above use SQLite, which is the default and needs no setup. The database lives in the termix-data volume.

If you would rather keep the data in PostgreSQL or MySQL, add two variables to the termix service:

environment:
PORT: '8080'
DATABASE_DIALECT: postgres
DATABASE_URL: postgres://termix:yourpassword@db:5432/termix

Keep the termix-data volume either way. Termix still uses it for encryption keys, SSL certificates, and session recordings.

See Database for a full compose example with a Postgres service, MySQL setup, and TLS options.

Environment Variables

See docs.

Usage

Once installed, Termix will be available at http://localhost:8080 (or whichever port you configured).