Install
Docksy runs as a single container on any Linux box with Docker. The installer takes about two minutes.
Requirements
- A Linux server for the control plane: Ubuntu 22.04/24.04 or Debian 12, with 1 vCPU and 1 GB RAM minimum. It can be the same machine you deploy apps to.
- Root or sudo access.
- Ports
8080(dashboard), and80/443if this host will also run apps.
One-line install
$ curl -fsSL https://raw.githubusercontent.com/osmanyousaaf/docksy/main/install.sh | sudo bash
The installer is idempotent, so it's safe to run again to update or repair. It:
- installs Docker if it's missing
- generates a random
DOCKSY_SECRET, the master key that encrypts SSH keys, tokens and env vars at rest - writes
/opt/docksy/.envand/opt/docksy/docker-compose.yml - starts Docksy (
ghcr.io/osmanyousaaf/docksy) - registers the host itself as the server localhost, by adding Docksy's public key to root's
authorized_keys - prints the URL to open
Read before you pipe. It's a good habit to read install.sh before you run it. It's short.
First run
- Open
http://<your-server-ip>:8080. - Create the owner account. The setup page only works while no users exist.
- In Settings → Instance, set the Public URL: the address your servers and GitHub use to reach Docksy (for agents and webhooks).
- Go to Servers to add a machine, or deploy straight to localhost.
Docker Compose (manual)
If you'd rather manage it yourself:
# /opt/docksy/docker-compose.yml services: docksy: image: ghcr.io/osmanyousaaf/docksy:latest restart: unless-stopped ports: - "8080:8080" environment: DOCKSY_SECRET: ${DOCKSY_SECRET} # 64 hex chars: openssl rand -hex 32 DOCKSY_PUBLIC_URL: https://docksy.example.com volumes: - docksy-data:/data volumes: docksy-data:
$ echo "DOCKSY_SECRET=$(openssl rand -hex 32)" > .env $ docker compose up -d
Put the dashboard behind HTTPS
Run Docksy behind any reverse proxy (Caddy, nginx, Traefik) on a domain, e.g. docksy.example.com → localhost:8080, and set that URL as the Public URL. Server-sent events are used for live charts and logs, so turn off response buffering if your proxy has it (nginx: proxy_buffering off;).
Update
$ cd /opt/docksy && docker compose pull && docker compose up -d
Re-running the installer does the same. Database migrations run automatically on start. Your data lives in the /data volume.
Uninstall
$ curl -fsSL https://raw.githubusercontent.com/osmanyousaaf/docksy/main/install.sh | sudo bash -s -- --uninstall
This stops and removes Docksy. Apps you deployed keep running on their servers, because they're plain Docker containers.
Environment variables
| Variable | Default | Purpose |
|---|---|---|
DOCKSY_SECRET | generated into data/secret.key | 32-byte master key (64 hex chars) for encryption at rest |
DOCKSY_DATA_DIR | /data in the image | SQLite database, SSH keys, secret |
DOCKSY_PUBLIC_URL | from Settings | Overrides the Public URL used by agents and webhooks |
PORT / HOST | 8080 / 0.0.0.0 | HTTP listener |
DOCKSY_AGENT_INTERVAL | 10 | Seconds between agent metric reports |