Files
terminus/compose.yml
T
Brooke KuhlmannandBenjamin Dumke-von der Ehe 7c910537c0 Fixed Docker Compose configuration to mount fonts volume
Ensures the designer, extension preview, and headless browser rendering can access the fonts managed by the fonts synchronizer. This was missed when first adding these commits: 0d79c8b, 7f6d8a8, b0b5fc2.

Co-authored-by: Benjamin Dumke-von der Ehe <mail@benjamin-dumke.de>
Milestone: patch
2026-06-13 11:27:25 -06:00

137 lines
3.6 KiB
YAML

name: "terminus"
services:
init-certificates:
image: ghcr.io/usetrmnl/terminus:latest
user: root
environment:
CERTIFICATE_URLS: ${CERTIFICATE_URLS:-}
volumes:
- certificates:/etc/ssl/certs
entrypoint: ["/bin/bash", "-c"]
command: scripts/docker/install-certificates
restart: no
web:
init: true
image: ghcr.io/usetrmnl/terminus:latest
environment:
HANAMI_PORT: ${HANAMI_PORT}
API_URI: ${API_URI}
APP_SECRET: ${APP_SECRET}
APP_SETUP: true
DATABASE_URL: postgres://${DATABASE_USER}:${DATABASE_PASSWORD}@database:${DATABASE_PORT}/${DATABASE_NAME}
KEYVALUE_URL: redis://:${KEYVALUE_PASSWORD}@keyvalue:${KEYVALUE_PORT}/${KEYVALUE_DATABASE}
ports:
- "${HANAMI_PORT}:${HANAMI_PORT}"
restart: unless-stopped
volumes:
- certificates:/etc/ssl/certs
- web-fonts:/app/public/fonts
- web-fonts:/usr/share/fonts/terminus
- web-uploads:/app/public/uploads
depends_on:
init-certificates:
condition: service_completed_successfully
database:
condition: service_healthy
keyvalue:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "curl --fail --silent http://localhost:${HANAMI_PORT}/up"]
interval: 30s
timeout: 10s
retries: 3
start_period: 45s
deploy:
resources:
limits:
memory: 1G
cpus: "1.0"
worker:
init: true
image: ghcr.io/usetrmnl/terminus:latest
environment:
HANAMI_PORT: ${HANAMI_PORT}
API_URI: ${API_URI}
APP_SECRET: ${APP_SECRET}
DATABASE_URL: postgres://${DATABASE_USER}:${DATABASE_PASSWORD}@database:${DATABASE_PORT}/${DATABASE_NAME}
KEYVALUE_URL: redis://:${KEYVALUE_PASSWORD}@keyvalue:${KEYVALUE_PORT}/${KEYVALUE_DATABASE}
command: bundle exec sidekiq -r ./config/sidekiq.rb
restart: unless-stopped
volumes:
- certificates:/etc/ssl/certs
- web-fonts:/app/public/fonts
- web-fonts:/usr/share/fonts/terminus
- web-uploads:/app/public/uploads
depends_on:
web:
condition: service_healthy
healthcheck:
test: ["CMD", "pgrep", "-f", "sidekiq"]
interval: 30s
timeout: 10s
retries: 3
start_period: 45s
deploy:
resources:
limits:
memory: 1G
cpus: "1.0"
database:
image: postgres:18.4-alpine
environment:
POSTGRES_USER: ${DATABASE_USER}
POSTGRES_DB: ${DATABASE_NAME}
POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
ports:
- "${DATABASE_PORT}:${DATABASE_PORT}"
volumes:
- database-data:/var/lib/postgresql
command: -p ${DATABASE_PORT}
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready --username ${DATABASE_USER} --dbname ${DATABASE_NAME} --port ${DATABASE_PORT}"]
interval: 10s
timeout: 5s
retries: 3
deploy:
resources:
limits:
memory: 2G
cpus: "1.0"
keyvalue:
image: valkey/valkey:9-alpine
ports:
- "${KEYVALUE_PORT}:${KEYVALUE_PORT}"
command: >
valkey-server
--requirepass ${KEYVALUE_PASSWORD}
--maxmemory 512mb
--maxmemory-policy noeviction
--port ${KEYVALUE_PORT}
restart: unless-stopped
volumes:
- keyvalue-data:/data
healthcheck:
test: ["CMD-SHELL", "redis-cli -p ${KEYVALUE_PORT} ping || exit 1"]
interval: 10s
timeout: 5s
retries: 3
start_period: 2s
deploy:
resources:
limits:
memory: 512M
cpus: "0.5"
volumes:
database-data:
keyvalue-data:
web-fonts:
web-uploads:
certificates: