Documentation

From a repository to a running service.

Drumlin builds your application from source and runs it. This page is enough to get an application deployed and to know where to look when you need to understand what it is doing.

Deploy an application

A service is one running application. It belongs to an environment inside a project, and it is built either from a Git repository or from a container image you already have.

From a repository

Connect a Git provider to your organisation, then create a service pointing at a repository and a branch. Drumlin resolves that branch to an exact commit for every build, so a deployment always names the code it ran.

Your repository needs a Dockerfile. Drumlin builds it and pushes the result to the platform registry.

From an image

A service can also run an image you supply. It must be given by digest — registry.example.com/team/api@sha256:… — never by a tag, because a tag can be moved to point at different code and the deployment record would then be a record of nothing.

Releases and rollback

Every successful build produces a release: an immutable image, pinned by digest, with the commit and the build that made it. A service runs exactly one release at a time.

Because a release is immutable, going back is a deployment rather than a rebuild:

$ drumlin releases api
$ drumlin rollback api 23

Scaling is separate from deploying. Changing the number of copies does not build anything:

$ drumlin scale api --copies 3

Databases

Create a managed PostgreSQL database in a project and grant a service access to it. Access is per service: a database is not readable by everything in the project simply because it exists there.

$ drumlin databases
$ drumlin url orders-db

A database runs as a single instance, sized when you create it. It is archived continuously to object storage in a different data centre from the one it runs in, and recovery to a point in time is made from those archives rather than from anything held alongside the database itself.

Logs and metrics

Logs and metrics belong to the service. There is no agent to install and no second account to create.

$ drumlin logs api
$ drumlin logs api --build 01M1V4…

Console

When reading logs is not enough, open a shell inside a running instance:

$ drumlin shell api

A console session is authenticated, single-use and expires. It is recorded against the service in the activity log, next to the deployments — a shell is the most invasive thing the platform can do, so it is visible where somebody would think to look for it.

Command line

The CLI talks to the same API as the dashboard and returns the same messages.

$ drumlin login
$ drumlin use acme/storefront
$ drumlin services

$ drumlin deploy api --wait
Build 24 of api, from acme/storefront at 7b21d9a.
  Fetching the repository
  Building the image
  Pushing the image
Built in 18s.

Other commands you will reach for: show, start, stop, domains, credits, whoami.

Regions

Services run in DE1 — Germany 1, which is the only region today. It is operated by us rather than resold, and further regions will be listed when they exist.

Something missing from this page? It covers the paths most people need first. The dashboard describes each screen as you use it, and the CLI's --help is generated from the same definitions as the API.