Why this Configuration?
- True Data Sovereignty: 100% GDPR-compliant on-premises deployment. You own your configuration and data without vendor lock-in.
- Hardware Agnostic: Optimized and verified across low-power ARM64 SBCs (Raspberry Pi 5) and x86_64 hypervisors (Proxmox VE LXC & VM).
- Engine Freedom: Tested and supported under standard Docker Engine and unprivileged rootless Podman.
- Platform Verification: Tested on Proxmox LXC: docker (v2.19.14, 2026-09-14), podman (v2.19.14, 2026-09-14); Proxmox VM: docker (v2.19.14, 2026-09-14), podman (v2.19.14, 2026-09-14).
Quick Start (Standalone Docker Compose)
The snippet below is immediately ready to run in any standard Docker or Podman environment:
services:
semaphore-ui:
image: "semaphoreui/semaphore:latest"
container_name: njorddeploy-semaphore-ui
ports:
- "3000:3000"
environment:
- "SEMAPHORE_DB_DIALECT=sqlite"
- "SEMAPHORE_DB_FILE=/etc/semaphore/semaphore.sqlite"
- "SEMAPHORE_ADMIN=admin"
- "SEMAPHORE_ADMIN_PASSWORD=4R0W0R+oK20wS7qXW2E1F/7P4n9Y7iG1"
- "SEMAPHORE_ADMIN_NAME=Admin User"
- "SEMAPHORE_ADMIN_EMAIL=admin@localhost"
volumes:
- "/var/lib/njorddeploy/semaphore-ui/data:/etc/semaphore"
user: "0:0"
networks:
- njorddeploy_net
networks:
njorddeploy_net:
Start the service directly via the command line: docker compose up -d
Configuration & Environment Variables
Key configuration parameters and defaults derived from the NjordDeploy component template:
| Variable | Default Value | Description |
|---|---|---|
SEMAPHORE_PORT |
3000 |
The port on the host to expose the Semaphore UI web interface. |
SEMAPHORE_ADMIN_USERNAME |
admin |
The username for the initial Semaphore UI admin user. |
SEMAPHORE_ADMIN_PASSWORD |
4R0W0R+oK20wS7qXW2E1F/7P4n9Y7iG1 |
The password for the initial Semaphore UI admin user. This will be securely generated if left as default. |
SEMAPHORE_ADMIN_NAME |
Admin User |
The full name for the initial Semaphore UI admin user. |
SEMAPHORE_ADMIN_EMAIL |
admin@localhost |
The email address for the initial Semaphore UI admin user. |
DATA_ROOT |
/var/lib/njorddeploy |
The root directory for persistent application data. This is where Semaphore UI's SQLite database and configuration will be stored. |
Ecosystem & Enterprise Integration
- Reverse Proxy Ingress Ready: Pre-configured for Caddy, Traefik, or Nginx Proxy Manager with automatic Let's Encrypt TLS certificates.
- Zero-Trust Mesh VPN: Seamless integration with WireGuard or Tailscale/Headscale mesh networks for secure remote administration.
- Transactional State Backups: Ready for point-in-time database dumps and container-safe persistent volume freezing.
Effortless Management with NjordDeploy
Deploy, monitor, and update this service with a single click on your own hardware via the NjordDeploy Configurator.