Why this Configuration?
- True Data Sovereignty: 100% GDPR-compliant on-premises deployment. You own your configuration and data without vendor lock-in.
- Hardware Agnostic: Optimized and verified across low-power ARM64 SBCs (Raspberry Pi 5) and x86_64 hypervisors (Proxmox VE LXC & VM).
- Engine Freedom: Tested and supported under standard Docker Engine and unprivileged rootless Podman.
- Platform Verification: Tested on Proxmox LXC: docker (22.04, 2026-09-14), podman (22.04, 2026-09-14); Proxmox VM: docker (22.04, 2026-09-14), podman (22.04, 2026-09-14).
Quick Start (Standalone Docker Compose)
The snippet below is immediately ready to run in any standard Docker or Podman environment:
services:
librechat:
container_name: njorddeploy-librechat
image: "ghcr.io/danny-avila/librechat:latest"
restart: always
user: "0:0"
ports:
- "3080:3080"
environment:
- "HOST=0.0.0.0"
- "PORT=3080"
- "MONGO_URI=mongodb://njorddeploy-librechat-mongodb:27017/LibreChat"
- "JWT_SECRET=q8g+R6s5t7v9w0x1y2z3a4b5c6d7e8f9g0h1i2j3k4l5m6n7o8p="
- "JWT_REFRESH_TOKEN_SECRET=r9h+S7t6u8v0w1x2y3z4a5b6c7d8e9f0g1h2i3j4k5l6m7n8q="
- "CREDS_KEY=f34be427ebb29de8d88c107a71546019685ed8b241d8f2ed00c3f39708323511"
- "CREDS_IV=e28e9323f46fbf8dc61f6305a4ecb38b"
- "OPENAI_API_KEY=openai_api_key"
- "ANTHROPIC_API_KEY=anthropic_api_key"
- "GOOGLE_API_KEY=google_api_key"
- "AZURE_OPENAI_API_KEY=azure_openai_api_key"
- "AZURE_OPENAI_ENDPOINT=azure_openai_endpoint"
- "AZURE_OPENAI_API_VERSION=2023-12-01-preview"
- "CUSTOM_ENDPOINTS=custom_endpoints"
volumes:
- "./data/librechat/data:/app/data"
- "./data/librechat/images:/app/client/public/images"
- "./data/librechat/uploads:/app/uploads"
- "./data/librechat/logs:/app/logs"
- "./data/librechat/skill:/app/skill"
depends_on:
- librechat-mongodb
networks:
- njorddeploy_net
librechat-mongodb:
container_name: njorddeploy-librechat-mongodb
image: mongo:6.0
restart: always
user: "0:0"
volumes:
- "./data/librechat/mongodb:/data/db"
command: mongod --noauth
networks:
- njorddeploy_net
networks:
njorddeploy_net:
Start the service directly via the command line: docker compose up -d
Configuration & Environment Variables
Key configuration parameters and defaults derived from the NjordDeploy component template:
| Variable | Default Value | Description |
|---|---|---|
LIBRECHAT_WEB_PORT |
3080 |
Port for the LibreChat web interface. |
JWT_SECRET |
q8g+R6s5t7v9w0x1y2z3a4b5c6d7e8f9g0h1i2j3k4l5m6n7o8p= |
Secret key for JSON Web Token (JWT) authentication. |
JWT_REFRESH_TOKEN_SECRET |
r9h+S7t6u8v0w1x2y3z4a5b6c7d8e9f0g1h2i3j4k5l6m7n8q= |
Secret key for JSON Web Token (JWT) refresh tokens. |
CREDS_KEY |
f34be427ebb29de8d88c107a71546019685ed8b241d8f2ed00c3f39708323511 |
Key for encrypting user credentials (64 hex chars). |
CREDS_IV |
e28e9323f46fbf8dc61f6305a4ecb38b |
Initialization Vector for encrypting user credentials (32 hex chars). |
OPENAI_API_KEY |
*None* |
Your OpenAI API key for accessing OpenAI models. |
ANTHROPIC_API_KEY |
*None* |
Your Anthropic API key for accessing Claude models. |
GOOGLE_API_KEY |
*None* |
Your Google API key for accessing Google models (e.g., Gemini). |
AZURE_OPENAI_API_KEY |
*None* |
Your Azure OpenAI API key. |
AZURE_OPENAI_ENDPOINT |
*None* |
Your Azure OpenAI endpoint URL. |
AZURE_OPENAI_API_VERSION |
2023-12-01-preview |
API version for Azure OpenAI. |
CUSTOM_ENDPOINTS |
*None* |
JSON string for custom OpenAI-compatible API endpoints. Example: '[{"baseURL":"http://localhost:11434/v1","name":"Ollama","apiKey":""}]' |
Ecosystem & Enterprise Integration
- Reverse Proxy Ingress Ready: Pre-configured for Caddy, Traefik, or Nginx Proxy Manager with automatic Let's Encrypt TLS certificates.
- Zero-Trust Mesh VPN: Seamless integration with WireGuard or Tailscale/Headscale mesh networks for secure remote administration.
- Transactional State Backups: Ready for point-in-time database dumps and container-safe persistent volume freezing.
Effortless Management with NjordDeploy
Deploy, monitor, and update this service with a single click on your own hardware via the NjordDeploy Configurator.