Skip to content

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