Enterprise setup
Sitebin is open-core: the community edition is complete on its own, and the enterprise edition adds accounts, tiers & quotas, OAuth login, SMTP, and Stripe/Paddle billing on top — all configured at container startup, like everything else.
Editions
- Community (default) — MIT licensed, built with
go build/ the defaultsitebin:latestimage. Fully open, no accounts, no feature gates. - Enterprise — the
ee/tree, governed by the Elastic License 2.0. Compiled in only with theeebuild tag (go build -tags ee, imagesitebin:latest-ee).
The ee/ source is published in the repository —
source-available, so you can read and audit every line before you buy.
Both editions build from the same repo, but the community
sitebin:latest image contains none of the ee/
code: it is excluded at compile time, so the community binary stays pure
MIT.
Account modes
SITEBIN_ACCOUNT_MODE selects how the instance handles
users (default: open):
open— no accounts; anonymous creation, exactly like the community edition.accounts— users log in to create sites.tiers— accounts plus tiered quotas (and optionally paid plans).
Enterprise environment variables
| Variable | Purpose |
|---|---|
SITEBIN_TIERS / SITEBIN_TIERS_FILE | Tier definitions (inline JSON or mounted file). |
SITEBIN_DEFAULT_TIER | Tier new/free accounts start on (required in tiers mode). |
SITEBIN_ANON_TIER | Tier for anonymous creation (empty = require an account). |
SITEBIN_TIER_SELF_SELECT | Allow users to switch among free tiers. |
SITEBIN_ALLOW_ANON_CREATE | In accounts mode, still allow anonymous sites. |
SITEBIN_OAUTH_GOOGLE_CLIENT_ID / _SECRET | Google OIDC login. |
SITEBIN_OAUTH_MICROSOFT_CLIENT_ID / _SECRET / _TENANT | Microsoft OIDC (_TENANT default common). |
SITEBIN_SMTP_HOST / _PORT / _USER / _PASS / _FROM / _TLS | Email (verification, password reset). Port default 587; _TLS=true for implicit TLS (465). |
SITEBIN_STRIPE_SECRET_KEY / _WEBHOOK_SECRET | Stripe billing. Webhook: POST /account/billing/stripe/webhook. |
SITEBIN_PADDLE_API_KEY / _WEBHOOK_SECRET / _SANDBOX | Paddle billing. Webhook: POST /account/billing/paddle/webhook. |
SITEBIN_LICENSE_KEY | Optional Ed25519 license key; if set it must be valid. |
Tiers
Tiers are defined as JSON, either inline in SITEBIN_TIERS
or in a file mounted at SITEBIN_TIERS_FILE:
[
{
"id": "free",
"max_site_bytes": 104857600,
"max_files": 1000,
"max_sites": 5,
"webdav": true,
"custom_domains": 0,
"max_expiry_days": 30,
"price": null
},
{
"id": "pro",
"max_site_bytes": 1073741824,
"max_files": 10000,
"max_sites": 100,
"webdav": true,
"custom_domains": 5,
"max_expiry_days": 0,
"price": { "stripe": "price_123", "paddle": "pri_456", "display": "€9/mo" }
}
]
A tier's price maps it to provider price IDs — a tier with
a price becomes a paid plan the dashboard sells via
checkout. Point your provider's webhooks at
POST /account/billing/stripe/webhook and
POST /account/billing/paddle/webhook.
The account dashboard
The dashboard lives at /account on the main domain. Sites
created while signed in are owned by the account and still work over the
API with their edit password.