Skip to content
catalystctlPublic

About

The modern open-source game server management panel. Rust core, containerd runtime, one-line install.

Topics

Resources

Contributing

Stars

41 stars

Watchers

1 watching

Forks

Latest commit

ย 

History

1,578 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Catalyst

TypeScript React Rust License

A game server control panel. Create servers, manage files, backups, and console output, and automate everything through the API. Per-subsystem status is in Project Status.

Official support channels: GitHub Issues and Discord. These are the only official lines of communication for support, bug reports, and project discussion.


What is Catalyst?

Catalyst is a complete platform built for enterprise game server hosts, game communities, and billing panel integrations. Manage servers across multiple nodes with container isolation, live console access, automated backups, and fine-grained permissions.

๐ŸŽฏ Perfect for: Enterprise hosts, game communities, Minecraft/Rust/ARK/Hytale servers, billing panel automation


โšก 5-Minute Quick Start

Docker Compose (Docker or Podman) is the only supported deployment method. Everything runs in containers โ€” no Node.js, Bun, or Rust install needed on the host.

1. Download & configure

VERSION=v1.85.0  # replace with the release you want
curl -fsSL -o install.sh "https://github.com/catalystctl/catalyst/releases/download/${VERSION}/install.sh"
curl -fsSL -o install.sh.sha256 "https://github.com/catalystctl/catalyst/releases/download/${VERSION}/install.sh.sha256"
sha256sum -c install.sh.sha256 && bash install.sh
cd catalyst-docker
nano .env          # Set PUBLIC_URL at minimum
docker compose up -d

2. Access the panel

Open your PUBLIC_URL in a browser. Complete the Setup wizard (admin account + appearance). That first setup user becomes the administrator and open registration is disabled afterward.

That's it. No build steps, no dependency installation, no manual secret generation (the install script does that for you).

๐Ÿ‘‰ Want more detail? See the Administrator Guide for the full walkthrough, or Installation for every option and production hardening.

Stuck or have questions? Join the community on Discord or open a GitHub Issue.


Installation Options

Catalyst deploys in three ways. Pick the one that fits you:

Method Time Best For
One-Line Install 5 minutes First-time users, production
Docker/Podman Compose 10 minutes Users who want full control over TLS, ports, volumes
Build from Source 30+ minutes Developers contributing to Catalyst

๐Ÿณ Docker & Podman

Both Docker Compose and Podman Compose are fully supported. The workflow is identical โ€” just replace docker with podman in every command.

# Docker
docker compose up -d

# Podman (drop-in replacement)
podman compose up -d

๐Ÿ”ง Configuration

install.sh writes .env for you (secrets included); you can edit it anytime. Every variable, its default and what it changes: catalyst-docker/.env.example, catalyst-docker/README.md and the Configuration page.

๐ŸŒ Production & TLS

For production with automatic HTTPS:

# Caddy โ€” automatic Let's Encrypt
docker compose -f docker-compose.yml -f docker-compose.caddy.yml up -d

# Or Traefik โ€” Docker-native routing
docker compose -f docker-compose.yml -f docker-compose.traefik.yml up -d

See the Administrator Guide for full TLS, reverse proxy, and hardening details.


Architecture

                     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                     โ”‚   Docker Compose     โ”‚
                     โ”‚                      โ”‚
  :80 (panel)  โ”€โ”€โ”€โ–บ โ”‚  Nginx (Frontend)   โ”‚
                     โ”‚    โ”‚  /api  /ws      โ”‚
                     โ”‚    โ–ผ                 โ”‚
                     โ”‚  Fastify (Backend)   โ”‚โ”€โ”€โ–บ :3000 (API)
                     โ”‚    โ–ผ                 โ”‚
  :5432 (internal) โ—„โ”€โ”‚  PostgreSQL          โ”‚
  :6379 (internal) โ—„โ”€โ”‚  Redis               โ”‚
                     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

  Game Nodes (separate machines):
  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚  Rust Agent  โ”‚โ—„โ”€โ”€ WebSocket โ”€โ”€โ”€โ”€โ”€โ–บโ”‚  Backend API โ”‚
  โ”‚  (containerd)โ”‚                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚ :2022 (SFTP)
         โ–ผ
  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚  Game        โ”‚
  โ”‚  Servers     โ”‚
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Tech Stack:

  • Backend: TypeScript 6.0, Fastify, PostgreSQL, WebSocket Gateway
  • Frontend: React 19, Vite, Catalyst Sync (csync), Radix UI
  • Agent: Rust 1.95, Tokio, containerd gRPC
  • Features: RBAC, SFTP, Plugin System, Task Scheduling, Alerts

Agent performance and node tuning

The agent's control plane shares host CPU, memory and storage with game containers. Defaults keep that overhead low: resource reports every five seconds, bounded transfer queues, and installer logs read as appended bytes rather than re-read whole. Backups do not force source-file fsyncs โ€” tar reads the page cache โ€” so quiesce or stop the game for a consistent backup.

For dense nodes, set [agent].stats_interval_secs = 10 or 30 in the agent configuration when slower graphs are acceptable; STATS_INTERVAL_SECS overrides the file setting (minimum: one second). Leave [logging].level = "info" in normal operation โ€” SSH/SFTP debug logging follows it rather than being forced on. See the configuration example.

The node tuning script configures host limits and absolute dirty-page thresholds (256 MiB background, 1 GiB maximum). It changes global kernel settings and restarts the agent; review it before running on a live node. Generated systemd units use neutral CPU/IO weights of 100, which are hierarchical rather than cross-hierarchy game reservations or disk bandwidth caps.

Validate tuning under representative player load: compare game tick/frame latency, cgroup cpu.stat throttling deltas, memory.events, and /proc/pressure/{cpu,memory,io} while exercising saves, backups and transfers. Do not read reclaimable file cache in memory.current as agent heap/RSS. Remaining limits: live backups, copies and installs can still contend with game I/O, and mount-restricted environments can fall back to plain directories without enforcing the requested disk quota.


Key Features

๐ŸŽฎ Complete Server Lifecycle

Create, start, stop, restart, and transfer servers with automatic crash detection and recovery.

๐Ÿ“Š Real-Time Monitoring

Live console streaming over WebSockets, resource metrics, and customizable alerts.

๐Ÿ” Enterprise Security

RBAC with 74 granular permissions, API key authentication with rate limiting, audit logging, TLS support.

๐Ÿ”Œ Powerful Plugin System

Extend functionality with custom backend plugins, API routes, WebSocket handlers, and scheduled tasks.

๐Ÿ“ File Management

Web-based file editor, SFTP access, upload/download with path validation, and automated backup/restore.

๐Ÿค– API-First Design

334 REST operations with billing-panel integrations (WHMCS, Paymenter) and an OpenAPI reference.


What Makes Catalyst Different?

  • containerd for superior performance (not Docker)
  • WebSocket gateway for real-time console, metrics and agent traffic
  • Plugin system for infinite extensibility
  • Rust agent for memory safety and performance
  • Docker Compose for one-command deployment

Documentation

Full product documentation lives at docs.catalystctl.com (source):

Guide For You If... Start here
Getting Started New to Catalyst First server in minutes
Game Server Guide Server owner Console, files, backups, databases, tasks
Administrator Guide System operator Install, nodes, networking, updates
API & Developers Developer Auth, WebSockets, generated API reference
Troubleshooting All Errors, fixes, debugging workflows

Contributor and operator references stay in this repo:


Project Status

Category Status
Core Features (Servers, Nodes, Backups, SFTP) โœ… Stable
Security (RBAC, Audit, TLS, API Keys) โœ… Stable
REST API โœ… 334 operations across 42 route files
Real-Time (WebSocket Console, Metrics) โœ… Stable
Frontend UI โœ… 41 page components, full admin panel
Plugin System โœ… Stable (10 official plugins in the marketplace)
Task Scheduling โœ… Stable
Alerting โœ… Stable
Agent (Rust, containerd) โœ… Stable
Testing โœ… 144 backend and 78 frontend Vitest files, 2 Playwright E2E specs, 24 bash E2E suites
Container Deployment โœ… Docker Compose, Podman Compose
v2 (Scaling, CLI, Mobile) ๐Ÿ”ฎ Planned

๐Ÿ“š Quick Documentation Links

New here? Pick your path in the documentation:

The full documentation catalog is in the table above.


Support & Community

Official support channels are GitHub Issues and Discord only. Please use these for bug reports, feature requests, installation help, and project discussion โ€” they are our official lines of communication.

Channel Use for
GitHub Issues Bug reports, feature requests, tracked work
Discord Real-time help, community discussion, announcements

Invite link: https://discord.gg/mybxhmru3y


Contributing

We welcome contributions! Please see CONTRIBUTING.md for repository guidelines, code conventions, and commit standards.

Questions about contributing? Hop into Discord or open a GitHub Issue.


License

GPLv3 ยฉ 2026 Catalyst Contributors

About

The modern open-source game server management panel. Rust core, containerd runtime, one-line install.

Topics

Resources

Contributing

Stars

41 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages