Skip to content

Services

Deploy Docker apps without a platform team.

Bring a Docker Compose file or start from a template. Fwoop rolls it out to the servers you pick, waits until it's healthy and keeps every release one click away from a rollback.

A rolling deploy of release r142 of the api service: the image is pulled, the first two servers pass their health checks and stop the previous release, and the third server is waiting for its health check. The previous release can be restored with one rollback command.

Bring what you have

Your compose file is the manifest.

No new format and no Kubernetes. Keep compose.yaml as it is, and add a few lines that say where it runs and how it rolls out.

compose.yaml
services:
  api:
    image: ghcr.io/acme/api:1.42.0
    environment:
      DATABASE_URL: ${DATABASE_URL}   # from Fwoop secrets
    ports: ["8080:8080"]
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
      interval: 5s

Your existing file. Fwoop fills in ${DATABASE_URL} at deploy time.

fwoop.yaml
services:
  api:
    compose: compose.yaml
    target: role=api           # every server with this label
    strategy: rolling          # one server at a time
    ready_after: healthcheck   # wait for the check above
    secrets: production

Optional. The same settings are a few clicks in the dashboard.

Releases

Every deploy is a release you can go back to.

A release pins the image, the compose file and the secrets version. Rolling forward and rolling back are the same operation, so a bad deploy is a ten-second fix, not an incident.

  • New containers must pass their health check before old ones stop.
  • A failed check stops the rollout and leaves the last release serving.
  • Any release from your plan's history is one click away.

Release history for the api service: r142 is live on three servers, r141 and r139 were replaced and can be rolled back to, and r140 was stopped because its health check failed.

Templates

Or start from a template.

Popular open-source apps, preconfigured with volumes, health checks and backups. Deploy one in under a minute.

  • PostgreSQL Database
  • Redis Database
  • Plausible Analytics
  • Umami Analytics
  • n8n Automation
  • Gitea Developer tools
  • Outline Knowledge base
  • Uptime Kuma Monitoring
  • Meilisearch Search
  • MinIO Storage
  • Mattermost Chat
  • Metabase BI
  • Vaultwarden Security
  • Ghost Publishing

Missing one? See the full gallery or contribute your own.

Also in every plan

Live logs

Tail any container on any server from the browser. Logs stream from the agent and aren't stored by Fwoop.

Deploy from CI

Run fwoop deploy with a deploy token from GitHub Actions, GitLab CI or anything that runs a shell.

Any registry

Docker Hub, GHCR, GitLab, Amazon ECR or a private registry. Credentials live in your secrets.

Questions about services

Do I have to change my compose file?

No. Fwoop reads standard Compose v2 files. Deploy settings like targets and the rollout strategy live in an optional fwoop.yaml next to it.

What happens if a deploy fails its health check?

The rollout stops, the previous release keeps serving traffic and the person who deployed gets an alert with the container logs.

Does Fwoop build my images?

No. Fwoop deploys images from your registry, so keep building them in CI the way you do today.

Can I run more than one replica per server?

Yes. Set deploy.replicas in your compose file as usual. Fwoop rolls replicas one by one on each server.

Bring your first server online in five minutes.

Start free with three servers. No credit card, no sales call, and your workloads stay on machines you own.