---
title: Licensing & Billing
sidebarTitle: Licensing
description: How Sencho licensing works, including trials, activation, and subscription management.
---

Sencho is [AGPLv3](https://github.com/studio-saelix/sencho/blob/main/LICENSE) open source. **Community** is the complete self-hosted Compose-first control plane, free forever with unlimited nodes. **Admiral** is Studio Saelix business assurance (priority support, managed continuity, governance depth, and Hardened Build) delivered as a paid plan.

<Tip>
  *Our tier names are inspired by the meaning of Sencho (船長), because you're the captain of your container fleet.*
</Tip>

## Plans

| Tier | Price | Seats |
|------|-------|-------|
| **Community** | Free forever | Unlimited |
| **Admiral** | Business assurance, arranged with Studio Saelix | Unlimited |

Admiral is arranged directly with Studio Saelix rather than a self-serve checkout. See [the pricing page](https://sencho.io/pricing) for the current feature comparison, or email **[hello@sencho.io](mailto:hello@sencho.io)** to start a conversation.

### Feature breakdown

**Community** is the complete AGPLv3 self-hosted control plane. It includes:

- Unlimited nodes, the Monaco compose editor, the full stack file explorer (browse, view, edit, upload, download, rename, chmod, delete; admin role for writes), and the App Store with 199+ one-click templates
- Real-time container stats, global logs, the interactive network topology graph (Hub, Grouped, and Free layouts), node labels, and stack labels
- Git sources for compose stacks
- Multi-node management in both Proxy and Pilot Agent modes
- Blueprints: fleet-wide compose templates with drift detection (Observe, Suggest, and Enforce), reconciliation, and pin-to-node placement
- Fleet Federation: cordon and uncordon nodes and pin blueprints to specific hosts
- Fleet View with search, sort, filter, and node-card drill-down
- Manual and scheduled fleet snapshots (create, browse, restore, delete) and Remote OTA node updates (per-node and **Update all**)
- Actions tab (stop stacks fleet-wide by label, assign a label to stacks across nodes, prune Docker resources fleet-wide; admin role required), plus fleet-wide bulk Sencho restart
- Bulk actions on a label (deploy, stop, or restart every stack tagged with it)
- Atomic deployments with automatic rollback, and one-click rollback to the previous deployment
- Auto-update policies for stack images and auto-heal policies for failed containers
- Scheduled operations across the full action catalog (lifecycle, updates, scans, snapshots, prune)
- Webhooks (incoming, to trigger deploys from CI/CD) and notification routing (per-stack and per-category rules to Discord, Slack, Apprise, or any webhook)
- Custom S3-compatible backup target (bring your own AWS S3, Cloudflare R2, MinIO, Backblaze B2, or Wasabi bucket)
- Vulnerability scanning: install, update, uninstall, and auto-update the managed Trivy binary, on-demand scans for vulnerabilities, secrets, and misconfigurations, scan comparison, CVE suppressions, and single-scan SBOM export (SPDX, CycloneDX)
- Private registry credentials for Docker Hub, GitHub Container Registry (GHCR), and custom or self-hosted registries (admin role required)
- A 14-day recent-activity audit log with Stream and Table views and filtering
- Alert rules with Discord, Slack, Apprise, and webhook targets
- API tokens for CI/CD pipelines and scripts (admin role required)
- Unlimited accounts with the Admin and Viewer roles
- Two-factor authentication (TOTP plus backup codes)
- Single sign-on with Custom OIDC (Authelia, Keycloak, Authentik, Zitadel, Pocket ID, or any spec-compliant OIDC provider) and preset providers for Google, GitHub, and Okta

**Admiral** is the official business assurance plan from Studio Saelix. It includes everything in Community, plus:

- **Hardened Build:** an Admiral image channel with published supply-chain assurance artifacts, switched from **Settings → Admiral Account**; see [Switching to Hardened Build](#switching-to-hardened-build) below
- **Managed continuity:** Recovery Vault (a managed, off-site snapshot allowance)
- **Assurance and support:** priority email support and Studio Saelix-backed continuity for production fleets
- **Governance:** advanced RBAC roles (Deployer, Node Admin, Auditor), scoped permissions per stack or node, and audit log export (CSV, JSON), anomaly detection, and configurable retention beyond the recent window
- **Directory integration:** LDAP / Active Directory authentication
- **Current plan availability:** some product surfaces (including AWS ECR credentials and Fleet Sync policy replication) still require an Admiral plan today. That access rule is temporary availability, not the reason Admiral exists. Other operator surfaces may be limited-availability on a given instance and are documented on their own feature pages when enabled.

**Planned assurance services** (not available today; no delivery date committed): Release Safety Channel, Production Assurance Reports, and Fleet Beacon.

## Getting an Admiral license

Admiral is arranged directly with Studio Saelix rather than through a self-serve checkout. Email **[hello@sencho.io](mailto:hello@sencho.io)**, or click **Get in touch** on [the pricing page](https://sencho.io/pricing), to talk through pricing and a trial period for your fleet. However you receive it, your license key arrives by email and activates the same way, described next in [Activating your license](#activating-your-license).

A trial license activates and behaves exactly like a full Admiral license: every Admiral feature is unlocked immediately, and the only difference is the countdown shown in [The Plan section](#the-plan-section) below. What happens when the trial ends is part of your agreement with Studio Saelix; check your activation email or ask your sales contact.

<Tip>
  Fresh installs land on the **Community** tier until you activate a license key. All Community features (unlimited nodes, compose editor, global logs, alerts, Custom OIDC, and more) are available immediately.
</Tip>

## Activating your license

Open **Settings → Admiral Account** in the Sencho dashboard. When the license is not active, the **Activate** section sits below the Plan card:

<Frame>
  <img src="/images/licensing/license-activate-section.png" alt="The Activate section of the Admiral Account page on a Community-tier instance, with a License key input field and an Activate button on the right" />
</Frame>

1. Paste your key into the **License key** field.
2. Click **Activate**.

Sencho validates the key and activates your plan. If activation fails, the toast surfaces the verbatim error; common causes are an invalid key, a typo, or an activation limit reached on a previous instance.

## The Plan section

**Settings → Admiral Account** opens on the **Plan** section. The page masthead exposes stat pills that vary by license state, and the section below lists your plan details and current image channel.

<Frame>
  <img src="/images/licensing/license-admiral-active.png" alt="Admiral Account page showing an active lifetime Sencho Admiral license, with Plan, Recovery Vault, Hardened Build, Current image, and Channel rows, plus Customer, Product, and masked License key fields and a Deactivate button" />
</Frame>

The masthead pills:

| Pill | Meaning |
|------|---------|
| **SCOPE** | Always `global`: a license applies to the whole control plane, not a single node. |
| **PLAN** | The current tier: `community` or `admiral`. Trial licenses show `admiral`. |
| **RENEWS** | Shown for an active, non-lifetime subscription with a renewal date. |
| **DURATION** | Shown as `lifetime` in place of RENEWS for a legacy license with no expiry. |
| **TRIAL** | `Xd left` while a trial is active. |
| **STATUS** | `expired` for an expired license. |

Community and disabled licenses show only the SCOPE and PLAN pills.

The **Plan** card lists:

- **Tier name** (`Sencho Community` or `Sencho Admiral`) with a status line, such as "Community plan. Full AGPLv3 self-hosted control plane.", "Active license on this control plane.", "Trial: X days remaining.", "Your Admiral license has expired...", or "Your license has been disabled...".
- **License** (Community only): a link to view the AGPLv3 source on GitHub.
- **Recovery Vault** (Admiral only): confirms the entitlement is included in your subscription.
- **Hardened Build** (Admiral only): a **Switch to Hardened** button; see [Switching to Hardened Build](#switching-to-hardened-build) below.
- **Current image** and **Channel**: the image reference and channel (`Community` or `Hardened`) this control plane is currently running.
- **Customer**, **Product**, and **License key** (active licenses only): purchase metadata and your key masked to its last four characters (`****-****-****-XXXX`). The full key is never re-displayed after activation.

## Switching to Hardened Build

Hardened Build is a separate, entitlement-gated image channel available to Admiral instances: a Studio Saelix-published image with supply-chain assurance artifacts, distinct from the default Community image. Access is checked live against Studio Saelix's assurance service every time you use it, not just against your Admiral tier, so an Admiral license alone does not guarantee Hardened Build is enabled for your account.

To switch:

1. Open **Settings → Admiral Account** from an interactive admin session. API tokens cannot manage image channels.
2. Click **Switch to Hardened** in the Plan card.
3. Sencho checks your entitlement and registry access, then opens a review dialog listing the **current** image, the **target** Hardened image, your **registry** access status, the **compose path** that will be edited, and the **pin kind** (tag or digest). If the entitlement check fails, you'll see "Hardened image access is unavailable"; contact Studio Saelix.
4. Confirm the switch. Sencho pulls the Hardened image using credentials from [Registries](/features/private-registries), rewrites your compose file, and recreates the service. This restarts Sencho.

Back up first (a fleet snapshot or a copy of your compose file) since this rewrites your compose file and restarts the control plane. If the switch fails partway through, the Plan card shows an **Image operation** field with the failure reason and an **Acknowledge failure** button, which clears the failed state so you can retry.

<Note>
  Once a node is on the Hardened channel, only an interactive admin session on that node can pull further Hardened updates. Fleet's remote **Update all** and per-node **Update** actions cannot update a Hardened node from elsewhere in the fleet; update it directly on that node's own dashboard instead.
</Note>

## Managing your subscription

For an active, non-lifetime subscription, the Plan section's action row exposes **Manage subscription** alongside **Deactivate**. **Manage subscription** opens the Lemon Squeezy billing portal in a new tab, where you can update your payment method, view invoices, cancel, or switch plans.

The same portal is reachable from the profile menu in the top-right corner of the app:

<Frame>
  <img src="/images/licensing/profile-menu.png" alt="Profile dropdown popover showing the avatar initials, an Admin role badge, and an Admiral tier badge, followed by Settings, Documentation, and Open New Issue links and a Log Out button" />
</Frame>

Click your initials in the top-right corner to open the popover. For an active, non-lifetime subscription, a **Billing** row appears between **Settings** and **Documentation** that opens the same portal as **Manage subscription**.

Legacy lifetime licenses show only **Deactivate** in the Plan card, no **Manage subscription** button, and no **Billing** row in the profile menu, since there is no recurring subscription for Lemon Squeezy to manage.

## License validation

Active licenses are re-validated every **72 hours**. If your instance goes offline, there is a **30-day grace period** before it degrades to the Community tier.

## License states

The Admiral Account page renders differently depending on the license status:

| Status | Plan section | Activate section | Pricing section |
|--------|--------------|------------------|-----------------|
| **Community** | `Sencho Community` with "Community plan. Full AGPLv3 self-hosted control plane." | Visible | Visible |
| **Trial** | `Sencho Admiral (Trial)` with a countdown chip | Visible (so a full key can replace the trial) | Hidden |
| **Active subscription** | Tier name with Customer, Product, License key, **Manage subscription**, and **Deactivate** | Hidden | Hidden |
| **Active, lifetime** | Same as an active subscription, but no **Manage subscription** button since there's no subscription to manage | Hidden | Hidden |
| **Expired** | `Sencho Community` with "Your Admiral license has expired. Renew to restore Admiral assurance (priority support, Recovery Vault, Hardened Build, and governance)." and a destructive **Status: Expired** field | Visible | Visible |
| **Disabled** | `Sencho Community` with "Your license has been disabled. Contact support for assistance." | Visible | Visible |

The **Recovery Vault** and **Hardened Build** rows in the Plan card only appear once a license resolves to Admiral (active, trial, or lifetime); Community, expired, and disabled states never show them.

The **Pricing** section, when visible, holds a single **See pricing** button that opens [the pricing page](https://sencho.io/pricing) in a new tab.

<Frame>
  <img src="/images/licensing/license-community.png" alt="Admiral Account page on a Community-tier instance, with the masthead showing SCOPE global and PLAN community, the Plan section reading 'Sencho Community · Community plan. Full AGPLv3 self-hosted control plane.' with a View source link, the Activate section with the License key input, and the Pricing section with the See pricing button" />
</Frame>

## Multi-node license enforcement

If you manage multiple servers through Sencho's [multi-node feature](/features/multi-node), you only need a license on your **control instance**. All remote nodes automatically inherit the control instance's license tier for proxied requests. No per-node activation is required.

For details on how this works, see [License enforcement across nodes](/features/multi-node#license-enforcement-across-nodes).

## Deactivating a license

To transfer your license to a different instance:

1. Go to **Settings → Admiral Account**.
2. Click **Deactivate** in the Plan section.
3. On your new instance, paste the same license key into **License key** and click **Activate**.

Deactivation reverts the current instance to the Community tier immediately.

Having trouble with your license? See the [Troubleshooting](/operations/troubleshooting#license-tier-shows-the-wrong-name) page for solutions to common licensing issues.
