Other container managers
Dockge, Komodo, Coolify and Dokploy all deploy a compose file with environment variables set in their own
screens, so they run the same one-file stack as Portainer:
v2/deploy/stack/compose.yaml. This page says what's different in each.
Tested: the stack file, with Docker Compose 5.6 (both containers healthy,
COMPOSE_PROFILESread from an env file). The managers' own screens: not yet. If a step doesn't match what you see, please open an issue.
What every manager needs #
-
The stack file as it is, pasted into the manager's compose editor. Settings go in the manager's environment variables, never in the file.
-
At least these variables:
OFFICESENTRY_VERSION=2.1.0 OFFICESENTRY_BASE_URL=https://sentry.yourmsp.com OFFICESENTRY_TIMEZONE=Europe/Londonplus, for HTTPS without a proxy of the manager's own,
COMPOSE_PROFILES=httpsandOFFICESENTRY_DOMAIN=sentry.yourmsp.com(the stack's Caddy), orCOMPOSE_PROFILES=tunnelandCLOUDFLARE_TUNNEL_TOKEN=...(Cloudflare Tunnel). -
A standalone Docker host with 2 CPUs and 4 GB of memory for Office Sentry, not a Swarm.
-
The first admin's link, from the line starting No admin account yet in the
webcontainer's log, or by runningpython -m officesentry setup-linkin it. Then carry on from step 6 of First start. -
A nightly backup. Run
python -m officesentry backup --keep 14in thewebcontainer every night, with the manager's scheduler if it has one for commands in a container, otherwise the host's (45 3 * * * docker exec <web container> python -m officesentry backup --keep 14incrontab -e). Save/keys/secrets.json(catit in thewebcontainer) in your password manager. -
Updating: read the release notes, change
OFFICESENTRY_VERSION, and redeploy with a fresh pull of the image.
Dockge #
- + Compose, stack name
officesentry. - Paste the stack file into
compose.yaml, and the variables into the.envbox under it. - Deploy. Dockge runs Docker Compose itself, so
COMPOSE_PROFILESin.envswitches Caddy or the tunnel on. - The stack page shows both containers' logs; its terminal can run commands in
officesentry-web-1.
The stack lives in /opt/stacks/officesentry on the host; the data and keys are Docker volumes
(officesentry_officesentry-data, officesentry_officesentry-keys), not files in that folder.
Komodo #
- Stacks → New Stack, name
officesentry, on the server that should run it. - Choose a UI-defined compose file and paste the stack file. (Or point it at the Git repository
JackD99/OfficeSentry, branchmain, file pathv2/deploy/stack/compose.yaml.) - Put the variables in the stack's Environment. Komodo writes them to an env file it passes to Docker
Compose, so
COMPOSE_PROFILESworks. Keep the tunnel token and any keys in Komodo's secret Variables and refer to them as[[NAME]], so they're hidden in the interface and logs. - Deploy. The stack's page shows the logs; run commands with the container terminal or
docker execon the server.
Coolify #
Coolify puts its own proxy (Traefik or Caddy) in front, with certificates, so leave COMPOSE_PROFILES out.
- In a project, + New → Docker Compose Empty, and paste the stack file.
- Coolify lists the stack's variables under Environment Variables: fill in
OFFICESENTRY_BASE_URL,OFFICESENTRY_TIMEZONEandOFFICESENTRY_VERSION. LeaveOFFICESENTRY_TRUSTED_PROXIESat 1 (Coolify's proxy). - Give the web service the domain, with the portal's port after it:
https://sentry.yourmsp.com:8000. Give the worker none. - If another app on the server already uses port 8000 on
127.0.0.1, setOFFICESENTRY_PORTto a free one such as127.0.0.1:8010(the proxy reaches the portal on Coolify's network, not through that port). - Deploy. The first admin's link is in the
webcontainer's logs; Coolify's Terminal runs commands in it, and Scheduled Tasks can run the nightly backup in thewebcontainer.
Dokploy #
Dokploy puts Traefik in front, with certificates, so leave COMPOSE_PROFILES out.
- In a project, Create Service → Compose, then Raw as the provider and paste the stack file.
- Put the variables in the Environment tab. Leave
OFFICESENTRY_TRUSTED_PROXIESat 1 (Traefik). - In Domains, add
sentry.yourmsp.comfor the serviceweb, container port8000, with HTTPS and a Let's Encrypt certificate. Give the worker none. - Deploy. If the domain answers Bad Gateway while both containers are healthy, Traefik can't reach
the
webcontainer: follow Dokploy's documentation for putting a compose service ondokploy-network.
Checking it worked #
Whatever the manager, sign in, then open Settings → Activity log: your sign-in should show your own
address, not the proxy's. If it shows the proxy's, OFFICESENTRY_TRUSTED_PROXIES doesn't match the number
of proxies in front (Securing the portal).