Database Templates
The database category includes 6 production-ready database templates with persistent storage, health checks, and secure defaults.
Template List
| Template | Description | Default Port | Min RAM | Security |
|---|---|---|---|---|
| PostgreSQL | Advanced open-source relational database | 5432 | 256 MB | secure |
| MySQL | Popular open-source relational database | 3306 | 512 MB | secure |
| MariaDB | MySQL-compatible community fork | 3306 | 512 MB | secure |
| MongoDB | Document-oriented NoSQL database | 27017 | 512 MB | secure |
| Redis | In-memory key-value store and cache | 6379 | 128 MB | secure |
| Qdrant | Vector database for RAG & semantic search | 6333 | 1 GB | secure |
Common Configuration
All database templates include:
- Persistent volumes for data storage (survives container restarts)
- Health checks using database-native commands (
pg_isready,mysqladmin ping, etc.) - Auto-generated passwords — secure random passwords created at deploy time
- No exposed ports — databases are accessible only within the Docker network
Variables
| Variable | Type | Description |
|---|---|---|
SERVICE_NAME | string | Service identifier (required) |
DB_NAME | string | Initial database name |
DB_USER | string | Database admin username |
DB_PASSWORD | password | Database admin password (auto-generated if empty) |
PostgreSQL
Image: postgres:16
The default database for AI Admin Panel itself. Configured with:
- WAL archiving support
pg_stat_statementsextension enabled- Tuned
shared_buffersandwork_memfor the allocated memory - Automatic vacuum configuration
MySQL
Image: mysql:8.4
Configured with:
- InnoDB as the default storage engine
utf8mb4character set andutf8mb4_unicode_cicollation- Binary logging enabled for point-in-time recovery
- Secure default authentication (
caching_sha2_password)
MariaDB
Image: mariadb:11
MySQL-compatible with additional features:
- Aria storage engine for crash-safe temporary tables
- Thread pool for better concurrent connection handling
utf8mb4character set by default
MongoDB
Image: mongo:7
Document database configured with:
- Authentication enabled by default
- WiredTiger storage engine
- Journal enabled for crash recovery
- Initial database and user created from variables
Redis
Image: redis:7
In-memory store configured with:
appendonly yesfor persistencemaxmemory-policy allkeys-lruto handle memory limits- Password authentication required
- RDB snapshots every 60 seconds
Qdrant
Image: qdrant/qdrant:v1.15.1
Qdrant is a high-performance vector database — the storage layer behind most RAG (retrieval-augmented generation) and semantic-search applications. It stores high-dimensional embeddings with payload filtering and HNSW indexing, and ships a built-in web dashboard for browsing collections. Configured with:
- Auto-generated API key — created at deploy time and injected as
QDRANT__SERVICE__API_KEY. Every REST and gRPC request requires it; the only unauthenticated path is the health endpoint. Reveal the key in the service's Credentials card (admin-only, audit-logged). - Persistent named volume at
/qdrant/storage— your collections survive restarts and redeploys. - Real health check — the container probes
GET /healthzand auto-recovers if Qdrant crashes or hangs. - HTTPS dashboard — unlike the relational databases above, Qdrant is reached over its own subdomain. Click Open Qdrant Dashboard on the service page; it lands on
/dashboard. Paste the API Key into the dashboard's API Key field (top-right) to browse collections.
Ports
| Port | Protocol | Exposure |
|---|---|---|
| 6333 | REST + web dashboard | Published over HTTPS via the panel's reverse proxy |
| 6334 | gRPC | Internal only — reachable from other services on the same network |
Connecting an app
Use the auto-generated API key as the api-key header (REST) or in your gRPC client config. From another service on the same panel network, reach Qdrant by its service name:
# REST, from another service on the same panel curl -H "api-key: <YOUR_API_KEY>" http://my-qdrant:6333/collections # gRPC client config host=my-qdrant port=6334 api_key=<YOUR_API_KEY>
For external/SDK access, use the service's public HTTPS subdomain with the same API key.
Connecting to Databases
Databases deployed through the panel are accessible to other services on the same Docker network. Use the service name as the hostname:
# From another service on the same panel postgresql://db_user:db_pass@my-postgres:5432/mydb mysql://db_user:db_pass@my-mysql:3306/mydb mongodb://db_user:db_pass@my-mongo:27017/mydb redis://:password@my-redis:6379
For external access, databases intentionally do not expose ports. If you need external access, deploy a connection proxy or use the panel's API to stream queries.
Backup Integration
Database templates work with the panel's backup system. Backups use database-native dump tools:
- PostgreSQL:
pg_dump - MySQL/MariaDB:
mysqldump - MongoDB:
mongodump - Redis: RDB snapshot copy