Skip to main content
50% off all plans, limited time. Starting at $2.48/mo
Semaphore UI

Semaphore UI

Semaphore UI is a modern web interface for Ansible, Terraform/OpenTofu/Terragrunt, and PowerShell. Run playbooks and plans from the browser with access control, schedules, and logs. MIT licensed with 13,800+ GitHub stars.

At a glance

13.9k

GitHub stars

126

Active installs

License MIT Version Latest OS Ubuntu Server 24.04 LTS Min RAM 1 GB IP IPV4

Active installs is sample data (staging preview); real metric wires in before launch.

Accessing Semaphore UI

Open in browser: http://<SERVER_IP>

Login:

  • Username: admin
  • Password: stored inside /root/semaphore/docker-compose.yml (SEMAPHORE_ADMIN_PASSWORD)

Retrieve password:

grep SEMAPHORE_ADMIN_PASSWORD /root/semaphore/docker-compose.yml

Important Files & Directories

  • Install Path: /root/semaphore
  • Compose File: /root/semaphore/docker-compose.yml
  • Caddy Config: /etc/caddy/Caddyfile
  • Postgres Volume: semaphore_postgres
  • Data Volume: semaphore_data
  • Config Volume: semaphore_config
  • Temp Volume: semaphore_tmp

Domain & HTTPS (Caddy)

0. HTTPS does NOT work with IP addresses.

1. Point a domain (e.g. example.com) to your server’s IP address.

2. Update /etc/caddy/Caddyfile:

example.com {
    reverse_proxy 127.0.0.1:3000 {
        header_up X-Real-IP {client_ip}
    }
}

3. Restart Caddy:

systemctl restart caddy

4. Caddy will automatically issue and renew SSL certificates.

Managing the Stack

cd /root/semaphore

Check status:

docker compose ps

View logs:

docker compose logs -f

Restart services:

docker compose restart

Stop stack:

docker compose down

Start stack:

docker compose up -d

Notes

  • PostgreSQL is deployed as a container (semaphore_db)
  • UI is only exposed via Caddy (no direct port exposure)

Deploy Semaphore UI now. From $2.48/mo.