Skip to content

Argon Backend, controlled voice intergration, servers, channels, users and other

License

Notifications You must be signed in to change notification settings

argon-chat/server

Repository files navigation

Argon Server Repo

Argon Local Development Environment

This guide explains how to set up and run the Argon local infrastructure for development using Docker Compose.


📦 Overview

The local environment includes the following key components:

Service Description
NATS Messaging bus with JetStream enabled.
ScyllaDB High-performance Cassandra-compatible database.
YugabyteDB (3 nodes) Distributed SQL database cluster.
PostgreSQL + Temporal Workflow orchestration backend with Temporal UI.
SeaweedFS (S3) Local S3-compatible object storage.
KineticaFS Argon’s file lifecycle manager and S3 bridge.
Dragonfly Redis-compatible in-memory cache.
LiveKit + Caddy Real-time media server with HTTPS reverse proxy.

All services are connected through the argon Docker bridge network.


⚙️ Prerequisites

Before running the environment, make sure you have:

  • Docker Desktop (or Docker Engine + Compose)
  • mkcert — for generating local TLS certificates
  • PowerShell (for Windows) to execute the certificate generation script

🔐 Generating Local Certificates

Before starting the containers, generate local certificates used by Caddy and LiveKit.

Run:

./ensure-certs.ps1

This script will:

  • Check for existing certificates in the certs/ directory
  • Create new certificates via mkcert if they don’t exist

🚀 Starting the Environment

The docker-compose.local.yml file is located in the /deploy directory.

To launch the local infrastructure, run:

docker compose -f docker-compose.local.yml up -d

This will start all services in detached mode (-d).

The first startup may take a few minutes as the databases initialize.


🧠 Useful URLs

Service URL Notes
Temporal UI http://localhost:8080 Workflow management interface
SeaweedFS S3 http://localhost:8333 S3 API endpoint
NATS Web UI http://localhost:8222 Server monitoring
ScyllaDB CQL localhost:9042 CQL port
PostgreSQL (Temporal) localhost:55432 Credentials: temporal / temporal
Yugabyte Master UI http://localhost:7000 Master node
Yugabyte TServer UI http://localhost:9000 Tablet server
LiveKit https://localhost:9443 Served via local Caddy proxy

🧹 Stopping and Cleaning Up

To stop all containers and remove related volumes (resetting all data):

docker compose -f docker-compose.local.yml -p argonlocal down --volumes --remove-orphans

This will:

  • Stop and remove all running containers
  • Remove persistent volumes
  • Clean up orphaned resources

🗂 Directory Structure

.
├─ certs/                 # Local TLS certificates (generated by mkcert)
├─ docker/                # Docker-related scripts/configs
├─ dynamicconfig/         # Temporal dynamic configuration
├─ vault-test/            # Vault testing environment
├─ .env                   # Environment variables
├─ Caddyfile              # Caddy reverse proxy configuration
├─ docker-compose.local.yml  # Main Docker Compose file
├─ ensure-certs.ps1       # PowerShell script to generate certs
└─ livekit.yaml           # LiveKit server configuration

🧩 Notes

  • The YugabyteDB cluster automatically bootstraps with 3 nodes (yb-node-1, yb-node-2, yb-node-3).
  • KineticaFS will wait for ScyllaDB to become healthy before starting.
  • DragonflyDB provides a fast Redis-compatible cache and stores data in the argon-cache-data volume.
  • Caddy uses certificates from ./certs to serve LiveKit over HTTPS on port 9443.

🧰 Troubleshooting

Issue Possible Fix
mkcert not found Install it from mkcert GitHub
Database healthcheck failures Wait 1–2 minutes; some databases (Scylla/Yugabyte) have long startup times
Ports already in use Check for conflicting local services and stop them
SSL errors in browser Run mkcert -install to add the local CA to your OS trust store

Done!
You now have a fully functional local Argon infrastructure for development.

About

Argon Backend, controlled voice intergration, servers, channels, users and other

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •