mirror of
https://github.com/Studio-Saelix/sencho.git
synced 2026-07-26 20:00:08 +00:00
d6b744e8e6
Fresh installs land on the Community tier. The 14-day Admiral trial is now issued by Lemon Squeezy via their hosted checkout: the user enters email + card, receives a license key by email, and pastes it into the existing Settings > License activation field. Backend changes: - LicenseService.initialize() no longer auto-creates a license_status='trial' row on first boot. It now only ensures an instance_id exists and starts periodic validation. - Drop the TRIAL_DURATION_DAYS constant. - Drop the status='trial' early-return in getVariant() so LS-issued trials resolve through the normal variant metadata path (variant_name / product_name). - Trial branches in getTier() and getLicenseInfo() are retained for future work that may detect trial state from Lemon Squeezy metadata; they are currently unreachable via the Sencho code paths. Frontend changes: - Settings > License surfaces a new "Try Admiral free for 14 days" CTA block with Start monthly trial and Start annual trial buttons that open Lemon Squeezy hosted checkout. The CTA is visible only when the user has no paid access and is not already on a trial. - Reserve the Admiral upgrade card for the Skipper-active upgrade path so unlicensed users see one Admiral path (the trial CTA) instead of two. - Pull the inline Lemon Squeezy checkout URLs into named module constants so the Skipper, Admiral monthly, and Admiral annual endpoints are defined in one place. Test changes: - license-service.test.ts covers the no-auto-trial startup path and updates the trial-variant test to reflect the metadata-driven resolution. - afterAll in the initialize() describe block calls destroy() so the 72-hour validation interval does not leak into sibling test files. Docs: - Rewrite the Free trial section in features/licensing.mdx to document the new LS checkout flow (email + card required, auto-converts on day 14 unless cancelled). - Add an operations/troubleshooting entry for cases where the trial license key email does not arrive.
125 lines
6.1 KiB
Plaintext
125 lines
6.1 KiB
Plaintext
---
|
|
title: Licensing & Billing
|
|
description: How Sencho licensing works, including trials, activation, and subscription management.
|
|
---
|
|
|
|
Sencho uses an open-core model. The **Community** tier is free forever with unlimited nodes. Paid tiers unlock advanced features: **Skipper** for solo operators and **Admiral** for teams.
|
|
|
|
<Tip>
|
|
*Our tier names are inspired by the meaning of Sencho (船長), because you're the captain of your container fleet.*
|
|
</Tip>
|
|
|
|
## Plans
|
|
|
|
| Tier | Price | Accounts |
|
|
|------|-------|----------|
|
|
| **Community** | Free | 1 admin |
|
|
| **Skipper** | $5.99/month billed annually, $7.99/month, or $249 lifetime | 1 admin + 3 viewers |
|
|
| **Admiral** | $41.99/month billed annually, $49.99/month, or $1,499 lifetime | Unlimited |
|
|
|
|
Lifetime pricing is an early-adopter offer available for a limited time only.
|
|
|
|
### Feature breakdown
|
|
|
|
**Community** includes:
|
|
- Unlimited nodes, compose editor, global logs, app store, alerts, and more
|
|
- Two-factor authentication (TOTP)
|
|
- Custom OIDC single sign-on (works with Authelia, Keycloak, Authentik, Zitadel, Pocket ID, or any spec-compliant OIDC identity provider)
|
|
|
|
**Skipper** includes everything in Community, plus:
|
|
- Fleet View with drill-down
|
|
- Webhooks and stack labels
|
|
- Atomic deployments and fleet-wide backups
|
|
- Auto-update policies
|
|
- One-click Google, GitHub, and Okta SSO presets
|
|
|
|
**Admiral** includes everything in Skipper, plus:
|
|
- Unlimited admin and viewer accounts
|
|
- Scoped RBAC (deployer, node-admin, auditor roles)
|
|
- LDAP / Active Directory authentication
|
|
- Audit log and host console
|
|
- API tokens and private registries
|
|
- Notification routing
|
|
- Scheduled operations
|
|
|
|
<Tip>
|
|
**SSO is available on every tier.** Community users can integrate any OIDC-compliant identity provider through the Custom OIDC option. Paid tiers add turnkey presets (Google, GitHub, Okta) and LDAP / Active Directory.
|
|
</Tip>
|
|
|
|
## Free trial
|
|
|
|
Sencho offers a **14-day Admiral trial** on monthly and annual Admiral plans so you can evaluate the flagship features (Host Console, Scheduled Operations, LDAP / Active Directory, audit log, unlimited accounts) with your real infrastructure before committing.
|
|
|
|
To start a trial:
|
|
|
|
1. In the Sencho dashboard, go to **Settings > License**, or visit the [pricing page](https://sencho.io/pricing).
|
|
2. Click **Start monthly trial** or **Start annual trial**.
|
|
3. Complete the Lemon Squeezy checkout. A valid card is required for verification; you are not charged until the trial ends.
|
|
4. Lemon Squeezy will email your license key within a few minutes.
|
|
5. Paste the key into the **Have a license key?** field on the License page and click **Activate**.
|
|
|
|
When your trial ends, Lemon Squeezy automatically charges the card you provided and your plan continues as a paid Admiral subscription. To avoid being charged, cancel from the **Manage Subscription** button (or from the Lemon Squeezy receipt email) any time before day 14.
|
|
|
|
<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>
|
|
|
|
## Upgrading your plan
|
|
|
|
You can upgrade directly from **Settings > License** in your Sencho dashboard. The upgrade cards shown depend on your current tier:
|
|
|
|
- **Community users** see both **Skipper** and **Admiral** options with feature highlights and direct checkout links.
|
|
- **Skipper users** see an **Admiral** upgrade card for when you need unlimited accounts and team features.
|
|
- **Admiral users** are on the highest tier, so no upgrade cards are shown.
|
|
|
|
Clicking an upgrade button opens the Lemon Squeezy checkout in a new tab. After completing the purchase, you will receive a license key by email.
|
|
|
|
<Frame>
|
|
<img src="/images/licensing/license-community.png" alt="License settings showing Skipper and Admiral upgrade cards for Community users" />
|
|
</Frame>
|
|
|
|
## Activating your license
|
|
|
|
1. Go to **Settings > License** in your Sencho dashboard.
|
|
2. Paste your key into the **License Key** field at the bottom of the page.
|
|
3. Click **Activate**.
|
|
|
|
Sencho validates the key against Lemon Squeezy and unlocks your tier's 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
|
|
|
|
Once your license is active, you can manage your subscription in two ways:
|
|
|
|
- **From the License page:** Go to **Settings > License** and click **Manage Subscription**. This opens the Lemon Squeezy billing portal where you can update your payment method, view invoices, cancel, or switch plans.
|
|
- **From the profile menu:** Click your profile icon in the top bar and select **Billing** for quick access to the same portal. This option is hidden for lifetime licenses.
|
|
|
|
<Frame>
|
|
<img src="/images/licensing/license-admiral-active.png" alt="License settings showing an active Admiral subscription with Manage Subscription button" />
|
|
</Frame>
|
|
|
|
### Lifetime licenses
|
|
|
|
Lifetime licenses do not have a recurring subscription, so the **Manage Subscription** button is not shown. Instead, the license card displays **Duration: Lifetime** to confirm your license never expires. All other features (deactivation, multi-node enforcement, validation) work the same as subscription licenses.
|
|
|
|
## 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 **primary instance**. All remote nodes automatically inherit the primary'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 > 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.
|
|
|
|
Having trouble with your license? See the [Troubleshooting](/operations/troubleshooting#license-tier-shows-the-wrong-name) page for solutions to common licensing issues.
|