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 default sitebin:latest image. Fully open, no accounts, no feature gates.
  • Enterprise — the ee/ tree, governed by the Elastic License 2.0. Compiled in only with the ee build tag (go build -tags ee, image sitebin: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

VariablePurpose
SITEBIN_TIERS / SITEBIN_TIERS_FILETier definitions (inline JSON or mounted file).
SITEBIN_DEFAULT_TIERTier new/free accounts start on (required in tiers mode).
SITEBIN_ANON_TIERTier for anonymous creation (empty = require an account).
SITEBIN_TIER_SELF_SELECTAllow users to switch among free tiers.
SITEBIN_ALLOW_ANON_CREATEIn accounts mode, still allow anonymous sites.
SITEBIN_OAUTH_GOOGLE_CLIENT_ID / _SECRETGoogle OIDC login.
SITEBIN_OAUTH_MICROSOFT_CLIENT_ID / _SECRET / _TENANTMicrosoft OIDC (_TENANT default common).
SITEBIN_SMTP_HOST / _PORT / _USER / _PASS / _FROM / _TLSEmail (verification, password reset). Port default 587; _TLS=true for implicit TLS (465).
SITEBIN_STRIPE_SECRET_KEY / _WEBHOOK_SECRETStripe billing. Webhook: POST /account/billing/stripe/webhook.
SITEBIN_PADDLE_API_KEY / _WEBHOOK_SECRET / _SANDBOXPaddle billing. Webhook: POST /account/billing/paddle/webhook.
SITEBIN_LICENSE_KEYOptional 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.

License keys are Ed25519-verified offline — the instance never phones home. License terms and purchasing are on the Enterprise page.