Install locally
Run the Douklar stack on one Linux host with Docker, then sign in to the console.
Note. The Douklar source repository is not public yet. This page describes the install for those who have a copy.
What you need
- A Linux x86_64 host with Docker and Docker Compose. This is the verified platform; others are not measured.
- A Chromium-based browser at desktop width. The console is not built for phones.
- For ECR moves from the CLI: the AWS CLI and exactly ORAS v1.3.4 on
PATH. Any other ORAS version is refused.
Install and start
From the repository root:
./install.sh localThis one command:
- Checks that Docker is reachable.
- Creates
.envfrom the example when it is missing, and generates the secrets it needs (including the app encryption key). - Builds and starts the stack: PostgreSQL, the bundled ZITADEL identity provider, the backend and the sync worker.
- Creates the sign-in client, then prints the console address and the local sign-in details.
Open http://127.0.0.1:5566 when it finishes.
Re-running ./install.sh local skips healthy services and reuses the
existing sign-in client.
Other ways to install
./install.sh uiopens a graphical installer with Express or Custom setup that installs and verifies end to end../install.sh wizardwalks through guided profiles.
What lives where
All persistent state is in Docker named volumes: the database, sessions and
encrypted credentials, sync output and reports. docker compose down removes
containers and keeps your data. docker compose down -v deletes everything.
Keep the ZITADEL master key. It locks the identity provider's data. Back it up together with the database volume.
Beyond one machine
The same stack runs against an external PostgreSQL (generic, Amazon RDS or Supabase on the session pooler, port 5432) and an external ZITADEL or Amazon Cognito. Remote and production modes require explicit allowed hosts, CORS, HSTS, an app encryption key and TLS database connections.
Never expose an instance running without sign-in (AUTH_MODE=none) to a
network. That mode is for a single local user only. The app refuses to
start with it unless APP_ENV=local.
Roles
Douklar has three fixed roles, mapped from your identity provider's groups:
| Role | Can |
|---|---|
admin | Everything, including configuration and credentials |
operator | Run syncs, S3 Batch and image checks; browse; read documents |
viewer | See the overview and the S3 and ECR inventories |
The highest mapped role wins.