Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.ardor.cloud/llms.txt

Use this file to discover all available pages before exploring further.

Overview

When you click Deploy, Ardor deploys the selected environment: all services in that environment and their runtime settings. This page explains what happens under the hood and how to manage your deployments.
Cerebrum handles deployments. Just ask “deploy to production”. The details below help you understand the process or troubleshoot issues.

How Deployment Works

1

Prepare Environment

Ardor reads the selected environment: its services, resource settings, variables, secrets, ports, and networking configuration.
2

Build Code Services

For services backed by code, Ardor reads each service’s Dockerfile and builds a container image.
3

Use Image Services

Services created from Docker images skip the build step. Ardor uses the configured image directly.
4

Deploy Environment

Ardor applies the environment configuration and starts or updates the containers for all changed services.

Dockerfile Requirements

All code services need a Dockerfile in the project root. Docker image services do not need a Dockerfile because Ardor deploys the configured image directly.

Dockerfile Essentials

Your Dockerfile must:
  • Build your app — install dependencies, compile code
  • EXPOSE a port — the port your app listens on
  • Define CMD or ENTRYPOINT — how to start your app

Example Dockerfiles

FROM python:3.12-slim

WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

EXPOSE 8080
CMD ["python", "app.py"]
Use multi-stage builds (like the Go example) to keep your final image small. Smaller images = faster deployments.

Docker Image Deployments

Services created from Docker images skip the build step entirely during environment deployment — Ardor pulls the image directly and deploys it with the service’s configured settings.

Docker Image Guide

Learn how to deploy pre-built images from Docker Hub.

Build Failures

If a code service build fails, check:
Typos, missing commands, or invalid instructions. Validate your Dockerfile locally with docker build .
Package not found? Make sure your requirements.txt, package.json, or equivalent is complete and committed.
Some packages need network access. If using a private package registry, ensure credentials are configured.
Large builds (especially Node.js) can run out of memory. Try optimizing your Dockerfile or increasing build resources.

Build Logs

Check build logs for detailed error messages.

Deployment Failures

If a service container starts but then fails:
Check runtime logs for errors. Common causes: missing environment variables, database connection failures, port binding issues.
Your app isn’t responding on the configured port. Make sure it binds to 0.0.0.0 and reads the PORT environment variable.
Your app needs more RAM than allocated. Increase memory in resource settings.

Best Practices

Keep images small

Use alpine base images and multi-stage builds. Faster builds, faster deploys.

Use specific versions

Pin dependency versions in your Dockerfile and package files for reproducible builds.

What’s Next

Logging

Monitor builds and runtime with detailed logs

Variables & Secrets

Configure environment-specific settings

GitHub Integration

Connect repositories and keep code in GitHub

Resource Configuration

Tune CPU, RAM, and storage for your deployments