feat: pterodactyl template

This commit is contained in:
naterfute
2025-04-09 22:10:04 -07:00
parent d7b4e05cf2
commit d86828ae9f
3 changed files with 117 additions and 0 deletions

View File

@@ -0,0 +1,83 @@
version: '3.8'
x-common:
database:
&db-environment
# Do not remove the "&db-password" from the end of the line below, it is important
# for Panel functionality.
MYSQL_PASSWORD: &db-password "CHANGE_ME"
MYSQL_ROOT_PASSWORD: "CHANGE_ME_TOO"
panel:
&panel-environment
APP_URL: "http://example.com"
# A list of valid timezones can be found here: http://php.net/manual/en/timezones.php
APP_TIMEZONE: "UTC"
APP_SERVICE_AUTHOR: "noreply@example.com"
# Uncomment the line below and set to a non-empty value if you want to use Let's Encrypt
# to generate an SSL certificate for the Panel.
# LE_EMAIL: ""
mail:
&mail-environment
MAIL_FROM: "noreply@example.com"
MAIL_DRIVER: "smtp"
MAIL_HOST: "mail"
MAIL_PORT: "1025"
MAIL_USERNAME: ""
MAIL_PASSWORD: ""
MAIL_ENCRYPTION: "true"
#
# ------------------------------------------------------------------------------------------
# DANGER ZONE BELOW
#
# The remainder of this file likely does not need to be changed. Please only make modifications
# below if you understand what you are doing.
#
services:
database:
image: mariadb:10.5
restart: always
command: --default-authentication-plugin=mysql_native_password
volumes:
- "pterodb:/var/lib/mysql"
environment:
MYSQL_DATABASE: "panel"
MYSQL_USER: "pterodactyl"
MYSQL_PASSWORD:
MYSQL_ROOT_PASSWORD:
cache:
image: redis:alpine
restart: always
panel:
image: ghcr.io/pterodactyl/panel:latest
restart: always
links:
- database
- cache
volumes:
- "pterovar/:/app/var/"
- "pteronginx:/etc/nginx/http.d/"
- "pterocerts/:/etc/letsencrypt/"
- "pterologs:/app/storage/logs"
environment:
APP_ENV: "production"
APP_ENVIRONMENT_ONLY: "false"
CACHE_DRIVER:
SESSION_DRIVER:
QUEUE_DRIVER:
REDIS_HOST:
DB_HOST:
DB_PORT:
MYSQL_PASSWORD:
MYSQL_ROOT_PASSWORD:
networks:
default:
ipam:
config:
- subnet: 172.20.0.0/16
volumes:
pterodb:
pterovar:
pteronginx:
pterocerts:
pterologs:

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,34 @@
[variables]
main_domain = "${domain}"
db_password = "${password:32}"
db_root_password = "${password:32}"
secret_key = "${base64:48}"
[config]
env = [
"Domain=${main_domain}",
"APP_URL={$main_domain}",
"APP_TIMEZONE=UTC",
"APP_SERVICE_AUTHOR=noreply@example.com",
"MAIL_FROM=noreply@example.com",
"MAIL_DRIVER=smtp",
"MAIL_HOST=mail",
"MAIL_PORT=1025",
"MAIL_USERNAME=",
"MAIL_PASSWORD=",
"MAIL_ENCRYPTION=true",
"MYSQL_PASSWORD=${db_password}",
"MYSQL_ROOT_PASSWORD=${db_root_password}",
"DB_PORT=3306",
"CACHE_DRIVER=redis",
"SESSION_DRIVER=redis",
"QUEUE_DRIVER=redis",
"REDIS_HOST=cache",
"DB_HOST=database",
]
mounts = []
[[config.domains]]
serviceName = "panel"
port = 80
host = "${main_domain}"