Docker Compose Generator

Pick the services you need and get a compose.yaml and .env with pinned versions, health checks, named volumes and databases that are not exposed to the internet.

  • Free
  • No Sign-Up
  • Runs in Your Browser

Services

Pick the services you need.

How to Use

How to use the Docker Compose Generator

  1. 01

    Pick services

    WordPress, databases, caches and a web server.

  2. 02

    Set the options

    Project name and the public web port.

  3. 03

    Copy both files

    Fill in the passwords in .env, then run docker compose up -d.

VPS & Linux

About the Docker Compose Generator

The defaults, and why

Image versions are pinned to a major version, so a pull never jumps to a new major release on its own. Data lives in named volumes, so removing a container never deletes it. Passwords come from a .env file, kept out of the compose file and out of version control.

Databases and caches are not published on a public port. Docker's published ports bypass UFW and most host firewalls, which is how many exposed Redis and MongoDB servers are found and taken over. Services reach each other by name on the project's own network; if you need a database from the host, the port is bound to 127.0.0.1 only.

What it can't tell you

  • A starting point, not a production deployment: add backups, TLS (or a reverse proxy) and monitoring.

Frequently asked questions

Does Docker bypass UFW?
Yes. Ports published with ports: are opened directly in iptables and ignore UFW's rules. Bind to 127.0.0.1 or leave databases unpublished.
Should I use docker-compose.yml or compose.yaml?
compose.yaml is the current preferred name, and the version: key is no longer needed. Both still work.
How do I update the images?
docker compose pull, then docker compose up -d. With pinned major versions you get fixes and minor updates only.

Run VMs for other people?

Frabs stops spam, scans and floods leaving your customers' VMs, before the abuse report lands.