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
	 Telokis
					Telokis