Skip to main content
The config.yml file controls all aspects of your Pangolin deployment, including server settings, domain configuration, email setup, and security options. This file is mounted at config/config.yml in your Docker container.

Setting up your config.yml

To get started, create a basic configuration file with the essential settings: Minimal Pangolin configuration:
config.yml
# To see all available options, please visit the docs:
# https://docs.pangolin.net/

gerbil:
    start_port: 51820
    base_endpoint: "pangolin.example.com" # REPLACE WITH YOUR DOMAIN
    # Optional network settings (defaults shown):
    # subnet_group: "100.89.137.0/20"
    # block_size: 24
    # site_block_size: 30

app:
    dashboard_url: "https://pangolin.example.com" # REPLACE WITH YOUR DOMAIN
    log_level: "info"
    telemetry:
        anonymous_usage: true

domains:
    domain1:
        base_domain: "example.com" # REPLACE WITH YOUR DOMAIN
        cert_resolver: "letsencrypt"

server:
    secret: "your-strong-secret" # REPLACE
    cors:
        origins: ["https://pangolin.example.com"] # REPLACE WITH YOUR DOMAIN
        methods: ["GET", "POST", "PUT", "DELETE", "PATCH"]
        allowed_headers: ["X-CSRF-Token", "Content-Type"]
        credentials: false

# Optional organization network settings (defaults shown):
# orgs:
#     block_size: 24
#     subnet_group: "100.90.128.0/20"
#     utility_subnet_group: "100.96.128.0/20"

flags:
    require_email_verification: false
    disable_signup_without_invite: true
    disable_user_create_org: false
    allow_raw_resources: true
Generate a strong secret for server.secret. Use at least 32 characters with a mix of letters, numbers, and special characters.If you need to CHANGE the server secret after the server has been started you must use the pangctl rotate-server-secret command to re-encrypt sensitive data. Follow docs here.

Reference

This section contains the complete reference for all configuration options in config.yml.

Application Settings

app
object
required
Core application configuration including dashboard URL, logging, and general settings.

Server Configuration

server
object
required
Server ports, networking, and authentication settings.

Domain Configuration

domains
object
required
Domain settings for SSL certificates and routing.At least one domain must be configured.It is best to add it in the UI for ease of use or when you want the domain to only be present in the org it was created in.You should create it in the config file for permanence across installs and if you want the domain to be present in all orgs.

Traefik Integration

traefik
object
Traefik reverse proxy configuration settings.

Gerbil Tunnel Controller

gerbil
object
required
Gerbil tunnel controller settings for WireGuard tunneling.

Organization Settings

orgs
object
Organization network configuration settings.

Rate Limiting

rate_limits
object
Rate limiting configuration for API requests.

Email Configuration

email
object
SMTP settings for sending transactional emails.

Feature Flags

flags
object
Feature flags to control application behavior.

Database Configuration

postgres
object
PostgreSQL database configuration (optional).

Environment Variables

Some configuration values can be set using environment variables for enhanced security:
NameVariableConfig
Server SecretSERVER_SECRETserver.secret
Email PasswordEMAIL_SMTP_PASSemail.smtp_pass
PostgreSQL Connection StringPOSTGRES_CONNECTION_STRINGpostgres.connection_string