selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Terminus logo

Self-host Terminus

0.79.0

Self-hosted server for managing TRMNL e-paper devices

BetaOpen SourceMIT
Updatedyesterday
LanguageRuby
Setup difficultyAdvanced
Stars
763
Ports
2300 (HTTP web interface), 2443 (HTTPS web interface)
Requires
PostgreSQL, Valkey
Docker
ghcr.io/usetrmnl/terminus
Install with Docker

What is Terminus?

Terminus is a self-hosted web server built with Ruby and Hanami for managing TRMNL e-paper displays on your local network or cloud. It serves as a Build Your Own Server implementation compatible with the TRMNL Core service but adds features not available in the hosted version. The software provides a web dashboard for managing devices, sensors, screens, playlists, extensions, models, palettes, and firmware updates. It uses PostgreSQL for the database, Valkey (or Redis/Dragonfly) for caching, Sidekiq for background jobs, Rodauth for authentication, and Puma as the web server. Deployment options include Docker, Docker Compose, Render, and Raspberry Pi. The project is currently in beta (pre-1.0) and licensed under MIT.

Terminus alternatives

Should you self-host Terminus?

Terminus scores 50/100 on selfhost.directory (how scoring works) and ranks #63 of 104 in Home Automation. It has 763 GitHub stars, +2 in the last 30 days.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is advanced: plan for several services and some ongoing maintenance. An official Docker image is available. It is MIT-licensed and written mostly in Ruby.

Its closest alternative on selfhost.directory is Home Assistant (91/100, 91 841 stars). It scores higher overall, so compare the two before you pick. See Terminus vs Home Assistant side by side.

Features

  • Background Jobs
  • Device Dashboard
  • Device Management
  • Extensions
  • Firmware Management
  • Model Support
  • Palette Management
  • Playlists
  • REST API
  • Screen Import
  • Screen Management
  • Sensor Support
  • User Accounts
  • User Management

Terminus README

Terminus

Terminus is a Ruby/Hanami web server that allows you to manage TRMNL devices running on your own local network or hosted cloud. This is our flagship BYOS implementation that aims to be compatible with our TRMNL Core server but also different since this open source solution provides features not possible in our Core application.

Deploy to Render

⚠️ This is a Beta software as we haven’t reached 1.0.0 status as of yet. This means — while we strive to reduce the number of changes that require effort on your part to a minimum — there will be times when changes can’t be avoided.

How to install Terminus

Install Terminus with Docker

Environment variables
API_URI, DATABASE_URL, KEYVALUE_URL, and others via .env file

docker buildx build --tag terminus . docker run --init --rm --env-file .env --env API_URI=http://192.168.0.192:2300 --env DATABASE_URL="postgres://$USER:@host.docker.internal:5432/terminus_development" --env KEYVALUE_URL="redis://host.docker.internal:6379" --volume "/Users/demo/terminus/public":"/app/public" --publish 2300:2300 terminus sh -c "bundle exec puma --config ./config/puma.rb & bundle exec sidekiq -r ./config/sidekiq.rb & wait"

Runs entire stack (web, worker, database, keyvalue) in a single container. Useful for Unraid and similar systems.

How to configure Terminus

  • API_ACCESS_TOKEN_PERIOD1800JWT access token validity period in seconds
  • APP_SECRETauto-generatedUsed for session, cookie, and CSRF protection
  • APP_SETUPnil (true for web service)Runs setup/update steps (asset compilation, database migrations). Used by Docker only via entrypoint script
  • API_URIhost machine's IP address and portHost URL for device connections (IP/domain and port)
  • CERTIFICATE_URLSComma-separated list of CA certificate URLs to install as trusted certificates (Docker only)

More in Device Management

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…