Docs / Getting Started

Features

Everything you need to manage a production web server from one tool.

🌐

Nginx Management

Start, stop, reload, and view error logs. Built-in config editor. Automatic installation via apt-get (Linux) or winget (Windows).

🔑

SSL Certificates

Issue and renew Let's Encrypt certs via acme-client. Supports HTTP-01, DNS-01, wildcard certs, and expiry tracking with color-coded status badges.

🔗

Domain Management

Reverse proxy configs with SSL, external URL backends, wildcard domains, WebSocket support, gzip, rate limiting, security headers, and custom timeouts.

🔔

Notifications

Named Discord and Telegram channels configured once and assigned per domain per event type. State-aware dispatch prevents spam — alerts fire only on status changes. Recovery notifications sent when services come back online.

📦

Node.js Manager

Switch Node.js versions via nvm or nvm-windows. Install/uninstall global npm packages. Update npm automatically.

📋

Log Viewer

Stream nginx error.log and access.log in real time via Socket.io. Toggle between logs, auto-scroll, pause/resume, and colour-coded output.

💾

SQLite Storage

Persistent configuration stored in a single SQLite database file in your home directory. Survives npm updates. No separate database server required.

🛡️

Bootstrap Installer

One-line installers for Linux and Windows that auto-detect Node.js, install nvm if needed, and register the global command.

Themed Dashboard

Dark and light modes with 5 accent colors (teal, violet, amber, rose, cyan). Settings persist in localStorage.

🔄

Real-time Updates

Socket.io powered live updates: nginx status every 5 s, domain health badges every 60 s, cert expiry on connect and every 12 hours.

Notifications

Easy DevOps can send alerts to Discord and Telegram when something goes wrong — and again when it recovers. Channels are registered once in Settings → Notifications and then assigned to domains per event type.

  • Named channel registry — each Discord webhook or Telegram bot gets a name and UUID. Edit or delete from the Notifications tab without touching domain configs.
  • Per-domain assignment — open a domain and expand the Notifications section. Independently toggle cert_expiry and domain_health, and check which channels receive each event.
  • Global nginx_down — not tied to any single domain. Fires when nginx stops running. Routes to the union of all channels configured across all domains.
  • Deduplication — the state machine only fires on transitions: up → down sends an alert; still down is silent; down → up sends a recovery notification.
  • Discord role mentions — add a message prefix (e.g. <@&RoleId>) to a Discord channel. It is sent as the webhook content field so Discord resolves the mention correctly.
  • Test button — send a live test notification from the channel list without waiting for a real event.

Domain Configuration Options

  • Backend: local host:port (127.0.0.1:3000) or full external URL (https://app.vercel.app)
  • Wildcard domain (*.example.com) — auto-enforces DNS-01 SSL validation
  • SSL/HTTPS with certificate management
  • WebSocket support (ws upstream type)
  • Gzip compression
  • Rate limiting (requests/second + burst)
  • Security headers (X-Frame-Options, etc.)
  • Custom timeout and body size limits
  • Domain-specific access logs
  • Per-domain notification config — choose which channels receive cert_expiry and domain_health alerts for each domain individually