Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.pangolin.net/llms.txt

Use this file to discover all available pages before exploring further.

Try free on Pangolin Cloud

Fastest way to get started with Pangolin using the hosted control plane. No credit card required.
Pangolin supports two database options: SQLite for simplicity and PostgreSQL for production deployments.

SQLite (Default)

  • No configuration required
  • Easy to use and portable
  • Built into the main image
  • Perfect for development

PostgreSQL

  • Production-ready database
  • Better performance at scale
  • Requires separate image
  • Advanced configuration options

SQLite

By default, Pangolin uses SQLite for its ease of use and portability. Docker Image: fosrl/pangolin:<version>
No configuration is required to use SQLite with Pangolin.

PostgreSQL

You can optionally use PostgreSQL for production deployments. Docker Image: fosrl/pangolin:postgresql-<version>

Configuration

Add the following section to your Pangolin configuration file:
config.yml
postgres:
  connection_string: postgresql://<user>:<password>@<host>:<port>/<database>
Replace the placeholders with your actual PostgreSQL connection details.

Docker Compose Example

This example sets up PostgreSQL with health checks to ensure the database is ready before Pangolin starts:
docker-compose.yml
name: pangolin
services:
  pangolin:
    image: fosrl/pangolin:postgresql-latest # Don't use latest in production
    container_name: pangolin
    restart: unless-stopped
    depends_on:
      postgres:
        condition: service_healthy
    volumes:
      - ./config:/app/config
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3001/api/v1/"]
      interval: "10s"
      timeout: "10s"
      retries: 15

  # ... other services ...

  postgres:
    image: postgres:17
    container_name: postgres
    restart: unless-stopped
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
    volumes:
      - ./config/postgres:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 10s
      timeout: 5s
      retries: 5
This example is not necessarily production-ready. Adjust the configuration according to your needs and security requirements.
Do not use latest tags in production. Use specific version tags for stability.