Appearance
Install On Debian With Docker
This guide installs Traefik, the Ordyn API, and the Ordyn frontend on a Debian host with Docker.
For Docker Engine itself, follow the official Docker instructions:
Install Docker Engine on Debian
Install the container verification tools before pulling Ordyn images:
Requirements
Prepare:
- a Debian host with Docker Engine and Docker Compose
- Git
- Cosign and the image verification helper installed on every Ordyn infrastructure machine
- DNS names for the frontend and API, for example:
app.ordyn.example.comapi.ordyn.example.com
- inbound access to ports
80and443 - enough persistent storage for PostgreSQL, Redis, uploaded files, packages, OS images, reports, and logs
- outbound internet access for image downloads and package metadata
- Docker credentials
- License
Recommended minimum for a small installation with ~100 endpoints:
- 4 CPU cores
- 8 GB RAM
- 100 GB disk, plus storage for packages, OS images, and collected artifacts as required
Prepare Project Directories
Clone the Ordyn compose repository and checkout only the Traefik, API, and frontend deployment folders:
bash
git clone --filter=blob:none --sparse https://github.com/ordyn-project/compose.git /opt/ordyn-compose
cd /opt/ordyn-compose
git sparse-checkout set traefik api frontendIf your installation needs local changes, place them in compose.override.yml inside the matching folder so the Git-managed compose files can be updated.
Traefik
Traefik receives HTTPS traffic and forwards it to the Ordyn API and frontend containers.
Configure Traefik
Create the Traefik environment file:
bash
cd /opt/ordyn-compose/traefik
cp .env.example .envSet the email address used for Let's Encrypt certificate notices:
dotenv
TRAEFIK_ACME_EMAIL=admin@example.comStart Traefik
From the Traefik deployment folder, start the container:
bash
cd /opt/ordyn-compose/traefik
docker compose pull
docker compose up -dFor DNS-01 or user-provided certificates, use the matching Traefik compose file described in Traefik.
If you cannot provide a suitable certificate through Let's Encrypt or your own certificate process, support can provide an appropriate domain that supports DNS-01 validation for Ordyn. Contact support@hank-it.com for assistance.
Docker login
To access the Ordyn images, you must log in to the Docker registry.
bash
docker login docker.hank-it.comUse the provided credentials, you will have to login on every host that will run Ordyn containers.
API
Configure The API
Create the API environment file:
bash
cd /opt/ordyn-compose/api
cp .env.example .envSet these values in .env:
dotenv
ORDYN_API_HOST=api.ordyn.example.com
APP_NAME=Ordyn
APP_KEY=<generated-application-key>
APP_URL=https://api.ordyn.example.com
FRONTEND_URL=https://ordyn.example.com
CORS_ALLOWED_ORIGINS=https://ordyn.example.com
SANCTUM_STATEFUL_DOMAINS=ordyn.example.com,api.ordyn.example.com
SESSION_DOMAIN=.ordyn.example.com
LOG_LEVEL=info
DB_HOST=database
DB_DATABASE=ordyn
DB_USERNAME=ordyn
DB_PASSWORD=<strong-database-password>
WEBSOCKET_APP_ID=ordyn
WEBSOCKET_APP_KEY=<random-websocket-key>
WEBSOCKET_APP_SECRET=<random-websocket-secret>Generate an application key and set APP_KEY:
bash
printf 'base64:%s\n' "$(openssl rand -base64 32)"Generate websocket secrets:
bash
openssl rand -hex 16
openssl rand -hex 32Use the first value for WEBSOCKET_APP_KEY and the second value for WEBSOCKET_APP_SECRET.
Start The API
From the API project directory:
bash
cd /opt/ordyn-compose/api
docker compose pull
python3 /opt/cosign-docker-verify/verify.pyContinue with docker compose up -d only when all marked API services verify successfully and no failed verification message appears.
bash
docker compose up -dInitialize the database:
bash
docker compose exec -T fpm php artisan migrate --force --seedCreate the first super admin user:
bash
docker compose exec -T fpm php artisan ordyn:user:create \
--name="Ordyn Admin" \
--email="admin@example.com" \
--password="<strong-password>" \
--super-adminFrontend
Configure The Frontend
Create the frontend runtime configuration:
bash
cd /opt/ordyn-compose/frontend
cp .env.example .env
cp config.example.json config.jsonSet these values in .env:
dotenv
ORDYN_FRONTEND_HOST=ordyn.example.comSet the API host and websocket key in config.json:
json
{
"environment": "production",
"ssl": true,
"api": [
{
"server": "api.ordyn.example.com",
"websocketKey": "<same value as WEBSOCKET_APP_KEY>"
}
]
}The frontend reads this file at runtime. If you change API hostnames or websocket credentials, update config.json and restart the frontend container.
Start The Frontend
From the frontend deployment folder:
bash
cd /opt/ordyn-compose/frontend
docker compose pull
python3 /opt/cosign-docker-verify/verify.pyContinue with docker compose up -d only when the frontend image verifies successfully and no failed verification message appears.
bash
docker compose up -dOpen the frontend URL in a browser and sign in with the super admin user.
Verify The Installation
Check the containers:
bash
cd /opt/ordyn-compose/traefik
docker compose ps
cd /opt/ordyn-compose/api
docker compose ps
cd /opt/ordyn-compose/frontend
docker compose psIn the Ordyn UI:
- open the user menu and verify the displayed API version
- open
Administration>Access Controland confirm the super admin user exists - open
Reporting>Auditand confirm login activity is recorded
After Installation
To actually use Ordyn, you will firstly have to upload the provided license file in Administration > Licenses.
After that, continue with: