@@ -30,7 +30,7 @@ Click any template card to open the **deployment sheet** on the right side of th
### Stack name
-Pre-filled with the template name in lowercase. You can change it — the same [naming rules](/features/stack-management#creating-a-stack) apply (lowercase, hyphens, no spaces).
+Pre-filled with the template name in lowercase. You can change it - the same [naming rules](/features/stack-management#creating-a-stack) apply (lowercase, hyphens, no spaces).
### Environment variables
@@ -48,7 +48,7 @@ For each container mount point, enter the **host path** where that data should b
### Ports
-For each exposed port, edit the **host port** (left side). The container port (right side) is fixed by the template and cannot be changed here — edit the compose file after deployment if needed.
+For each exposed port, edit the **host port** (left side). The container port (right side) is fixed by the template and cannot be changed here - edit the compose file after deployment if needed.
### What happens on Deploy
diff --git a/docs/features/atomic-deployments.mdx b/docs/features/atomic-deployments.mdx
index b0386f25..41995286 100644
--- a/docs/features/atomic-deployments.mdx
+++ b/docs/features/atomic-deployments.mdx
@@ -11,12 +11,12 @@ Sencho Pro wraps every deployment in a safety net. Before applying changes, it b
## How it works
-1. **Backup** — Before a deploy or update, Sencho copies `compose.yaml` and `.env` files to a `.sencho-backup/` directory inside the stack folder
-2. **Deploy** — Sencho runs the requested compose operation (up, pull + recreate, etc.)
-3. **Health probe** — After deployment, Sencho checks whether any containers exited with a non-zero exit code
-4. **Auto-rollback** — If a crash is detected, Sencho restores the backed-up files and re-deploys automatically
+1. **Backup** - Before a deploy or update, Sencho copies `compose.yaml` and `.env` files to a `.sencho-backup/` directory inside the stack folder
+2. **Deploy** - Sencho runs the requested compose operation (up, pull + recreate, etc.)
+3. **Health probe** - After deployment, Sencho checks whether any containers exited with a non-zero exit code
+4. **Auto-rollback** - If a crash is detected, Sencho restores the backed-up files and re-deploys automatically
-This entire sequence happens transparently. You see a single deploy action — Sencho handles the safety logic behind the scenes.
+This entire sequence happens transparently. You see a single deploy action - Sencho handles the safety logic behind the scenes.
## Manual rollback
@@ -30,4 +30,4 @@ Deployments triggered via webhooks also use atomic rollback. Whether you deploy
## Community Edition behavior
-Community users continue to use the standard deploy flow — no backup is created and no rollback is available. Upgrading to Pro enables atomic deployments immediately with no configuration required.
+Community users continue to use the standard deploy flow - no backup is created and no rollback is available. Upgrading to Pro enables atomic deployments immediately with no configuration required.
diff --git a/docs/features/dashboard.mdx b/docs/features/dashboard.mdx
index 2869e351..d26f64ce 100644
--- a/docs/features/dashboard.mdx
+++ b/docs/features/dashboard.mdx
@@ -15,7 +15,7 @@ The top row summarises container state at a glance:
| Card | What it shows |
|------|---------------|
-| **Active Containers** | Running containers — broken down as `N managed · N external` |
+| **Active Containers** | Running containers - broken down as `N managed · N external` |
| **Exited Containers** | Stopped or crashed containers |
| **Docker Network** | Current inbound/outbound network throughput across all containers |
@@ -37,8 +37,8 @@ When any value exceeds configured thresholds (set in **Settings → System Limit
Two area charts display time-series data sampled at one-minute intervals, retained for up to 24 hours (configurable in **Settings → Developer**):
-- **Normalized CPU Usage** — total CPU percentage across all managed containers, normalised over all host cores
-- **Normalized RAM Usage** — total memory allocated by managed containers, in GB
+- **Normalized CPU Usage** - total CPU percentage across all managed containers, normalised over all host cores
+- **Normalized RAM Usage** - total memory allocated by managed containers, in GB
The x-axis shows time labels. Hover over a data point to see the exact value at that moment.
diff --git a/docs/features/editor.mdx b/docs/features/editor.mdx
index 4ebfbd4e..a7948994 100644
--- a/docs/features/editor.mdx
+++ b/docs/features/editor.mdx
@@ -3,7 +3,7 @@ title: Editor
description: Edit compose files and environment variables, and manage containers directly from the dashboard.
---
-Selecting a stack opens the editor view — a split-pane layout with container management on the left and a full Monaco code editor on the right.
+Selecting a stack opens the editor view - a split-pane layout with container management on the left and a full Monaco code editor on the right.
@@ -37,9 +37,9 @@ The `.env` editor has the same save/discard controls as the compose editor. Chan
The left panel lists all containers that belong to the selected stack. Each container shows:
-- **Status badge** — `running`, `exited`, `starting`, or `unhealthy`
-- **Live stats** — CPU %, RAM usage, and network I/O updated every 1–2 seconds
-- **Port mappings** — host:container port pairs (if any)
+- **Status badge** - `running`, `exited`, `starting`, or `unhealthy`
+- **Live stats** - CPU %, RAM usage, and network I/O updated every 1–2 seconds
+- **Port mappings** - host:container port pairs (if any)
### Container actions
@@ -57,7 +57,7 @@ The log viewer streams output from a single container in real-time using Server-
### Container terminal (exec)
-The terminal modal gives you an interactive bash shell inside the running container — equivalent to `docker exec -it
@@ -111,7 +111,7 @@ Nodes with CPU or disk usage above 90% automatically receive a red **Critical**
## How fleet data is fetched
-Fleet View queries all registered nodes in parallel. Each node responds independently — one slow or offline node does not block the others. Local node data comes from the Docker socket and system stats directly. Remote node data is fetched over the Distributed API proxy using each node's Bearer token.
+Fleet View queries all registered nodes in parallel. Each node responds independently - one slow or offline node does not block the others. Local node data comes from the Docker socket and system stats directly. Remote node data is fetched over the Distributed API proxy using each node's Bearer token.
@@ -13,11 +13,11 @@ The **Logs** tab aggregates output from all running containers into a single scr
Each line shows:
-- **Timestamp** — when the log line was emitted
-- **Stack name** — the Compose stack the container belongs to (colour-coded)
-- **Container name** — the specific container
-- **Level** — `INFO`, `WARN`, or `ERROR` (where detectable)
-- **Message** — the raw log output
+- **Timestamp** - when the log line was emitted
+- **Stack name** - the Compose stack the container belongs to (colour-coded)
+- **Container name** - the specific container
+- **Level** - `INFO`, `WARN`, or `ERROR` (where detectable)
+- **Message** - the raw log output
## Streaming modes
@@ -36,11 +36,11 @@ Use the controls above the log panel to narrow what you see:
| Control | What it does |
|---------|-------------|
-| **Stack filter** | Multi-select dropdown — show only logs from chosen stacks |
-| **Stream** | `ALL` / `STDOUT` / `STDERR` — filter by output stream |
+| **Stack filter** | Multi-select dropdown - show only logs from chosen stacks |
+| **Stream** | `ALL` / `STDOUT` / `STDERR` - filter by output stream |
| **Search** | Full-text filter on the message field (case-insensitive) |
-Filters combine — you can show only `STDERR` from a specific stack while searching for a keyword.
+Filters combine - you can show only `STDERR` from a specific stack while searching for a keyword.
## Controls
diff --git a/docs/features/host-console.mdx b/docs/features/host-console.mdx
index 6108b2e3..a6e811a2 100644
--- a/docs/features/host-console.mdx
+++ b/docs/features/host-console.mdx
@@ -1,6 +1,6 @@
---
title: Host Console
-description: An interactive terminal on your host OS, directly in the browser — no SSH required.
+description: An interactive terminal on your host OS, directly in the browser - no SSH required.
---
The **Console** tab opens a full interactive terminal session on the machine running Sencho. It behaves exactly like an SSH session, but without needing an SSH server, client, or key management.
@@ -32,7 +32,7 @@ Click **Close Console** to end the session and terminate the shell process on th
The shell depends on the host OS:
- **Linux/macOS hosts:** `bash` or `sh`
-- **Windows hosts (Docker Desktop):** PowerShell (as shown in the screenshot — the console opens inside the Sencho container's Windows environment)
+- **Windows hosts (Docker Desktop):** PowerShell (as shown in the screenshot - the console opens inside the Sencho container's Windows environment)
## Security model
diff --git a/docs/features/licensing.mdx b/docs/features/licensing.mdx
new file mode 100644
index 00000000..3daabf5e
--- /dev/null
+++ b/docs/features/licensing.mdx
@@ -0,0 +1,54 @@
+---
+title: Licensing & Billing
+description: How Sencho Pro licensing works - trials, activation, and subscription management.
+---
+
+Sencho uses an open-core model. The **Community** tier is free forever with unlimited nodes. **Pro** unlocks advanced features like fleet management, RBAC, webhooks, atomic deployments, and fleet-wide backups.
+
+## Plans
+
+| Tier | Price | Accounts |
+|------|-------|----------|
+| **Community** | Free | 1 admin |
+| **Personal Pro** | $7.99/month, $69.99/year, or $249 lifetime | 1 admin + 3 viewers |
+| **Team Pro** | $49.99/month, $499.99/year, or $1,499 lifetime | Unlimited |
+
+Lifetime pricing is an early-adopter offer available for a limited time only.
+
+## Free trial
+
+Every new Sencho installation starts with a **14-day Pro trial** - no license key or credit card required. All Pro features are unlocked during the trial so you can evaluate them with your real infrastructure.
+
+When the trial expires, Sencho automatically reverts to the Community tier. No data is lost.
+
+## Purchasing a license
+
+1. Visit [sencho.io](https://sencho.io/#pricing) and choose a plan.
+2. Complete the checkout on Lemon Squeezy.
+3. You'll receive a license key by email.
+
+## Activating your license
+
+1. Go to **Settings > License** in your Sencho dashboard.
+2. Paste your key into the **License Key** field.
+3. Click **Activate**.
+
+Sencho validates the key against Lemon Squeezy and activates Pro features immediately.
+
+## License validation
+
+Active licenses are re-validated every **72 hours** against the Lemon Squeezy API. If your instance goes offline, there is a **30-day grace period** before it degrades to the Community tier.
+
+## Managing your subscription
+
+To manage your subscription (update payment method, view invoices, cancel, or switch plans), visit the [Lemon Squeezy customer portal](https://app.lemonsqueezy.com/my-orders) or use the link in your purchase confirmation email.
+
+## Deactivating a license
+
+To transfer your license to a different instance:
+
+1. Go to **Settings > License**.
+2. Click **Deactivate License**.
+3. On your new instance, activate the same license key.
+
+Deactivation reverts the current instance to the Community tier immediately.
diff --git a/docs/features/multi-node.mdx b/docs/features/multi-node.mdx
index 17d44373..febc6ef1 100644
--- a/docs/features/multi-node.mdx
+++ b/docs/features/multi-node.mdx
@@ -3,7 +3,7 @@ title: Multi-Node Management
description: Connect multiple Sencho instances and manage all your servers from a single dashboard.
---
-Sencho's multi-node feature lets you manage Docker Compose stacks on multiple servers — all from the same browser tab. Each server runs its own Sencho instance, and your primary instance acts as a transparent proxy to the others.
+Sencho's multi-node feature lets you manage Docker Compose stacks on multiple servers - all from the same browser tab. Each server runs its own Sencho instance, and your primary instance acts as a transparent proxy to the others.
@@ -21,7 +21,7 @@ Your primary Sencho installation is always listed as **Local**. It is the defaul
### Step 1: Generate a token on the remote machine
-On the **remote** Sencho instance (the server you want to add), open **Settings → Nodes** and click **Generate Token**. Copy the generated token — you'll only see it once.
+On the **remote** Sencho instance (the server you want to add), open **Settings → Nodes** and click **Generate Token**. Copy the generated token - you'll only see it once.
@@ -77,4 +77,4 @@ Click the **pencil icon** on any remote node row to edit its name, URL, or token
- Node tokens grant full control over the remote Sencho instance. Rotate them if compromised via Settings → Nodes → Generate Token (the old token is invalidated).
- Use HTTPS between instances in production to prevent token interception.
-- The host console and container exec terminals are blocked for node-proxy tokens — interactive shell access always requires a real browser session on that instance.
+- The host console and container exec terminals are blocked for node-proxy tokens - interactive shell access always requires a real browser session on that instance.
diff --git a/docs/features/overview.mdx b/docs/features/overview.mdx
index 30fdf82b..b3db2292 100644
--- a/docs/features/overview.mdx
+++ b/docs/features/overview.mdx
@@ -13,7 +13,7 @@ Full in-browser code editor for your Compose and environment files. Toggle edit
## Multi-node support
-Add remote Sencho instances as nodes. All dashboard operations — stack management, logs, stats — work identically whether you're targeting your local machine or a server on the other side of the world. Uses a transparent HTTP proxy model; no SSH or shared Docker sockets required. [Learn more →](/features/multi-node)
+Add remote Sencho instances as nodes. All dashboard operations - stack management, logs, stats - work identically whether you're targeting your local machine or a server on the other side of the world. Uses a transparent HTTP proxy model; no SSH or shared Docker sockets required. [Learn more →](/features/multi-node)
## Fleet View
@@ -21,7 +21,7 @@ Monitor your entire infrastructure from a single screen. The fleet dashboard sho
## RBAC & user management
-Create viewer accounts with read-only access to dashboards, logs, and file contents — while keeping deploy and edit permissions locked to admins. Sencho Pro supports two roles: Admin (full access) and Viewer (read-only). [Learn more →](/features/rbac)
+Create viewer accounts with read-only access to dashboards, logs, and file contents - while keeping deploy and edit permissions locked to admins. Sencho Pro supports two roles: Admin (full access) and Viewer (read-only). [Learn more →](/features/rbac)
## Atomic deployments
@@ -29,7 +29,7 @@ Pro users get automatic backup and rollback on every deployment. Before applying
## Fleet-wide backups
-Create point-in-time snapshots of every compose file and environment file across all nodes. Snapshots are stored centrally and can be browsed by node and stack. Restore individual stacks from any snapshot with optional one-click redeploy — even to remote nodes. Offline nodes are gracefully skipped with visible warnings. [Learn more →](/features/fleet-backups)
+Create point-in-time snapshots of every compose file and environment file across all nodes. Snapshots are stored centrally and can be browsed by node and stack. Restore individual stacks from any snapshot with optional one-click redeploy - even to remote nodes. Offline nodes are gracefully skipped with visible warnings. [Learn more →](/features/fleet-backups)
## Real-time logs & stats
@@ -57,11 +57,11 @@ Browse 190+ pre-configured application templates. Filter by category (Media, Aut
## Host console
-Open an interactive terminal on the host OS directly in the browser — full xterm.js emulation with color support. No SSH client required.
+Open an interactive terminal on the host OS directly in the browser - full xterm.js emulation with color support. No SSH client required.
## Webhooks
-Trigger stack actions from external CI/CD pipelines via HTTP webhooks. Create a webhook targeting a specific stack and action, then call it from GitHub Actions, GitLab CI, or any system that can send an HTTP POST. Requests are authenticated with HMAC-SHA256 signatures — no session cookies required. [Learn more →](/features/webhooks)
+Trigger stack actions from external CI/CD pipelines via HTTP webhooks. Create a webhook targeting a specific stack and action, then call it from GitHub Actions, GitLab CI, or any system that can send an HTTP POST. Requests are authenticated with HMAC-SHA256 signatures - no session cookies required. [Learn more →](/features/webhooks)
## Alerts & notifications
diff --git a/docs/features/rbac.mdx b/docs/features/rbac.mdx
index fd615cc9..e605e09e 100644
--- a/docs/features/rbac.mdx
+++ b/docs/features/rbac.mdx
@@ -1,6 +1,6 @@
---
title: RBAC & User Management
-description: Role-based access control for Sencho Pro — create admin and viewer accounts to control who can modify your stacks.
+description: Role-based access control for Sencho Pro - create admin and viewer accounts to control who can modify your stacks.
---
@@ -52,7 +52,7 @@ The stack header exposes four actions:
| **Delete** | `down` + removes files | Stops and removes containers, then deletes the stack directory. |
-- **Alerts** — configure metric-based alerting rules for this stack
-- **Check for updates** — manually trigger an image update check
+- **Alerts** - configure metric-based alerting rules for this stack
+- **Check for updates** - manually trigger an image update check
## Converting a `docker run` command
diff --git a/docs/features/webhooks.mdx b/docs/features/webhooks.mdx
index f3b3c9bb..58eab40a 100644
--- a/docs/features/webhooks.mdx
+++ b/docs/features/webhooks.mdx
@@ -7,7 +7,7 @@ description: Trigger stack actions from CI/CD pipelines via HTTP webhooks with H
Webhooks require a Sencho Pro license.
@@ -11,9 +11,9 @@ Sencho is a self-hosted Docker Compose management dashboard. It gives you a clea
## Key concepts
-- **Stacks** — a Docker Compose project living in your `COMPOSE_DIR`. Sencho treats each subdirectory as a stack.
-- **Nodes** — a Sencho instance. Your local machine is always the default node. Add remote nodes by pointing Sencho at another Sencho instance's API URL.
-- **Resources** — images, volumes, and networks that belong to your stacks (managed) or exist outside them (external/unused).
+- **Stacks** - a Docker Compose project living in your `COMPOSE_DIR`. Sencho treats each subdirectory as a stack.
+- **Nodes** - a Sencho instance. Your local machine is always the default node. Add remote nodes by pointing Sencho at another Sencho instance's API URL.
+- **Resources** - images, volumes, and networks that belong to your stacks (managed) or exist outside them (external/unused).
This secret will not be shown again. Store it securely.
- Deactivating will revert to Community features. -
-- Enter your Sencho Pro license key to unlock all features. -
-+ Deactivating will revert to Community features. +
+- Don't have a license? Get Sencho Pro -
++ Purchase a license key from our website, then activate it below. +
+