Infernet
Cloud
Setup
Docker Compose

Docker Compose setup

Clone the repository (opens in a new tab)

git clone https://github.com/ritual-net/infernet-cloud
ℹ️

For easier file navigation, follow these instructions in your IDE by opening README.md (opens in a new tab).

Install Docker Compose (opens in a new tab)

Alternatively, you may install an equivalent GUI — Docker Desktop (opens in a new tab), OrbStack (opens in a new tab), Podman (opens in a new tab), etc.

Install pnpm (opens in a new tab)

Initialize the Docker Compose setup

pnpm init:docker

This script will:

Configure environment variables

  • Open .env.docker in a text editor and adjust the following environment variables:
  • Save .env.docker.

Configure EdgeDB Auth (opens in a new tab)

  • Open dbschema/bootstrap/auth.edgeql (opens in a new tab) in a text editor.

    • Set ext::auth::AuthConfig::allowed_redirect_urls to the public-facing URL of your Infernet Cloud server (matching the SERVER_HOST environment variable from above).
    • Set ext::auth::AuthConfig::auth_signing_key to a unique high-entropy value.
    • Set ext::auth::SMTPConfig::sender to the email address to send verification emails from. Configure the other SMTP configuration values according to your email relay service as needed.
    • Under ext::auth::EmailPasswordProviderConfig, set require_verification to true to require new accounts to verify their email address before logging in; otherwise set it to false.
  • Save dbschema/bootstrap/auth.edgeql (opens in a new tab).

  • Apply changes to EdgeDB Auth settings:

    pnpm docker:edgedb:init:auth

For more information, see the EdgeDB Auth documentation (opens in a new tab).

Configure the reverse proxy

  • Open caddy/Caddyfile (opens in a new tab) in a text editor.
    • Replace localhost:3000 with the public-facing domain of your Infernet Cloud server (matching the SERVER_HOST environment variable from above, with http:// or https:// omitted).
  • Save caddy/Caddyfile (opens in a new tab).
  • If hosting Infernet Cloud on a cloud provider with a public-facing URL, ensure the corresponding port (default 3000) is forwarded and whitelisted in your cloud provider's firewall settings.

For more information, see the Caddyfile documentation (opens in a new tab).

Start all services

pnpm docker:start

Docker images for all services will be installed from Docker Hub on first run.

List of services

Access the Infernet Cloud UI

Stop all services

pnpm docker:stop

Development scripts

Docker Compose

  • Run the Docker Compose CLI with the .env.docker environment variables applied:

    pnpm docker-compose
  • Start all Docker services in detached mode and display logs (wraps docker compose up command):

    pnpm docker:start
  • Rebuild Docker images without cache, then (re)start all services:

    pnpm docker:start:force
  • Stop and remove all Docker services (wraps docker compose down command):

    pnpm docker:stop
  • Remove unused Docker data (images, containers, networks, and volumes):

    pnpm docker:clean

server service

  • Rebuild and restart server service after making changes to SvelteKit backend or frontend:

    pnpm docker:server:restart

edgedb service

Find more commands and their definitions in the scripts section of package.json (opens in a new tab).