Appearance
Services
A service is one process that Fjordrun runs and keeps running. Each service has a source, a kind, settings and variables, and exists once in every environment of its project.
Sources
| Source | Notes |
|---|---|
| GitHub repository | Built by the Fjordrun builder and redeployed on push. Set repository, branch and root directory. |
| Docker image | Any public image, for example nginx:1.27-alpine or ghcr.io/owner/app:1.2.3. No build step. |
| Template | A prebuilt image with variables and a volume. See Templates. |
| Empty | Create the service now and set the source later. |
Kinds
| Kind | Runs as | Typical use |
|---|---|---|
web | A long-running deployment that receives HTTP traffic on its port. Default port 8080. | Websites, APIs |
worker | A long-running deployment without a public domain by default. | Queue consumers, bots, private APIs |
database | A stateful set with a persistent volume, one replica. | PostgreSQL, MySQL, Redis, MongoDB |
cron | A Kubernetes CronJob on a schedule (default */15 * * * *). | Scheduled jobs |
Settings
Service settings are per environment and grouped in Settings:
- Source: repository, branch, root directory, or image.
- Build: builder (automatic, Nixpacks or Dockerfile), Dockerfile path, custom build command, watch paths. See Build settings.
- Deploy: start command, port, healthcheck path and timeout, restart policy (
on_failure,always,never), max restarts, replicas, cron schedule and Sleep when idle. - Networking: the private hostname and public domains. See Domains and HTTPS.
- Volume: persistent storage. See Volumes.
- Resources: the most vCPU and memory one replica may use. You are billed for what it actually uses, not for this limit. Plan limits apply (Trial 1 vCPU / 1 GB, Hobby 8 vCPU / 8 GB, Pro 32 vCPU / 32 GB per service).
- Billing granularity: per second, minute or hour. Defaults: web services and workers per minute, databases per hour, cron jobs per second.
New services get 0.5 vCPU and 512 MB (1 GB for databases) as limits, which you can change.
Healthchecks
If you set a healthcheck path (for example /health), a new deployment only receives traffic once that path answers successfully, within the healthcheck timeout (default 300 seconds). Without a healthcheck path, Fjordrun waits until the service accepts TCP connections on its port.
Replicas
Web services and workers can run several replicas (Trial 1, Hobby up to 3, Pro up to 20). Traffic is balanced across them. Databases always run one replica.