Simplifyd Cloud
HomeDashboardServices

Services

Create and manage Docker and PostgreSQL services on the Simplifyd Cloud canvas.

A service is a containerised workload running inside an environment. Simplifyd Cloud supports two types of services:

TypeDescription
DockerAny Docker image — your own app, a public image, or a third-party tool.
PostgresA managed PostgreSQL cluster, automatically provisioned and backed up.

Creating a Docker service

  1. Right-click the canvas and choose Add Docker Service, or use the command palette (Cmd + K).
  2. In the service creation panel, enter the Docker image name (e.g. nginx:latest or ghcr.io/my-org/my-app:main).
  3. Configure resources and click Add.
  4. An Apply Changes bar appears at the bottom — click Apply to deploy.

Docker service settings

Open the service panel → Settings tab to configure:

SettingDescription
ImageDocker image path and tag
vCPUsNumber of virtual CPU cores
MemoryMemory limit in MB
ReplicasNumber of running instances
RegionDeployment region
Start commandOverride the container entrypoint
Health ProbesStartup, readiness, and liveness healthchecks

Private registry credentials

By default, Docker services pull images from public registries without authentication. If your image is hosted in a private registry, you need to provide credentials so the platform can pull it at deploy time.

Supported registries

Any registry that supports standard Docker authentication is supported:

RegistryDomain
Docker Hubdocker.io (default)
GitHub Container Registryghcr.io
GitLab Container Registryregistry.gitlab.com
Quay.ioquay.io
AWS ECR<account>.dkr.ecr.<region>.amazonaws.com
Google Artifact Registry<region>-docker.pkg.dev
Any OCI-compliant registry

Configuring credentials

  1. Open the service panel → Settings tab.
  2. Under Source, find the Registry Credentials section.
  3. Click Add credentials.
  4. Enter your username and password (or token), then click Set credentials.

The credentials are saved and used automatically on the next deployment.

To update credentials, click Edit and re-enter them. To remove them entirely, open the form and click Clear credentials.

Credential format by registry

RegistryUsernamePassword
Docker HubDocker IDPersonal access token
GitHub Container RegistryGitHub usernamePersonal access token with read:packages scope
GitLabGitLab usernamePersonal access token with read_registry scope
Quay.ioRobot account name (namespace+robotname)Robot account token
AWS ECRAWSShort-lived token from aws ecr get-login-password (expires after 12 hours)
Google Artifact Registry_json_keyFull contents of a service account JSON key file

Images hosted on the Simplifyd Cloud internal registry (sdcr.io) never require credentials — authentication is handled automatically.

Image format

When using a private registry, include the full registry domain in your image path:

ghcr.io/your-org/your-image:tag
registry.gitlab.com/your-group/your-project/image:tag
your-dockerhub-username/private-repo:latest

For Docker Hub private images the domain can be omitted:

your-username/private-image:latest

Security

Credentials are encrypted at rest using AES-256-GCM. Only the username is returned in API responses — the password is never exposed after it is saved. Credentials are decrypted only at deployment time when the image is pulled.

AWS ECR tokens expire after 12 hours. You must update the credential before redeploying if the token has expired.

Creating a Postgres service

  1. Right-click the canvas and choose Add Postgres.
  2. The service is pre-configured with sensible defaults. Adjust the name if needed.
  3. Click Apply in the Apply Changes bar to provision the cluster.

The DATABASE_URL connection string is automatically available as a Simplifyd-provided variable and can be referenced in other services.

Service panel

Clicking any service node opens the service panel on the right side of the canvas. The panel has four tabs:

TabDescription
DeploymentsView active deployment, history, logs, and redeploy controls
VariablesAdd, edit, and remove environment variables
MetricsCPU, memory, and network usage charts
SettingsService configuration (image, resources, ingress, etc.)

Renaming a service

Right-click a service node and choose Rename, or click the pencil icon in the service panel header. Service names are used in reference variables — for example ${{my-service.PORT}}.

Service names have a maximum length of 32 characters.

Ingress / public endpoints

To expose a service on the internet, configure ingress in the service Settings tab:

  1. Click Add Ingress.
  2. Choose the protocol (HTTP or gRPC) and the internal port your service listens on.
  3. Optionally provide a custom domain (FQDN).
  4. Click Apply to activate the endpoint.

The public URL will appear in the Settings tab once the deployment is live.

Healthchecks

Healthchecks let Kubernetes know when your container is alive, ready to serve traffic, or still starting up. Simplifyd Cloud supports all three Kubernetes probe types: startup, readiness, and liveness.

Configure them in the service panel → Settings tab → Deploy section → Health Probes.

See the Healthchecks page for full configuration details, recommended patterns, and code examples.

Config file mounts

Configs let you inject static text files (e.g. Caddyfile, nginx.conf, application.yaml) directly into a service without building a custom Docker image. The file content is stored on Simplifyd Cloud and mounted at a path you choose every time the service is deployed.

Adding a config

  1. Open the service panel → Settings tab.
  2. Scroll to the Configs section and click Add Config.
  3. Fill in the dialog:
    • Name — a human-readable label (e.g. Caddyfile).
    • Mount Path — absolute path inside the service where the file should appear (e.g. /etc/caddy/Caddyfile).
    • Content — paste or type the file content in the editor. The editor highlights syntax automatically based on the file extension.
  4. Click Save Config.

The config is stored but not yet active. Redeploy the service for the file to appear in the service.

Editing a config

Click the pencil icon next to an existing config to open it in the same dialog. Edit any field and click Save Config. Redeploy the service to apply the new content.

Deleting a config

Click the trash icon next to a config and confirm. Redeploy the service to remove the mount from the service.

Variable interpolation

Config content can reference service variables using the ${{VAR_NAME}} syntax. Variables are resolved at deploy time, so the stored content always keeps the original placeholders and they are re-evaluated on every deployment.

# Caddyfile
${{SERVICE}}.${{ENVIRONMENT}}.internal {
    reverse_proxy localhost:${{PORT}}
}

Available built-in variables: ${{SERVICE}}, ${{ENVIRONMENT}}, ${{PROJECT}}. Any variable you have set on the service (e.g. ${{DATABASE_URL}}, ${{PORT}}) is also available. Unmatched placeholders are left as-is.


Deleting a service

Open the service panel → Settings tab → scroll to the bottom and click Delete Service. Confirm the deletion. The change is staged — click Apply to permanently remove the service and all its deployments.

Deleting a service is irreversible. All deployments and data associated with the service will be permanently removed.