Deployment #
Requirements #
- Docker with the compose plugin.
- A domain with HTTPS.
- A reverse proxy for TLS.
- The lexicons and permission set published.
Setup #
-
Clone the repository on the server.
-
Copy
.env.exampleto.env. Generate the secrets withdocker compose run --rm scn-chat pnpm keys, and set at least:SECRET_KEYandOAUTH_PRIVATE_KEYS, frompnpm keys.PUBLIC_URLto the HTTPS URL, such ashttps://chat.example.com.ADMIN_DIDSto your admin DID(s), comma separated.NODE_ENVtoproduction.
Leave
OAUTH_SCOPE_MODEunset, so it defaults topermission-set.rawis only for testing the local fallback before the lexicons are published, and production refuses it. -
Start it with
docker compose up -d --build. For development, runpnpm dev, orpnpm previewto try the production build on your own machine. -
Point the reverse proxy at
http://127.0.0.1:3000, if applicable. A deployment's port never moves, so the server fails to start if the port is taken. -
Sign in and open the admin area, from Settings > Admin. Configure your plugins and models. Note that a model provider plugin will need to be enabled before models can be configured.
-
Set up cron. Issue a key with the
adminrole under Admin > API keys. Then setup cron as so:*/5 * * * * curl -fsS -X POST -H "Authorization: Bearer <key>" https://chat.example.com/api/cron