Skip to content

Instantly share code, notes, and snippets.

@laGameTV
Last active May 16, 2025 17:54
Show Gist options
  • Save laGameTV/0132bd4e73e54f53452048c14594bd9b to your computer and use it in GitHub Desktop.
Save laGameTV/0132bd4e73e54f53452048c14594bd9b to your computer and use it in GitHub Desktop.
Deploy Pelican Panel in Dokploy
TIMEZONE=Europe/Berlin
# Panel
# PANEL_DEBUG=false
# PANEL_ENV=production
# PANEL_LOCALE=en
[email protected] # Needs to be changed.
PANEL_URL_SCHEME=https # Needs to be changed.
PANEL_URL=pelican.example.org # Needs to be changed.
# PostgreSQL
DATABASE_NAME=panel
DATABASE_USER=pelican
DATABASE_PASS=CHANGEME # Needs to be changed.
# Mount File as Volume via the "Advanced"-Tab -> Volumes -> Add Volume
{
admin off
servers {
trusted_proxies static 172.18.0.0
}
}
:80 {
root * /var/www/html/public
encode gzip
php_fastcgi 127.0.0.1:9000 {
# Change max upload file size here:
env PHP_VALUE "upload_max_filesize = 256M
post_max_size = 256M"
}
file_server
}
services:
pelican-panel:
image: ghcr.io/pelican-dev/panel:latest
restart: unless-stopped
depends_on:
- pelican-database
- pelican-redis
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/up"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
networks:
- default
- pelican
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- pelican-data:/pelican-data
- pelican-logs:/var/www/html/storage/logs
- ../files/Caddyfile:/etc/caddy/Caddyfile
environment:
XDG_DATA_HOME: /pelican-data
APP_TIMEZONE: $TIMEZONE
APP_URL: ${PANEL_URL_SCHEME:-https}://${PANEL_URL}
APP_DEBUG: ${PANEL_DEBUG:-false}
APP_ENV: ${PANEL_ENV:-production}
APP_LOCALE: ${PANEL_LOCALE:-en}
ADMIN_EMAIL: ${PANEL_EMAIL}
DB_CONNECTION: pgsql
DB_HOST: pelican-database
DB_PORT: 5432
DB_DATABASE: ${DATABASE_NAME:-panel} # Doesn't seem to Auto-Fill yet.
DB_USERNAME: ${DATABASE_USER:-pelican} # Doesn't seem to Auto-Fill yet.
DB_PASSWORD: ${DATABASE_PASS} # Doesn't seem to Auto-Fill yet.
REDIS_HOST: pelican-redis
REDIS_PORT: 6379
CACHE_STORE: redis
SESSION_DRIVER: redis
QUEUE_CONNECTION: redis
pelican-database:
image: postgres:latest
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
networks:
- pelican
volumes:
- pelican-database:/var/lib/postgresql/data
environment:
POSTGRES_DB: ${DATABASE_NAME:-pelican}
POSTGRES_USER: ${DATABASE_USER:-pelican}
POSTGRES_PASSWORD: ${DATABASE_PASS}
pelican-redis:
image: redis:latest
restart: unless-stopped
networks:
- pelican
volumes:
- pelican-redis:/data
volumes:
pelican-database:
pelican-redis:
pelican-data:
pelican-logs:
networks:
default:
ipam:
config:
- subnet: 172.20.0.0/16
pelican:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment