Install
Installation has four steps: run the setup generator, answer its questions, run the one launch command it emits, and create your admin account. The reference rehearsal for this page, on a clean machine using only the shipped artifacts, reaches an activated license in under a minute of runtime. Budget about ten minutes total for reading and DNS.
1. Run the setup generator
With the release artifacts unpacked (the container image and the setup tool):
# interactive: answers a dozen questions, writes the install kit to ./sws-install
node scripts/onprem-setup
# or non-interactive, driven by SWS_SETUP_* environment variables
node scripts/onprem-setup --yes
The generator asks the following, in order. Every answer has a sensible default.
| Prompt | Notes |
|---|---|
| Hostname | The name your products and browsers will use. |
| Topology | all (one container; start here) or separated (hardened deployments). |
| TLS mode | byo (bring your certificate), acme (automatic issuance), or internal (configuration). |
| Account name | Shown in the console. |
| First admin email | The sign-in step 3 creates. |
| Email mode | smtp (host, port, credentials, from address) or log (emails written to the log; fine for evaluation). |
| Stripe / PayPal | Leave off for now and enable later (payments). |
| External MongoDB URI | Leave empty to use the embedded database (a reasonable default to start with). |
| PKI passphrase | Leave empty to have one generated for you; it protects your signing keys at rest (certificates and keys). |
2. What lands in sws-install/
config.json: the server configuration (file mode 0600; it holds secrets).console-config.json: the console's runtime settings.Caddyfile: TLS and routing for your chosen mode.sws.env: the PKI passphrase and role, kept out of the config proper (0600).run.sh: the one launch command. It names the containersws-licensing, mounts the two persistent volumes (data and PKI keys), and publishes the right ports.sws-licensing.container: a systemd Quadlet unit, for hosts that should restart the appliance automatically.NEXT-STEPS.txt: your install's specific to-dos, including DNS records, webhook URLs, the firewall table, the exact create-admin command, and a backup reminder.
3. Launch and create your admin
cd sws-install
# the generated one-command launch (podman or docker; 4 GB, persistent volumes,
# selective port publishing per your topology)
./run.sh
# health: the container's built-in composite healthcheck
podman inspect --format '{{.State.Health.Status}}' sws-licensing
# one-time: create (or repair) the first console administrator; prints a
# temporary password ONCE - your install kit's NEXT-STEPS.txt carries the exact
# command for your setup
podman exec -it sws-licensing node /opt/sws/server/server.js create-admin you@example.com
Sign in at your hostname with the printed one-time password. First admin and sign-in covers the credential rules and bringing your own identity provider.
4. Then, in the console
The flow from here matches the cloud service's getting started guide: license template, product, license. The one difference is that your products embed this server's root certificate, downloaded from Settings → Deployment certificates (certificates and keys). Point the SDK's endpoint at your hostname and activate.
If you are migrating an existing cloud tenant instead of starting fresh, stop here and contact support - migration is a support-assisted procedure, and the import must run before first boot.