diff --git a/blueprints/pterodactyl/docker-compose.yml b/blueprints/pterodactyl/docker-compose.yml new file mode 100644 index 00000000..c7ebf034 --- /dev/null +++ b/blueprints/pterodactyl/docker-compose.yml @@ -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: diff --git a/blueprints/pterodactyl/pterodactyl.png b/blueprints/pterodactyl/pterodactyl.png new file mode 100644 index 00000000..b0e540b4 Binary files /dev/null and b/blueprints/pterodactyl/pterodactyl.png differ diff --git a/blueprints/pterodactyl/template.toml b/blueprints/pterodactyl/template.toml new file mode 100644 index 00000000..04bfb08b --- /dev/null +++ b/blueprints/pterodactyl/template.toml @@ -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}"