Getting Started

Installation

Install Dequel on your own infrastructure.


Prerequisites

  • Docker installed on your system
  • Docker Compose v2 (docker compose command)

Install Script

The quickest way to get Dequel running:

curl -fsSL https://raw.githubusercontent.com/Lftobs/dequel/main/scripts/install.sh | sh

This will:

  1. Check that Docker and Docker Compose are installed
  2. Create a config directory at ~/.dequel
  3. Download docker-compose.yml and monitoring configs
  4. Pull pre-built Docker images from GitHub Container Registry
  5. Install the dequel CLI 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:

  1. Set CADDY_BASE_DOMAIN and CADDY_EMAIL in ~/.dequel/.env:
    CADDY_BASE_DOMAIN=example.com
    CADDY_EMAIL=admin@example.com
    
  2. Configure a wildcard DNS *.example.com pointing to your server’s IP.
  3. Ensure ports 80 and 443 are open in your firewall.
  4. 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:

CommandDescription
dequel startStart all Dequel services
dequel stopStop all services
dequel statusShow service status
dequel logsFollow service logs
dequel updatePull latest images and restart
dequel restartRestart all services
dequel --helpShow 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.