SAGE3 Server Update
Date: 08/16/2026 (updating to server v1.6)
Updating from a 1.1 or 1.2 server installation
In a SAGE 3-1.x folder, you should have:
- GO: start shell script (starts docker compose)
- STOP: stop shell script (stops docker compose)
- README.md: text file
- Docker-compose.yml: the docker compose description file that contains all the SAGE3 services
- Configurations: folder containing data files for each service
Before any file updates, run the ‘STOP’ script to stop the server deployment.
Download a new server installation file from the Github repository:
- Newest package (permanent links): SAGE3-amd64.tgz / SAGE3-arm64.tgz
- All versions: https://github.com/SAGE-3/next/releases
Installation documentation: https://sage-3.github.io/docs/Server-Deployment
Updating to v1.6
Version 1.6 changes more than the docker images. After extracting the new package (SAGE3-1.6-amd64.tgz or SAGE3-1.6-arm64.tgz — note the new file names), go through these steps in addition to the usual procedure below:
-
Copy the new
docker-compose.yml(required). Port exposure changed: only Traefik publishes a port (443) now — redis, chromadb, seer, jupyter, kernelserver, and fluentd no longer bind host ports and communicate over the internal Docker network only. If you had host-side tooling hittinglocalhost:6379,localhost:9999, etc., usedocker compose execinstead (e.g.docker compose exec seer curl localhost:9999/status). -
Copy the new
configurations/traefik/traefik.yml(required). Traefik is now configured withexposedByDefault: false, so only the labeled SAGE3 services are routed. If this same Traefik instance routes other containers on your host, they now need atraefik.enable=truelabel. -
Migrate the AI configuration in
sage3-prod.hjson(required for AI features). The oldopenai/llama/azureservice blocks are gone, replaced by a single capability-basedmodelsregistry (providers → models → capabilities, plus sharedembed/rerank/pdf2mdservices and adefault_provider). The server starts without it, but all AI features stay disabled until you migrate. Start from the new file's example block and see the AI Configuration section of the deployment guide. Notes:- Any OpenAI-compatible endpoint works (Azure, OpenAI, LiteLLM, vLLM, Ollama, ...).
- The
pdf2md(olmOCR) URL must include the/v1path. - If you change embedding models, delete
configurations/chroma/dataso the vector store is rebuilt — PDFs re-index on next use.
-
New optional login strategies: Keycloak (or any OpenID Connect provider) via
keycloakConfig, and LDAP / Active Directory vialdapConfig. Both are documented in the newsage3-prod.hjsonand in the Authentication section of the deployment guide. -
Check your
.envagainst the new.env.template: it now includesCHROMA_SERVER_AUTHN_CREDENTIALS/CHROMA_CLIENT_AUTH_CREDENTIALS(change the defaults) and the replica counts.
Docker
- Copy the new ‘docker-compose.yml’ file from the new folder into your installation directory.
- Download the new docker images:
- `docker compose pull`
- Might take a few minutes to download the new images
- If you want to save space, you can download the old images, but initially leave them. (`docker images` to get a list of installed images).
- `docker compose pull`
- For reference, SAGE3 is composed of
- `traefik`: reverse proxy (the only published port, 443)
- `redis-server`: in-memory database
- `node-server`: web server
- `yjs-server` and `files-server`: collaboration and file services
- `fluentd-server`: logging server
- `kernelserver`: jupyter kernel management
- `jupyter`: jupyter server
- `chromadb`: vector database for AI services
- `seer`: Python backend for AI services
- Check your `.env` file, but it should not require an update:
- SAGE3_SERVER= [full name of your server]
- ENVIRONMENT=production
- TOKEN= [JWT token generated according to the documentation]
- Might need a renewal after a year
Configuration
Each service has a folder inside the ‘configuration’ directory.
`fluentd`
- Following the documentation, the file `conf/fluent.conf` is a copy of `conf/fluent-prod.conf`
- Copy the new `conf/fluent.conf` (reduced logging).
`jupyter`
- Jupyter is started by the script `start.sh` in `conf` sub-folder
- Copy the new `conf/start.sh` script
`node`
- The configuration of SAGE3 web server is in `node/sage3-prod.hjson`
- Copy the new `node/sage3-prod.hjson` file
- Edit the file and update the fields
- serverName: string describing your server
- SSL certificate: make sure your HTTPS certificate is up to date
- "certificateFile": "XXX-server.crt",
- "certificateKeyFile": "XXX-server.key"
- Stored in the `keys` sub folder
- Services:
- Twilio: screen sharing key (copy from old configuration)
- Openai: API key, optional
- Authentication
- Auth services, copy the values from old configuration
- Google, CILogin, …
- Namespace
- Copy the key from old configuration
- Feedback URL
"feedback": { "url": "http://sage3-server-status.cis230038.projects.jetstream-cloud.org:3000/feedback" },
- Services:
- Edit the file and update the fields
…
"services": {
…
// AI models: capability-based registry (v1.6+),
// see "Updating to v1.6" above and the deployment guide
"models": {
"providers": { … },
"embed": { … },
"rerank": { … },
"pdf2md": { … },
"settings": { "default_provider": "…" }
},
…
}
…
"features": {
"plugins": true,
"apps": ["Chat", "CodeEditor", "MapGL", "Notepad", "SageCell", "Stickie", "Screenshare", "Webview", "Poll", "TLDraw", "Calculator", "Hawaii Mesonet", "JupyterLab"],
},
…
- Your assets (images, PDF, movies, …) are in the `assets` sub folder.
- Files to save if you want to backup your server.
- Your plugins are in the `plugins` sub folder.
- Files to save if you want to backup your server.
`redis`
Configuration and data of SAGE3 database:
- The configuration is in `conf/redis.conf` file (should be identical to previous version)
- The database data (rooms, boards, users, …) is in `data/dump.rdb` file
- File to save if you want to backup your server.
`foresight`
N/A
`python`
N/A