Services and Sources
Deploy from Git, Docker images, Compose files or templates.
A service is the actual application container. ZenSailor supports several ways to get one running:
GitHub Integration
Deep GitHub integration. Select the branch and repository path that should
deploy — Auto-Build with Cloud Native Buildpacks, an existing Dockerfile,
or a docker-compose.yml from the repo, with push redeploys scoped to the
selected branch.
Custom Git (SSH)
Connect to any Git provider (GitLab, Gitea, Bitbucket, …) with SSH keys — perfect for self-hosted git servers and private repos outside GitHub.
Template Library
160+ curated, maintained open-source applications — analytics, CMS, automation, media, security, backend platforms. Database engines use the dedicated Databases workflow below.
Docker Compose
Deploy complex stacks from a docker-compose.yml, pulled from a repo or
pasted as raw YAML directly into the dashboard.
Docker Image
Deploy any public or private image from Docker Hub, GHCR or other
registries — e.g. nginx:latest.
Databases
Provision 20 database and data-store engines from the same maintained catalogue. All receive durable storage and generated credentials; 5 also wire a collision-safe connection variable into the environment automatically.
From GitHub#
Connect an organization to GitHub once, then pick the repository, branch and build method when you create the service. Push events on the selected branch trigger a redeploy; deployments and build logs stream to the dashboard.
From a Docker image#
Point the service at an image reference (e.g. postgres:16-alpine). The
image is pulled on the node, and updates happen when you redeploy with a new
tag.
From a Compose file#
Compose stacks are deployable from a repository or pasted YAML. ZenSailor deep-merges per-service overrides on top of the file and translates volumes through the platform's persistence rules — see Compose Overrides and Persistence and Volumes.
Databases#
The Databases workflow provisions database engines with durable storage and
generated credentials. The managed engines (PostgreSQL, MariaDB, MongoDB,
Redis, TimescaleDB) additionally inject a connection variable like
DATABASE_URL into the environment of the service you choose — scoped so
each connection key is owned by one service per environment.