Add initial docker-compose.yaml for Pterodactyl
This commit is contained in:
BIN
public/svgs/pterodactyl.png
Normal file
BIN
public/svgs/pterodactyl.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 31 KiB |
157
templates/compose/pterodactyl.yaml
Normal file
157
templates/compose/pterodactyl.yaml
Normal file
@@ -0,0 +1,157 @@
|
|||||||
|
# documentation: https://pterodactyl.io/
|
||||||
|
# slogan: Pterodactyl is a free, open-source game server management panel
|
||||||
|
# tags: game, game server, management, panel, minecraft
|
||||||
|
# logo: svgs/pterodactyl.png
|
||||||
|
# port: 80
|
||||||
|
|
||||||
|
services:
|
||||||
|
mariadb:
|
||||||
|
image: mariadb:10.5
|
||||||
|
restart: unless-stopped
|
||||||
|
command: --default-authentication-plugin=mysql_native_password
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
["CMD-SHELL", "healthcheck.sh --connect --innodb_initialized || exit 1"]
|
||||||
|
start_period: 10s
|
||||||
|
interval: 10s
|
||||||
|
timeout: 1s
|
||||||
|
retries: 3
|
||||||
|
environment:
|
||||||
|
- SERVICE_PASSWORD_MYSQL
|
||||||
|
- MYSQL_ROOT_PASSWORD=$SERVICE_PASSWORD_MYSQLROOT
|
||||||
|
- MYSQL_DATABASE=panel
|
||||||
|
- MYSQL_USER=pterodactyl
|
||||||
|
- MYSQL_PASSWORD=$SERVICE_PASSWORD_MYSQL
|
||||||
|
volumes:
|
||||||
|
- pterodactyl-db:/var/lib/mysql
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: redis:alpine
|
||||||
|
restart: unless-stopped
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 1s
|
||||||
|
retries: 3
|
||||||
|
|
||||||
|
pterodactyl:
|
||||||
|
image: ghcr.io/pterodactyl/panel:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- "panel-var:/app/var/"
|
||||||
|
- "panel-nginx:/etc/nginx/http.d/"
|
||||||
|
- "panel-certs:/etc/letsencrypt/"
|
||||||
|
- "panel-logs:/app/storage/logs"
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "curl -sf http://localhost:80 || exit 1"]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 1s
|
||||||
|
retries: 3
|
||||||
|
environment:
|
||||||
|
- SERVICE_FQDN_PTERODACTYL
|
||||||
|
|
||||||
|
- APP_ENV=production
|
||||||
|
- APP_ENVIRONMENT_ONLY=false
|
||||||
|
- APP_URL=${PTERODACTYL_PUBLIC_FQDN:-$SERVICE_FQDN_PTERODACTYL}
|
||||||
|
- APP_TIMEZONE=${TIMEZONE:-UTC}
|
||||||
|
- APP_SERVICE_AUTHOR=$APP_SERVICE_AUTHOR
|
||||||
|
- LOG_LEVEL=${LOG_LEVEL:-debug}
|
||||||
|
|
||||||
|
- CACHE_DRIVER=redis
|
||||||
|
- SESSION_DRIVER=redis
|
||||||
|
- QUEUE_DRIVER=redis
|
||||||
|
- REDIS_HOST=redis
|
||||||
|
|
||||||
|
- DB_HOST=mariadb
|
||||||
|
- DB_PORT=3306
|
||||||
|
- DB_PASSWORD=$SERVICE_PASSWORD_MYSQL
|
||||||
|
|
||||||
|
- MAIL_FROM=$MAIL_FROM
|
||||||
|
- MAIL_DRIVER=$MAIL_DRIVER
|
||||||
|
- MAIL_HOST=$MAIL_HOST
|
||||||
|
- MAIL_PORT=$MAIL_PORT
|
||||||
|
- MAIL_USERNAME=$MAIL_USERNAME
|
||||||
|
- MAIL_PASSWORD=$MAIL_PASSWORD
|
||||||
|
- MAIL_ENCRYPTION=$MAIL_ENCRYPTION
|
||||||
|
|
||||||
|
wings:
|
||||||
|
image: ghcr.io/pterodactyl/wings:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- TZ=${TIMEZONE:-UTC}
|
||||||
|
- WINGS_USERNAME=pterodactyl
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-sf http://localhost:8080"]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 1s
|
||||||
|
retries: 3
|
||||||
|
volumes:
|
||||||
|
- "/var/run/docker.sock:/var/run/docker.sock"
|
||||||
|
- "/var/lib/docker/containers/:/var/lib/docker/containers/"
|
||||||
|
- "wings-lib:/var/lib/pterodactyl/"
|
||||||
|
- "wings-logs:/var/log/pterodactyl/"
|
||||||
|
|
||||||
|
- type: bind
|
||||||
|
source: ./etc/config.yml
|
||||||
|
target: /etc/pterodactyl/config.yml
|
||||||
|
content: |
|
||||||
|
docker:
|
||||||
|
network:
|
||||||
|
interface: 172.28.0.1
|
||||||
|
dns:
|
||||||
|
- 1.1.1.1
|
||||||
|
- 1.0.0.1
|
||||||
|
name: pterodactyl_nw
|
||||||
|
ispn: false
|
||||||
|
driver: ""
|
||||||
|
network_mode: pterodactyl_nw
|
||||||
|
is_internal: false
|
||||||
|
enable_icc: true
|
||||||
|
network_mtu: 1500
|
||||||
|
interfaces:
|
||||||
|
v4:
|
||||||
|
subnet: 172.28.0.0/16
|
||||||
|
gateway: 172.28.0.1
|
||||||
|
v6:
|
||||||
|
subnet: fdba:17c8:6c94::/64
|
||||||
|
gateway: fdba:17c8:6c94::1011
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
panel-var:
|
||||||
|
panel-nginx:
|
||||||
|
panel-certs:
|
||||||
|
panel-logs:
|
||||||
|
wings-lib:
|
||||||
|
wings-logs:
|
||||||
|
pterodactyl-db:
|
||||||
|
# Instructions:
|
||||||
|
# - Wait for the Pterodactyl service to be healthy (can take a few minutes)
|
||||||
|
# - Use the command `php artisan p:user:make --no-interaction --admin=1 --email=<email> --username=<username> --name-first=<firstname> --name-last=<lastname> --password=<password>` in the Pterodactyl container to create an admin user.
|
||||||
|
# - Login to the panel using the created user
|
||||||
|
# - Go to the Admin panel (Cog icon at the top)
|
||||||
|
# - Go to "Locations" on the left
|
||||||
|
# - Create a new location
|
||||||
|
# - Go to "Nodes" on the left
|
||||||
|
# - Create a new node
|
||||||
|
# - Specify a temporary FQDN like "localhost"
|
||||||
|
# - /!\ Check "Use HTTP Connection" /!\
|
||||||
|
# - Go to the "Configuration" tab of your newly created node
|
||||||
|
# - Copy the configuration file
|
||||||
|
# - In Coolify go to the "Storage" menu for your resource.
|
||||||
|
# - Find the big text area associated with `config.yml` for Wings
|
||||||
|
# - Paste the configuration at the top of this file, above `docker:`
|
||||||
|
# - Edit the line `remote: '<some_url>'` to `remote: 'http://pterodactyl'`
|
||||||
|
# - Save the file
|
||||||
|
# - On the Pterodactyl panel for the node, go to the "Settings" tab
|
||||||
|
# - Change the "Fully Qualified Domain Name" from `localhost` to `wings`
|
||||||
|
# - Go to the "About" tab and confirm that the "Information" section shows the "Daemon Version" properly.
|
||||||
|
|
||||||
|
# +----------+--------------------------------------+
|
||||||
|
# | Field | Value |
|
||||||
|
# +----------+--------------------------------------+
|
||||||
|
# | UUID | 6b3083ca-274b-4a77-b88f-6fbf5e4f286f |
|
||||||
|
# | Email | telokis@example.com |
|
||||||
|
# | Username | telokis |
|
||||||
|
# | Name | Telo Kis |
|
||||||
|
# | Admin | Yes |
|
||||||
|
# +----------+--------------------------------------+
|
||||||
Reference in New Issue
Block a user