Skip to content

Configuration

Stib is designed to work out of the box with sensible defaults — no configuration is required for basic usage. This page documents the available options for users who want to customize their installation, as well as the update procedure for each installation method.

Server Networking

The Stib server listens on port 50505, bound to all network interfaces (0.0.0.0). The port is not configurable. The maximum request body size is 6 MB.

SettingValue
Port50505 (fixed)
Bind address0.0.0.0 (all interfaces)
Max body size6 MB

Environment Variables

VariableDescriptionDefaultRequired
STIB_ENCRYPTION_KEYCredential encryption key (AES-256-GCM, hex-encoded 32 bytes)Only if using encrypted credentials
STIB_SERVER_ORIGINBase URL for OIDC callback redirects (e.g., https://stib.example.com)http://localhost:50505Only for OIDC SSO
STIB_UPDATE_URLUpdate checker endpoint URL— (disabled)Optional
RUST_LOGLogging level (info, debug, warn, error)infoOptional

To generate a valid encryption key:

bash
openssl rand -hex 32

Data Directory

Stib stores all its data in a data/ directory relative to the working directory (or /app/data inside Docker containers). The directory is created automatically on first run.

data/
├── stib.db          # SQLite database (auto-created, WAL mode)
├── logs/            # Rolling daily logs (7 files max)
│   └── stib-YYYY-MM-DD.log
├── backups/         # Database backups
└── attachments/     # Card attachments (per card_id subdirectory)

Database

Stib uses a SQLite database stored at data/stib.db. It is created automatically on first run with WAL journal mode enabled for better performance. Database migrations run automatically on every startup — no manual setup is needed.

Logging

Log files are stored in data/logs/ with daily rotation and a maximum of 7 files retained (6 previous days + current day). The default logging level is info, configurable via the RUST_LOG environment variable.

You can view logs in real time from the web UI at the /logs page (accessible when authentication is disabled, or to authenticated users).

INFO

Stib also supports structured log export in CLEF, GELF, and JSON Lines formats, configurable via the web UI settings. This is useful for integration with log aggregation tools.

Authentication

Authentication is disabled by default — no login is required out of the box. You can enable it from the web UI under Settings → Authentication.

When enabled, Stib uses JWT tokens (HS256, 24-hour expiry). OIDC SSO is also available and requires the STIB_SERVER_ORIGIN environment variable for callback URL construction.

TIP

For detailed authentication setup including OIDC provider configuration, see Advanced Configuration.

Backups

Database backups are configurable via the web UI under Settings → Backups. You can set the backup interval (1h, 6h, 12h, or 24h) and the number of backup files to retain. Backups are stored in data/backups/.

TIP

For detailed backup configuration options, see Credentials, Scripts & Backups.

Updating Stib

sh
docker pull enixion/stib-server:latest
docker stop stib && docker rm stib
# Recreate the container with the same options (adjust name and volume to match your setup)
docker run -d \
  --name stib \
  --restart unless-stopped \
  -p 50505:50505 \
  -v stib-data:/app/data \
  enixion/stib-server:latest
sh
docker compose pull
docker compose up -d
sh
# 1. Download the new binary or installer for your platform
# 2. Stop the running server (Ctrl+C, systemctl stop, or launchctl bootout)
# 3. Replace the binary (or run the new installer)
# 4. Start the server again — migrations run automatically
sh
# Download the latest version from the download page
# and install it over the existing version.

TIP

Your data is safe — the SQLite database and all files in data/ are preserved across updates. For extra safety, back up data/stib.db before updating.

Update Checker

If you set the STIB_UPDATE_URL environment variable, Stib will automatically check for updates:

  • First check: 30 seconds after startup
  • Subsequent checks: Every 24 hours
  • Uses semantic versioning to compare versions
  • Shows a notification in the system tray when an update is available (if the system tray is active)

If STIB_UPDATE_URL is not set, update checking is completely disabled.

Health Check

Use the health endpoint to verify that Stib is running:

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

Expected response:

json
{"data":{"status":"ok"}}

This endpoint requires no authentication and is useful for monitoring tools and load balancers.

Next Steps