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.
Tip
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
Note
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
Warning
Elasticsearch requires significant memory. Allocate at least 1 GB of RAM on your server for Elasticsearch in addition to your application's requirements.
External Connections¶
All database types support the allow_external_connections setting, which controls whether the database port is published on the server's public IP. Defaults to true. Set to false to restrict access to the internal Docker network only.
See External Connections for details, restrictions, and impact on backups.
Using Database Types in appliku.yml¶
databases:
db:
type: postgresql_17
allow_external_connections: false
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