|
Self-hosted server management dashboard for developers. No cloud. No telemetry. No surprises.
Axius OSS is a zero-configuration server management dashboard that runs entirely on your machine. Clone the repository, generate two secrets, and you have a full monitoring and management interface running in under a minute.
There are no cloud dependencies, no third-party services, and no data leaving your server. Everything persists in a single SQLite file that you own and control.
No external dependencies: Axius OSS runs entirely on your infrastructure. There is no telemetry, no analytics endpoint, no license check, and no connection to any external service unless you explicitly configure SMTP notifications.
You own your data: all state lives in a single SQLite file at a path you control. Back it up, move it, inspect it directly. No hidden state.
Zero configuration: the setup wizard handles first-run configuration through a browser UI. There is nothing to configure before the first docker compose up.
Single-user by design: Axius OSS is built for the person who owns the server. One admin account with full access to all features, secured by bcrypt and JWT.
- Real-time system monitoring: CPU, memory, storage, network, uptime
- Docker container management: start, stop, restart, remove
- File explorer with syntax highlighting
- Web terminal with multiple tabbed sessions
- Email notifications for container stop events via SMTP
- First-run setup wizard
- Custom theming via CSS variable injection (tweakcn.com compatible)
- Dark and light mode
- Local authentication with bcrypt + JWT
- Single SQLite database file
- Docker Compose deployment
System monitoring: real-time CPU, memory, storage, and network charts.
File explorer: browse the host filesystem with syntax-highlighted editing.
Email notifications: configure SMTP and receive alerts when a container stops.
- Docker and Docker Compose
- Git
openssl(pre-installed on most systems)
Linux:
git clone https://github.com/Lucas-Henry/axius-oss.git
cd axius-oss
cp .env.example .env.local
sed -i "s|ENCRYPTION_KEY=|ENCRYPTION_KEY=$(openssl rand -hex 32)|" .env.local
sed -i "s|JWT_SECRET=|JWT_SECRET=$(openssl rand -hex 64)|" .env.local
docker compose up -dmacOS:
git clone https://github.com/Lucas-Henry/axius-oss.git
cd axius-oss
cp .env.example .env.local
sed -i '' "s|ENCRYPTION_KEY=|ENCRYPTION_KEY=$(openssl rand -hex 32)|" .env.local
sed -i '' "s|JWT_SECRET=|JWT_SECRET=$(openssl rand -hex 64)|" .env.local
docker compose up -dOpen http://localhost:8765 and follow the setup wizard.
git clone https://github.com/Lucas-Henry/axius-oss.git
cd axius-oss
cp .env.example .env.local
sed -i "s|ENCRYPTION_KEY=|ENCRYPTION_KEY=$(openssl rand -hex 32)|" .env.local
sed -i "s|JWT_SECRET=|JWT_SECRET=$(openssl rand -hex 64)|" .env.local
npm install
npm run devThe first time you open http://localhost:8765, you are guided through a four-step wizard:
- Welcome: overview of features and data privacy
- Create admin: set your username and password
- SMTP (optional): configure email notifications for container events
- Done: complete setup and log in
| Variable | Description | Default |
|---|---|---|
PORT |
HTTP server port | 8765 |
NODE_ENV |
Environment | development |
ENCRYPTION_KEY |
AES-256 key for encrypting sensitive data at rest | required |
JWT_SECRET |
Secret for signing JWT session tokens | required |
SHELL |
Shell binary for terminal sessions | /bin/bash |
DATA_DIR |
Directory where the SQLite database is stored | ./data |
For production deployments behind a reverse proxy:
Axius OSS supports full theme customization via CSS variable injection:
- Go to Settings > Appearance
- Generate a theme at tweakcn.com
- Paste the generated CSS into the theme editor
The theme applies immediately without a page reload.
What Axius OSS does:
- Hashes all passwords with bcrypt (cost factor 12)
- Encrypts SMTP passwords with AES-256 at rest
- Issues session tokens as HttpOnly, Secure, SameSite=Strict cookies
- Accepts an optional Docker socket proxy to limit container API surface
What you need to be aware of:
- The web terminal spawns a PTY as the same OS user running the Node.js process. If Node runs as root, the terminal runs as root.
- Docker socket access gives significant host access. Use the optional socket proxy in production environments.
- The Docker Compose setup mounts the host filesystem at
/mnt/host, giving the file explorer full read/write access. Do not expose Axius OSS to untrusted networks without additional controls: a VPN, firewall rule, or reverse proxy with authentication in front of it. - This is a single-user system. The admin account has full access to everything.
Axius OSS follows Atomic Design principles.
Atoms: stateless primitives: ThemeToggle, StatusDot, MetricBadge, CopyButton, LoadingSpinner
Molecules: composed atoms with simple local state: MetricCard, NavItem, ContainerRow, FileRow, NotificationToggle, SmtpStatusBanner
Organisms: feature sections with business logic: Sidebar, MonitoringDashboard, DockerManagement, FileExplorer, TerminalTabManager, SettingsPanel, NotificationSettings, ThemeEditor
Templates: page-level layout shells: DashboardShell, AuthShell, SetupShell
Pages: Next.js App Router pages that compose templates and organisms
- Next.js 15 (App Router) + React 19
- TypeScript (strict mode)
- Tailwind CSS v3 + shadcn/ui
- SQLite via better-sqlite3
- Docker via dockerode
- systeminformation for host metrics
- xterm.js + node-pty for the terminal
- nodemailer for SMTP notifications
- bcryptjs + jsonwebtoken for authentication
- zod for validation
- recharts for charts
This is explicit and intentional:
- Does not send any data to external servers
- Does not collect usage metrics or telemetry
- Does not support multi-user access or role-based permissions
- Does not manage multiple servers from a single instance
- Does not replace a proper secrets manager for production secrets
Elastic License 2.0 . see LICENSE for details.
|
Axius OSS is free and always will be. For multi-server management and more, see Axius Pro. |
