Skip to content

Server Configuration

Most production settings are managed in the interface. Open the user menu, select Settings, then expand Server.

Server settings map

SectionPurpose
GeneralServer identity, licence/update information, export and client connection details
CredentialsAgent-provider OAuth profiles and API keys
UsersAccounts, roles, seats, and access
Mobile notificationsPush-notification provider configuration
AuthenticationPassword login and OIDC SSO
BoardsServer-wide board defaults and templates
API KeysScoped automation credentials and permissions
SkillsSkills installed server-wide
IntegrationsExternal issue trackers and custom providers
LabelsReusable server labels
BackupManual/scheduled backups, provider, and retention
Log ExportExternal log sink and output format
EncryptionKey source and safe key rotation

Organization and project settings are separate scopes. A server administrator does not need to put every project-specific label, skill, or credential in the Server section.

Network and ports

Native release builds listen on 0.0.0.0. The preferred port is 50505; if unavailable, the server tries 5050650514, then an OS-assigned port. The actual port is written to port.txt.

Docker always exposes container port 50505; the host mapping is your choice. For remote access, use HTTPS through a reverse proxy and forward WebSocket upgrades.

The unauthenticated health endpoint is:

bash
curl http://localhost:50505/api/health

Persistent data

Native data locations are listed in Server Binary. Docker persists the same application directory through the /data volume. The important contents include:

  • data/stib.db — SQLite database in WAL mode;
  • attachments and generated exports;
  • backups and logs;
  • update staging files and server identity;
  • port.txt — last successfully bound port.

Never edit a migration already applied to a database. Normal releases run pending migrations automatically.

Encryption

Credential and integration secrets are encrypted. Key resolution order is:

  1. valid STIB_ENCRYPTION_KEY environment value;
  2. key stored in the database;
  3. a newly generated key, persisted on first launch.

When an environment key is active, the UI does not replace it. Rotate it through deployment configuration and the supported rotation flow; never simply start the existing database with a different key.

Common environment variables

VariableMeaning
RUST_LOGRust log filter, for example info or stib_server=debug
STIB_ENCRYPTION_KEYExternal 32-byte key encoded as 64 hexadecimal characters
STIB_SERVER_ORIGINPublic origin used to construct OIDC callbacks
STIB_RELEASE_CHANNELstable or beta
STIB_UPDATE_URLOverride the signed update-manifest endpoint
STIB_WEBSITE_API_URLOverride the stib.ai account/licence API
STIB_AGENT_IMAGEAgent sandbox image used by a Docker-capable server
STIB_API_URLPublic server-origin fallback, and API target for human or external CLI processes; it is not reused as an agent's private route
STIB_AGENT_API_URLExplicit private server origin for agent runtimes; direct agents default to loopback and Docker sandboxes to host.docker.internal
STIB_ALLOW_REMOTE_CALLBACKAllow agent callbacks from trusted RFC1918 addresses; off by default
STIB_ALLOW_PRIVATE_URLSAllow integration URLs resolving to private networks; off by default

The two ALLOW_… switches broaden network reach. Enable them only for a deliberate, trusted deployment design.

Backups

Use Settings → Server → Backup to create a consistent backup and configure scheduling/retention. Prefer that flow to copying an actively written SQLite file. Verify that backups are stored outside the failure domain you are protecting against.

An export is useful for portability, but it is not the same as a complete operational backup. Test restoration before relying on a backup policy.

Logs

Server logs are stored below the application data directory. Log Export can forward structured records to a configured destination. The desktop app has a separate native-log export for client-side diagnostics.

Do not include access tokens, API keys, credential payloads, or full private prompts in a support bundle unless the recipient and channel are trusted.

Next: Authentication, Integrations, and Settings.