Skip to content

leodenglovescode/CarbonPanel

Repository files navigation

CarbonPanel

Project Status GitHub License GitHub last commit GitHub Actions Workflow Status

Python FastAPI Vue TypeScript Docker

A lightweight self-hosted server monitoring panel — live CPU, RAM, GPU, disk, network, and process metrics over WebSocket, with service management, disk management, app/port scanning, and JWT + TOTP authentication.

Screenshot Of CarbonPanel

Install

Docker

docker run -d \
  --name carbonpanel \
  --network host \
  --restart unless-stopped \
  -v carbonpanel_data:/app \
  -e SECRET_KEY=$(openssl rand -hex 32) \
  -e ADMIN_PASSWORD=yourpassword \
  ghcr.io/leodenglovescode/carbonpanel:latest

Open http://localhost:8787. Default username is admin.

--network host is required so the panel can read host-level metrics (network interfaces, processes, etc.). The -v carbonpanel_data:/app volume keeps your database across container restarts.

Docker Compose alternative:

services:
  carbonpanel:
    image: ghcr.io/leodenglovescode/carbonpanel:latest
    network_mode: host
    restart: unless-stopped
    volumes:
      - carbonpanel_data:/app
    environment:
      APP_PORT: 8787
      SECRET_KEY: your-secret-key-here
      ADMIN_PASSWORD: yourpassword

volumes:
  carbonpanel_data:
docker compose up -d

Self-hosted (Linux — systemd/apt)

Installs as a native systemd service with nginx. Requires root, Ubuntu/Debian.

curl -fsSL https://raw.githubusercontent.com/leodenglovescode/CarbonPanel/master/scripts/install-carbonpanel.sh | sudo bash

Initial credentials are saved to /opt/carbonpanel/shared/first-install.txt after install.


Updating

Docker

docker pull ghcr.io/leodenglovescode/carbonpanel:latest
docker stop carbonpanel && docker rm carbonpanel
docker run -d ... # same command as above — the volume keeps your data

Or with Compose: docker compose pull && docker compose up -d

The Settings page shows available updates and provides a ready-to-copy pull command.

Self-hosted

Use the Settings → Install Update button in the panel, or SSH in and run:

sudo carbonpanelctl update

Updates clone the new release, run DB migrations, health-check, and auto-rollback on failure. To roll back manually: sudo carbonpanelctl rollback.


Configuration

All settings are environment variables (Docker) or written to backend/.env (local dev / install script).

Variable Default Description
SECRET_KEY dev-secret-... JWT signing key — change this in production
ADMIN_USERNAME admin Initial admin username
ADMIN_PASSWORD changeme Initial admin password
APP_PORT 8787 Port nginx listens on
DATABASE_URL sqlite+aiosqlite:///./carbonpanel.db Database connection string
METRICS_INTERVAL_SECONDS 2.0 How often metrics are collected
PROCESS_LIMIT 25 Max processes shown in the dashboard

Features

  • Live CPU, RAM, GPU, disk, network, and process metrics over WebSocket
  • Disk management — partition info, filesystem check, unmount (USB/removable only)
  • App/port scanner — lists all listening ports with process info, custom labels, kill
  • System services — browse, start/stop/restart, enable/disable, star and reorder
  • Sites — manage tracked services with log streaming and config file editing
  • Customizable UI — dark/light/auto theme, custom colors, fonts, gradients, background images
  • JWT auth with optional TOTP 2FA
  • In-panel updates — version check via GitHub API, one-click update (self-hosted) or pull command (Docker)

Local Development

cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env
make setup   # create venv, install deps, migrate DB, seed admin
make dev     # run backend + frontend together
URL Service
http://localhost:5173 Frontend (Vite HMR)
http://localhost:8000/api/v1 Backend API

Other commands: make backend, make frontend, make lint


Tech Stack

Backend — Python 3.11+, FastAPI, SQLAlchemy + Alembic, SQLite (aiosqlite), psutil

Frontend — Vue 3, TypeScript, Vite, Pinia, Chart.js


Idea and logic by @leodenglovescode, code assisted by Claude Code.

About

CarbonPanel - Lightweight server monitoring panel

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors