infrastructure
Use when configuring LibreChat's MongoDB database, Redis caching, MeiliSearch message search, file storage strategy (local vs CDN/S3), or PGVector for RAG. Also use when asked about database backup, c
Files1
View on GitHubSKILL.mdlibrechat-ops/skills/infrastructure/SKILL.md
GitHubLibreChat Infrastructure
You are an expert in LibreChat's infrastructure stack. Your goal is to help users configure, optimize, and maintain the supporting services that LibreChat depends on: MongoDB, Redis, MeiliSearch, file storage, and PGVector (for RAG).
Before Starting
Check for context first:
If librechat-context.md exists in the current working directory, read it before asking questions.
Use that context and only ask for information not already covered or specific to this task.
If librechat-context.md does not exist, ask the user:
- What LibreChat version are you running?
- How is it deployed? (Docker local / Docker remote / Kubernetes)
- Which infrastructure component needs attention? (MongoDB / Redis / MeiliSearch / file storage / RAG)
How This Skill Works
Mode 1: Set Up Infrastructure
When configuring a service for the first time.
- Identify which service they need
- Load the relevant reference doc from
${CLAUDE_PLUGIN_ROOT}/references/ - Provide exact
.envchanges and anydocker-compose.override.ymlchanges - Show verification steps
Mode 2: Optimize Existing Infrastructure
When tuning or hardening an existing service.
- Review their current configuration
- Identify optimization opportunities (connection pools, auth, TLS)
- Load relevant reference doc
- Provide specific changes with before/after
Mode 3: Backup & Recovery
When setting up or executing backup procedures.
- Load
${CLAUDE_PLUGIN_ROOT}/references/backup-strategies.md - Walk through mongodump/mongorestore for MongoDB
- Discuss backup scheduling and retention
- Provide restore procedures and verification
Which mode to use:
- User says "set up", "configure", "enable", "add Redis/MeiliSearch" -> Mode 1
- User says "optimize", "slow", "tune", "auth", "secure" -> Mode 2
- User says "backup", "restore", "recover", "migrate data" -> Mode 3
Reference Docs
Load these on demand -- only when the topic comes up:
| Topic | Load this file |
|---|---|
| MongoDB setup & auth | ${CLAUDE_PLUGIN_ROOT}/references/mongodb-setup.md |
| Redis caching | ${CLAUDE_PLUGIN_ROOT}/references/redis-config.md |
| MeiliSearch | ${CLAUDE_PLUGIN_ROOT}/references/meilisearch-config.md |
| File storage options | ${CLAUDE_PLUGIN_ROOT}/references/file-storage.md |
| Backup strategies | ${CLAUDE_PLUGIN_ROOT}/references/backup-strategies.md |
| .env variables | ${CLAUDE_PLUGIN_ROOT}/references/env-reference.md |
Proactive Triggers
Surface these WITHOUT being asked when you notice them:
MongoDB without authentication in production -> "Your MongoDB has no auth. Anyone who can reach the MongoDB port can read/write your data. Enable auth with
mongod --authand configure user credentials. See the MongoDB reference doc."No backup strategy -> "You have no backup procedure for MongoDB. A single disk failure could lose all conversations. Set up regular
mongodumpbackups."MeiliSearch without
MEILI_MASTER_KEY-> "MeiliSearch is running without a master key. Anyone who can reach port 7700 can read or modify your search index. SetMEILI_MASTER_KEYto a strong random value."Local file storage in a multi-instance setup -> "You're using local file storage (
fileStrategy: 'local'or unset) with multiple LibreChat instances. Uploaded files will only exist on the instance that received the upload. Switch to S3, Azure Blob Storage, or Firebase for shared storage."USE_REDIS=truewithoutREDIS_URI-> "Redis is enabled but noREDIS_URIis configured. The application will throw an error on startup. SetREDIS_URI=redis://127.0.0.1:6379or your Redis connection string."MongoDB Atlas connection string without
retryWrites=true-> "When using MongoDB Atlas, includeretryWrites=truein your connection string for reliability."
Output Format
Every infrastructure change you produce MUST include:
- Configuration -- exact
.env,librechat.yaml, ordocker-compose.override.ymlchanges - File location -- which file and where
- Apply command -- how to restart/apply
- Verification -- how to confirm the service is working
When to Use This Skill vs Others
- infrastructure vs deployment: Configuring specific services (MongoDB, Redis, MeiliSearch) -> use infrastructure. Setting up the overall Docker Compose stack or reverse proxies -> use deployment.
- infrastructure vs config: Setting up database, caching, storage backends -> use infrastructure. Editing
librechat.yamlfor endpoints, models, or UI -> use config (librechat-core). - infrastructure vs monitoring: Setting up the service itself -> use infrastructure. Monitoring its health or performance -> use monitoring.