Deploy guide Frankfurt, Germany

Deploy Docker Compose on Nodion

Nodion can read a docker-compose.yml once, when you create the app: databases and caches become managed services, and the other services become processes of one app. The import is experimental, so review the plan before you create. Everything then runs in Frankfurt.

Deploy to Nodion ›

from 1 EUR / month

Up to 15 € credit when signing up

Reads
docker-compose.yml or compose.yml, once at create
Creates
One app with processes, managed databases
Status
Experimental
Region
EU Central (Frankfurt)

Deploy Docker Compose step by step

  1. Check your compose file Nodion reads docker-compose.yml, docker-compose.yaml, compose.yml or compose.yaml, taking the one closest to the repository root. It needs at least one app service next to the databases and caches; a file with only databases and caches is ignored. docker-compose.yml
    services:
      web:
        build: .
        environment:
          DATABASE_URL: postgres://app:app@db:5432/app
          REDIS_URL: redis://cache:6379
      db:
        image: postgres:17
      cache:
        image: valkey/valkey:8
  2. Choose Docker Compose when you create the app Create an application from your repository in the region EU Central. When the scan finds a usable compose file, a Docker Compose option appears; it is never preselected. Pick it and review the plan: before you create, you can still pick size and instances per process and adjust volume sizes.
  3. See what becomes a managed service Nodion goes by the image name: postgres and postgis become Managed PostgreSQL, pgvector becomes pgvector, redis and valkey become Valkey, mysql and mariadb become MySQL, clickhouse becomes ClickHouse and minio becomes a bucket. Every other service runs its image as a process of the one app. The image tag does not pick the database version, and users and passwords come from Nodion. Managed PostgreSQL has no PostGIS extension, so an app that needs PostGIS loses its spatial functions after the import; leave such a database out of the compose file.
  4. Check the connection variables A variable of the app service that points at another service by name, like @db:5432 above, becomes an attachment: Nodion injects the real address on deploy. Otherwise databases arrive as DATABASE_URL and Valkey as REDIS_URL. Only the main app service's other variables are copied, and values that look like secrets are marked secret.
  5. Manage the app in the dashboard from then on The first deploy waits until the databases are ready. After that the compose file is no longer read: each push builds the app with the Dockerfile or buildpacks strategy found in the same repository, and you change processes, variables and sizes in the dashboard.

Good to know

  • Experimental and one-timeThe import is a shortcut for the first setup, not a Compose runtime. If your file does not map cleanly, build the same setup by hand: one app, a database attached on the Environment tab and extra processes on the Processes tab.
  • What Nodion ignoresNetworks, profiles, Compose healthchecks, depends_on as a start order, deploy.replicas, bind mounts and anonymous volumes. A second service with its own build: shares the one app image.
  • VolumesNamed volumes become Nodion volumes, 5 GB by default and editable in the plan, mounted on the processes that use them.

What Nodion runs for you

  • Deploys without downtime Push to your branch and Nodion builds a new release. Traffic switches once the new instances answer their health check; a failed release leaves the running one in place. Apps with a local volume restart instead, because the disk belongs to one instance.
  • Databases next to the app Managed PostgreSQL, pgvector, MySQL, Valkey and ClickHouse in the same region. Attached databases arrive as DATABASE_URL, REDIS_URL or CLICKHOUSE_URL.
  • Previews per pull request Turn on previews and pull requests from your repository get their own app with its own URL and fresh, empty databases, created automatically or by hand. Forks and bot pull requests are skipped.
  • Workers, cron jobs and scaling Run workers as extra processes of the same app, schedule jobs on the Cron tab, and scale every process to up to 16 instances.
  • Release step With buildpacks, a Procfile release: line runs with every new build. Dockerfile apps, and redeploys or rollbacks to an earlier image, use a release command set on the app itself, which also takes precedence over the Procfile line. On static sites a release step runs in an image that holds only the built files.
  • Logs and metrics Build, release and runtime logs plus CPU, memory, disk and network metrics for every instance in the dashboard.
  • Domains and HTTPS A default hostname with HTTPS from the first deploy; your own domains get certificates automatically.

Further reading

Docker Compose on Nodion: questions and answers

Does Nodion run docker compose up?

No. Nodion reads the file once when you create the app and turns it into one app with processes, managed databases and volumes. It does not keep a Compose project running, apply networks or read the file again.

Do changes to my compose file apply on the next deploy?

No. After create, you manage the app in the dashboard: add a process, a variable or a database there. Editing the compose file in Git changes nothing.

What happens to MongoDB or other services without a managed version?

They run their image as a process of the app. Nodion has no managed MongoDB, so you look after such a service and its data yourself.

Which database version do I get?

Nodion's current default for that engine, not the version in your image tag. If you need a specific version, leave the database out of the compose file, create it in the dashboard and attach it to the app.

Where does my Docker Compose app run?

In the EU Central region in Frankfurt, Germany. Build, registry, the app and its databases, volumes, buckets, logs and metrics stay in that region, and Nodion's API and control plane are hosted in Germany. Nodion GmbH is based in Stuttgart.

Can I use Docker Compose in line with the GDPR?

Nodion provides the basis for it: Nodion GmbH is based in Stuttgart, Germany, in the Frankfurt region the app, its databases and volumes run in Germany, and you conclude the data processing agreement (DPA) under Art. 28 GDPR electronically in the dashboard. Whether your setup complies also depends on how you configure and use the app.

How much does it cost to run Docker Compose on Nodion?

An app instance starts at 1 EUR per month. The setup in the cost box costs 3.50 EUR per month: App 2 EUR, PostgreSQL 1.50 EUR. Prices are net and billed per second, and you pick bigger sizes or more instances whenever you need them.

Can I use my own domain for my Docker Compose app?

Yes. Every app gets a default hostname with HTTPS. Add your own domain on the app's Domains tab; the TLS certificate is issued and renewed automatically.

Give your agent a cloud.

Earn up to 15 € in credit when signing up.

Continue with GitHub

or with email

Stay in the loop.

Product news, no spam. Unsubscribe anytime.