Docker Compose Generator
Ready-to-run Compose files for self-hosted apps, from source-backed templates. You run them on your own server.
Generated in this browser. The files are built on this page from the catalog. Your choices live in the link after #, which browsers never send to a server. No passwords or keys are created, and nothing you type into .env ever reaches this page. With analytics accepted, we count only which apps, how many and the exposure mode.
Loading…
What you get
- docker-compose.yml with pinned image tags from the catalog, named volumes, health checks and startup order.
- .env.example listing every value to fill in. Secrets are placeholders; Compose stops with an error while one is missing.
- A Caddyfile, only when you choose the Caddy mode.
- Steps to run it for the exposure you chose, and the result of the static check on the generated file.
What it does not do
- It does not start anything, connect to a server or set one up.
- It does not create passwords, keys or domains: you fill them in .env.
- It does not combine Coolify or Dify with other apps in one file: they have their own installation.
- It does not publish an app directly to the internet, and it adds no GPU support.
- A file without findings is not a security audit, and a supported template has not been run-tested.
Three exposure modes
- Local only
- The default. Every app listens on 127.0.0.1 at a fixed port, so nothing is reachable from the internet. Open an SSH tunnel to use it, or put a proxy in front later.
- Your own reverse proxy
- For servers that already run Traefik, nginx-proxy or another proxy. The HTTP services join its Docker network, or listen on 127.0.0.1 for a proxy on the host. The steps list each upstream address.
- Caddy
- Adds Caddy with automatic HTTPS. Point each domain's DNS records to the server before you start. Caddy is not included in the resource calculation of the Stack Sizer.
Supported apps
From the catalog. Supported means a source-backed template that passes the static check; run-tested means it was started and checked against the current template version.
| App | Level | Services in the file |
|---|---|---|
| n8n | Run-tested | n8n, n8n-runner, n8n-postgres |
| PostgreSQL | Run-tested | postgresql |
| Coolify | Official install | Official installation only |
| Dify | Official install | Official installation only |
| Open WebUI | Run-tested | open-webui, open-webui-ollama |
| WordPress | Run-tested | wordpress, wordpress-mariadb |
| Uptime Kuma | Run-tested | uptime-kuma |
| Gitea | Run-tested | gitea |
Questions
- Is it safe to run the generated file as it is?
- The file uses pinned images, no secrets and no public app ports. It is built from templates that follow each app's official Compose files, and it passes the static check on this page. It is still your server: read the file, fill in .env and keep the host updated.
- Why are the apps only on 127.0.0.1 by default?
- Docker publishes ports on every interface and adds firewall rules that bypass ufw. Listening on 127.0.0.1 keeps the apps private until you choose how to reach them: an SSH tunnel, your own reverse proxy or Caddy.
- Where are the passwords?
- Nowhere in the file. .env.example lists each value with a command to create it on your own machine, such as openssl rand -hex 32. ANAROQ never creates or sees them.
- Can I start from the Stack Sizer?
- Yes. A Deployment Spec link opens the generator with the same apps and options. The resource calculation stays the Spec's; the generator does not change it.
- Why is there no file for Coolify or Dify?
- Coolify installs Docker and its own proxy with an official script and needs a server of its own. Dify's official Compose setup depends on many files from its repository. For both, the official installation is the reliable way, so the generator links to it.
- Will the same link give the same file next month?
- The same link gives the same file for the same engine and catalog versions, which are written at the top of the file. When the catalog moves to newer image tags, the file follows it.