Deploying software through Docker Stacks is straightforward, intuitive, and accessible for users of all technical experience levels.

RunCloud provides a visual two-step deployment wizard that guides you through selecting an application, setting resource limits, establishing domains with automated SSL, and attaching managed databases.

Deployment Options: Catalog Apps vs. Custom Images

When you create a new stack, RunCloud offers two deployment pathways:

1. Curated Catalog Applications (Pre-Tuned Apps)

RunCloud maintains an integrated library of 24 curated applications across six functional categories:

  • Monitoring:

    • Uptime Kuma: Self-hosted website, HTTP, TCP, and DNS service monitor.

    • Grafana: Visual metrics dashboard and data visualization suite.

    • Prometheus: Systems monitoring and time-series database.

    • Netdata: High-resolution real-time infrastructure performance monitor.

  • Developer Tools:

    • Mailpit: Local email testing tool with web UI and API.

    • Adminer: Database management in a single lightweight tool.

    • Redis Insight: Visual management interface for Redis databases.

    • pgAdmin: Rich web management tool for PostgreSQL databases.

    • phpMyAdmin: Web interface for managing MySQL and MariaDB databases.

  • Analytics:

    • Metabase: Business intelligence, query builder, and data visualization.

    • Plausible: Lightweight, open-source, privacy-focused web analytics.

    • Umami: Self-hosted web analytics alternative to Google Analytics.

    • Matomo: Comprehensive web analytics platform with complete data ownership.

  • AI Automation:

    • n8n: Visual workflow automation tool and integration engine.

    • Flowise: Drag-and-drop user interface for building LLM apps and agents.

    • Ollama: Self-hosted runner for local open-source large language models.

    • OpenWebUI: Feature-rich web interface for ChatGPT and Ollama runners.

    • LangFlow: Visual framework for building multi-agent workflows.

  • Search:

    • Meilisearch: Lightning-fast, typo-tolerant search engine.

    • Typesense: Fast, typo-tolerant in-memory search engine.

    • OpenSearch: Distributed search and analytics suite.

  • Content Management Systems (CMS):

    • WordPress: Containerized WordPress publishing platform.

    • Ghost: Modern publishing and independent newsletter platform.

    • Directus: Open-source backend and headless data management API.

Catalog applications include sensible default configurations, pre-mapped ports, recommended environment keys, and pre-set resource limits.

2. Custom Images

You can deploy any public container image from Docker Hub or any private image from your configured registries (such as GitHub Container Registry, AWS ECR, or Google Artifact Registry). Before you continue, RunCloud can verify whether your image reference is public, authenticated, or missing.

Single-Container vs. Multi-Container Stacks

A RunCloud Stack can hold a single container or multiple containers functioning together:

  • Single-Container Stack: Ideal for standalone tools such as Uptime Kuma or Meilisearch that manage their own internal storage.
  • Multi-Container Stack: Ideal for applications that require multiple interconnected services managed as a single unit (for example, a Plausible Analytics container paired with a ClickHouse database container, or an application container paired with a worker queue container). All containers within a single stack communicate over a private, high-speed internal Docker bridge network.

Step-by-Step Guide: Deploying Your First Stack

Follow these instructions to configure and launch a new stack on your server.

Step 1: Open the Deployment Wizard

Log in to your RunCloud console and select your containerized server, click on Stacks in the server menu, and click Deploy Stack.

Deploy stack

Step 2: Configure Your Container

1. Choose Application Source and Image

  • Click the Catalog tab to select a pre-configured application (such as “Uptime Kuma” or “n8n”), or click the Custom Image tab to type an image tag (such as rabbitmq or ghcr.io/open-webui/open-webui:main).
  • In the “Container Name” field, enter a descriptive label (for example, uptime-app).
Create image

2. Set Resource Limits

  • Adjust the “CPU Limit (cores)” control. The minimum recommended setting for catalog apps is 0.25 cores, adjustable in 0.125 core increments.
  • Adjust the “Memory Limit (MB)” control. The default recommended setting is typically 512 MB.
  • Review any warning messages. If you set limits below the catalog minimums, RunCloud will display a warning to prevent container crash-loops.
Warning message resource usage

3. Configure Domain, Networking, and SSL

  • Domain Assignment: RunCloud automatically generates a free temporary domain (for example, app-id.s.temp-site.link). You can use this temporary domain or type your custom domain (such as uptime.example.com).
  • Port Forwarding: Select the container port in the “Forwards to container port” dropdown (for example, :3001 Web UI for Uptime Kuma), or enter a custom port number.
domain configure
  • SSL / HTTPS: Check the “Enable HTTPS” box to issue a free automated SSL certificate via Let’s Encrypt.
  • Security Controls (Optional):

    • Select an “IP Allowlist” to restrict domain access to specific trusted IP addresses.

    • Select “Site Authentication” and enter credentials to protect your domain with HTTP Basic Authentication.

http basic auth

4. Configure Advanced Container Settings

  • Environment Variables: Click Add Variable to enter individual key-value pairs, or click Add from .env to paste a block of environment variables in one action.
  • Managed Services:

    • Toggle “Managed MariaDB” if your container requires an SQL database.

    • Toggle “Managed Redis” if your container requires a cache or queue.

    • RunCloud will automatically provision the service and inject connection variables into your container.

  • Readiness Health Check: Toggle the health check switch to the on position. Select or enter a test command (for example, nc -w 5 localhost 3001 </dev/null || exit 1, wget, or curl), and set your preferred Start Period, Interval, Timeout, and Retry thresholds.
Secrets
  • Secrets: Click Create Secret to mount an encrypted value from your workspace Secrets Vault as a file inside the container.
  • Volumes: Configure persistent storage mounts by specifying the Source (host path or named volume) and the Target (container path).

When your container configuration is complete, click Continue.

Step 3: Configure Stack Details and Deploy (Wizard Step 2)

  1. In the “Stack Name” field, enter a unique, lowercase slug name for your stack (for example, production-monitoring or internal-tools).
  2. In the “Stack Environment Variables” section, you can define shared environment variables that will be available to all containers in the stack. Click Add Variable or Add from .env.
  3. Click Deploy Stacks to start the deployment process.
Deploy stacks

Step 4: Monitor Deployment Execution

RunCloud will initiate the deployment workflow:

  1. The stack status will display as Pending.
  2. RunCloud provisions managed services, sets up the private bridge network, generates reverse proxy rules, pulls container image layers, and boots the containers.
  3. Once the readiness health check passes, the status changes to a green Running badge.
Docker stacks pending

You can inspect the deployment at any time by clicking the Deployments tab in the stack menu, where you can view the complete generated Docker Swarm / Compose configuration manifest.

If you have any other questions or need help, please feel free to get in touch with our 24/7 support team. We’re here to help!