Getting Started with Run App

Table of Contents

  1. What Run App is
  2. Subscribing to a plan
  3. Registry authentication
  4. Creating a stack
  5. Beginner Pitfalls

1. What Run App is

Run App is a Docker hosting service on Cloud+: it deploys and runs a containerized website, web app, or service on Sabay's container orchestration infrastructure (Docker swarm), without you managing servers yourself.

Each deployed application is called a stack. A stack is created from a Docker image you provide, plus configuration (environment variables, resource policy, etc.) set through the Run App dashboard — there is no API here to call from code; the dashboard itself is the interface this series walks through.

Before you can create a stack, your account needs an active Run App subscription (a plan).

2. Subscribing to a plan

If you don't already have a plan, you're prompted to add one the first time you try to create a stack:

  1. From the top menu, go to Cloud → Run App. If you have no subscription yet, you'll see an empty state — click CREATE.

  2. Account Verification — your phone number and email must show as Verified, then click NEXT.

  3. Plans — pick a plan sized for your project, then click NEXT. Plans are priced in KHR/month and scale CPU cores, RAM, and monthly transfer together:

    PlanPrice (KHR/mo)CPURAMTransfer
    Student18,0000.5 core512 MB1024 GB
    Basic36,0001 core1 GB2 TB
    Standard72,0002 core2 GB4 TB
    Premium180,0004 core8 GB12 TB
    Pro360,0008 core16 GB16 TB
  4. Payment — review the order summary (subtotal + 10% tax), choose to pay from your KHR or Business Gold wallet balance, then click PAY NOW.

    • If your KHR balance is too low, PAY NOW stays disabled. Use the wallet menu (top right) → Reload to top up: pick a KHR bundle, pay via ABA KHQR (scan with any KHR-QR-supporting banking app), and you'll land on a payment-success page once it clears. Return to the create-stack flow and your new balance is reflected.
  5. Run App Information — fill in your stack information (see below), then click CREATE or CREATE & DEPLOY.

Once this completes, you'll see a confirmation that your stack was created.

3. Registry authentication

If your Docker image lives in a private registry, save credentials for it before (or while) creating a stack: on the Run App page, switch from the Stack List tab to the Registry Authentication tab, then click CREATE REGISTRY.

  • Registry Provider — a dropdown of common providers (Custom, Docker Hub, Gitlab, Azure, ProGet, Quay, AWS ECR, and more).
  • Host — the registry's hostname.
  • User Name
  • Access Token — a personal access token or password for that registry (masked, with a reveal toggle).

Click CREATE to save it. Saved registries then show up as selectable options wherever a stack's Service Info → Registry Authentication is set to Private.

4. Creating a stack

Once you're on the Run App Information step, you're filling in one Stack:

  • Stack Name — a name for your stack.
  • Shared Env — key/value environment variables shared across every service in the stack. Add pairs one at a time, or click Upload Variable From Env File to import a .env file (there's a Download Sample Env File button for a starting template).

Below that, each service in the stack can be configured one of three ways — Form, Editor (Beta), or Upload (Beta) — all three edit the same underlying stack configuration.

Form gives you a service card with three sub-tabs: Service Info (name, domain/host name + container port, container image, registry auth, entrypoint, "Depend On" for other services in the stack), Environment (per-service env vars, separate from Shared Env), and Policy & Resource (restart policy, replicas, CPU/memory — covered in Part 4). Click ADD SERVICE to add another service to the same stack.

Editor (Beta) / Upload (Beta) edit the same configuration as raw YAML instead (Upload (Beta) additionally lets you upload a .yml file, with a Download sample). The schema:

- serviceName:
  domainName:
  port:
  image:
  entrypoint:
  replicas: 1
  dependsOn:
  privateRegistry:
    provider:
    host:
    username:
    accessToken:
  restartPolicy:
    maxAttempt: 5
    restartWindow: 120s
    delay: 5s
    condition: ANY
  resources:
    cpu: 0.5
    memory: 512

Once your service(s) are configured, click CREATE to save the stack without deploying, or CREATE & DEPLOY to deploy it immediately. You'll see a confirmation that your stack was successfully created.

5. Beginner Pitfalls

  • Trying to create a stack without an active plan. You'll be routed into the subscription flow first — that's expected, not an error.
  • Setting up a private registry after you've already started the create form. Save registry credentials on the Registry Authentication tab first if your image needs them, so it's selectable when you configure Service Info.
  • Confusing Shared Env with per-service Environment. Shared Env applies to every service in the stack; per-service Environment only applies to that one service. Use Shared Env for values every service needs (like a shared API key), and per-service Environment for values specific to one service.
  • Not distinguishing CREATE from CREATE & DEPLOY. CREATE just saves the stack configuration; CREATE & DEPLOY also deploys it immediately.

Buy Me a Coffee

Found this tutorial helpful? Consider buying me a coffee to support more free content!