Installation
Install Dequel on your own infrastructure.
Prerequisites
- Docker installed on your system
- Docker Compose v2 (
docker composecommand)
Install Script
The quickest way to get Dequel running:
curl -fsSL https://raw.githubusercontent.com/Lftobs/dequel/main/scripts/install.sh | sh
This will:
- Check that Docker and Docker Compose are installed
- Create a config directory at
~/.dequel - Download
docker-compose.ymland monitoring configs - Pull pre-built Docker images from GitHub Container Registry
- Install the
dequelCLI to/usr/local/bin
After installation, start the platform:
dequel start
Open http://localhost to access the dashboard (or the configured CADDY_BASE_DOMAIN in production).
Post-Installation: User Setup
Dequel authenticates against Linux system users in the dequel group. After install, create a user:
sudo useradd -m -s /bin/bash <username>
sudo passwd <username>
sudo usermod -aG dequel <username>
See Authentication & Access Control for details on session management and API keys.
Manual Setup (no install script)
If the installer fails, set up the platform manually with just Docker Compose and the config files:
# Create the installation directory
mkdir -p ~/.dequel/data ~/.dequel/workspace \
~/.dequel/infra/caddy/routes \
~/.dequel/infra/monitoring/grafana/datasources
# Download config files
curl -fsSL https://raw.githubusercontent.com/Lftobs/dequel/main/docker-compose.yml \
-o ~/.dequel/docker-compose.yml
curl -fsSL https://raw.githubusercontent.com/Lftobs/dequel/main/infra/caddy/Caddyfile \
-o ~/.dequel/infra/caddy/Caddyfile
curl -fsSL https://raw.githubusercontent.com/Lftobs/dequel/main/infra/monitoring/prometheus.yml \
-o ~/.dequel/infra/monitoring/prometheus.yml
curl -fsSL https://raw.githubusercontent.com/Lftobs/dequel/main/infra/monitoring/loki-config.yml \
-o ~/.dequel/infra/monitoring/loki-config.yml
curl -fsSL https://raw.githubusercontent.com/Lftobs/dequel/main/infra/monitoring/promtail-config.yml \
-o ~/.dequel/infra/monitoring/promtail-config.yml
curl -fsSL https://raw.githubusercontent.com/Lftobs/dequel/main/infra/monitoring/grafana/datasources/loki.yml \
-o ~/.dequel/infra/monitoring/grafana/datasources/loki.yml
curl -fsSL https://raw.githubusercontent.com/Lftobs/dequel/main/infra/monitoring/grafana/datasources/prometheus.yml \
-o ~/.dequel/infra/monitoring/grafana/datasources/prometheus.yml
# Start all services
docker compose -f ~/.dequel/docker-compose.yml up -d
The compose file uses pre-built images from GitHub Container Registry, so no source code checkout is needed. Access the dashboard at http://localhost (or your configured CADDY_BASE_DOMAIN).
Manual Setup with Docker Compose (with source)
Clone the repository and build from source:
git clone https://github.com/Lftobs/dequel.git
cd dequel
docker compose up -d --build
Production Setup
To make Dequel publicly accessible with auto-SSL:
- Set
CADDY_BASE_DOMAINandCADDY_EMAILin~/.dequel/.env:CADDY_BASE_DOMAIN=example.com CADDY_EMAIL=admin@example.com - Configure a wildcard DNS
*.example.compointing to your server’s IP. - Ensure ports
80and443are open in your firewall. - Restart Dequel:
dequel restart
Deployed apps will be reachable at https://<slug>.example.com with auto-provisioned Let’s Encrypt certificates. The dashboard is available at both http://example.com and https://example.com.
The dequel CLI
The dequel command manages the platform lifecycle:
| Command | Description |
|---|---|
dequel start | Start all Dequel services |
dequel stop | Stop all services |
dequel status | Show service status |
dequel logs | Follow service logs |
dequel update | Pull latest images and restart |
dequel restart | Restart all services |
dequel --help | Show all commands |
Configuration Directory
Dequel stores its configuration in ~/.dequel (or $DEQUEL_HOME if set):
~/.dequel/
├── docker-compose.yml
├── .env # Optional environment overrides
├── data/ # SQLite database
├── workspace/ # Build staging area
└── infra/
├── caddy/
│ ├── Caddyfile
│ └── routes/
└── monitoring/
├── prometheus.yml
├── loki-config.yml
└── grafana/
Building from Source
For local development, run the API and web dashboard directly:
# Terminal 1 — API
export DATABASE_PATH=./data/dequel.db \
WORKSPACE_ROOT=./workspace \
CADDY_ROUTES_DIR=./infra/caddy/routes \
CADDY_BASE_DOMAIN=localhost \
DOCKER_NETWORK=dequel_net \
APP_INTERNAL_PORT=3000
bun apps/api/src/index.ts
# Terminal 2 — Web
bun apps/web/src/main.tsx
Updating
dequel update
This pulls the latest images from GitHub Container Registry and recreates the services.