Database Types
Appliku can provision and manage several database engines as Docker containers running alongside your application on the same server. This page is a quick reference for all supported types.
Overview
| Engine | Type Key | Versions | Category | Backup Support |
|---|---|---|---|---|
| PostgreSQL | postgresql_17 | 17 | Relational | Automatic backups |
| PostgreSQL | postgresql_16 | 16 | Relational | Automatic backups |
| PostgreSQL | postgresql_15 | 15 | Relational | Automatic backups |
| PostgreSQL | postgresql_12 | 12 | Relational | Automatic backups |
| PostGIS | postgis_16_34 | 16 + PostGIS 3.4 | Spatial/Relational | Automatic backups |
| pgvector | postgresql_16_pgvector | 16 + pgvector | Vector/Relational | Automatic backups |
| TimescaleDB | timescale_db_15 | 15 | Time-series | Automatic backups |
| MySQL | mysql_8 | 8 | Relational | Manual backups |
| Redis | redis_7 | 7 | Cache/Broker | No persistence |
| Redis | redis_6 | 6 | Cache/Broker | No persistence |
| RabbitMQ | rabbitmq | Latest | Message Broker | No persistence |
| Elasticsearch | elasticsearch_8_17 | 8.17 | Search Engine | Manual backups |
Relational Databases
PostgreSQL
The recommended database for most applications. Fully featured relational database with excellent performance and reliability.
Available versions: 17, 16, 15, 12
Use cases:
- Web application backends (Django, Rails, Node.js)
- APIs and microservices
- Any application needing ACID-compliant storage
Backup support: Automatic backups via pg_dump. Configure backup schedules from the database management page.
Use PostgreSQL 17 for new projects. It includes the latest performance improvements and features. Older versions are available for compatibility with existing applications.
PostGIS (PostgreSQL + PostGIS)
PostgreSQL with the PostGIS spatial extension for geographic data.
Type key: postgis_16_34 (PostgreSQL 16 + PostGIS 3.4)
Use cases:
- Location-based applications
- Geographic information systems (GIS)
- Applications that need spatial queries, distance calculations, or geometry operations
pgvector (PostgreSQL + pgvector)
PostgreSQL with the pgvector extension for vector similarity search.
Type key: postgresql_16_pgvector
Use cases:
- AI/ML applications with embedding storage
- Semantic search
- Recommendation engines
- RAG (Retrieval-Augmented Generation) applications
TimescaleDB
PostgreSQL with the TimescaleDB extension for time-series data.
Type key: timescale_db_15 (based on PostgreSQL 15)
Use cases:
- IoT data collection
- Metrics and monitoring
- Financial data
- Any application with time-series workloads
MySQL
General-purpose relational database.
Type key: mysql_8
Use cases:
- Applications that specifically require MySQL
- WordPress, Drupal, and other CMS platforms
- Legacy application compatibility
Backup support: Manual backups via mysqldump. Run backup commands through the server's Run Commands feature.
Cache and Message Brokers
Redis
In-memory data store used primarily as a cache or message broker.
Available versions: 7, 6
Use cases:
- Application caching (session storage, query caching)
- Celery task broker
- Real-time features (pub/sub)
- Rate limiting
Redis instances provisioned by Appliku do not persist data to disk by default. If the container restarts, cached data will be lost. This is appropriate for caching and message brokering but not for primary data storage.
RabbitMQ
Advanced message broker supporting multiple messaging protocols.
Type key: rabbitmq
Use cases:
- Task queues (Celery with RabbitMQ backend)
- Event-driven architectures
- Microservice communication
- Applications needing message acknowledgment, routing, or priority queues
Search Engines
Elasticsearch
Distributed search and analytics engine.
Type key: elasticsearch_8_17
Use cases:
- Full-text search
- Log aggregation and analysis
- Application search features
- Analytics and reporting
Elasticsearch requires significant memory. Allocate at least 1 GB of RAM on your server for Elasticsearch in addition to your application's requirements.
Using Database Types in appliku.yml
databases:
db:
type: postgresql_17
cache:
type: redis_7
search:
type: elasticsearch_8_17
Reference databases in your environment variables:
build_settings:
environment_variables:
- name: DATABASE_URL
from_database:
name: db
property: private_connection_url
- name: REDIS_URL
from_database:
name: cache
property: connection_url