From 7e83c817ec8fe5dc36fbdc770066285fd2686e8b Mon Sep 17 00:00:00 2001 From: Jade Ellis Date: Sat, 9 Mar 2024 11:45:50 +0000 Subject: [PATCH] Try deply Pterodactyl, failed --- pnpm-lock.yaml | 155 ++++++++++++++++++ servers/containers/homepage.container | 18 +- servers/containers/internal.network | 7 + .../jade-website-frontend.container | 8 + servers/containers/thelounge.container | 10 ++ servers/containers/traefik.container | 12 +- servers/main.bu | 5 + servers/retired-containers/mysql.container | 27 +++ servers/retired-containers/mysql.env | 5 + .../pterodactyl-wings-0.network | 7 + .../pterodactyl-wings.container | 59 +++++++ .../retired-containers/pterodactyl.container | 61 +++++++ servers/retired-containers/pterodactyl.env | 17 ++ servers/retired-containers/redis.container | 24 +++ servers/wings/config.yml | 18 ++ 15 files changed, 430 insertions(+), 3 deletions(-) create mode 100644 servers/containers/internal.network create mode 100644 servers/retired-containers/mysql.container create mode 100644 servers/retired-containers/mysql.env create mode 100644 servers/retired-containers/pterodactyl-wings-0.network create mode 100644 servers/retired-containers/pterodactyl-wings.container create mode 100644 servers/retired-containers/pterodactyl.container create mode 100644 servers/retired-containers/pterodactyl.env create mode 100644 servers/retired-containers/redis.container create mode 100644 servers/wings/config.yml diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index de42ac79..d878ef9f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -101,6 +101,9 @@ importers: '@steeze-ui/svelte-icon': specifier: ^1.5.0 version: 1.5.0(svelte@4.2.8) + super-sitemap: + specifier: ^0.14.14 + version: 0.14.14(svelte@4.2.8) xmlbuilder2: specifier: ^3.1.1 version: 3.1.1 @@ -1080,6 +1083,13 @@ packages: engines: {node: '>=6'} dev: true + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: false + /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -1099,6 +1109,16 @@ packages: dependencies: dequal: 2.0.3 + /array-back@3.1.0: + resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==} + engines: {node: '>=6'} + dev: false + + /array-back@4.0.2: + resolution: {integrity: sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==} + engines: {node: '>=8'} + dev: false + /axobject-query@3.2.1: resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} dependencies: @@ -1162,6 +1182,15 @@ packages: engines: {node: '>=6'} dev: true + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: false + /chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} @@ -1191,6 +1220,12 @@ packages: estree-walker: 3.0.3 periscopic: 3.1.0 + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: false + /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -1198,6 +1233,10 @@ packages: color-name: 1.1.4 dev: true + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: false + /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true @@ -1217,6 +1256,26 @@ packages: color-string: 1.9.1 dev: true + /command-line-args@5.2.1: + resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==} + engines: {node: '>=4.0.0'} + dependencies: + array-back: 3.1.0 + find-replace: 3.0.0 + lodash.camelcase: 4.3.0 + typical: 4.0.0 + dev: false + + /command-line-usage@6.1.3: + resolution: {integrity: sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==} + engines: {node: '>=8.0.0'} + dependencies: + array-back: 4.0.2 + chalk: 2.4.2 + table-layout: 1.0.2 + typical: 5.2.0 + dev: false + /commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} @@ -1296,6 +1355,11 @@ packages: regexp.prototype.flags: 1.5.2 dev: false + /deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + dev: false + /deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -1337,6 +1401,15 @@ packages: resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} dev: true + /directory-tree@3.5.1: + resolution: {integrity: sha512-HqjZ49fDzUnKYUhHxVw9eKBqbQ+lL0v4kSBInlDlaktmLtGoV9tC54a6A0ZfYeIrkMHWTE6MwwmUXP477+UEKQ==} + engines: {node: '>=10.0'} + hasBin: true + dependencies: + command-line-args: 5.2.1 + command-line-usage: 6.1.3 + dev: false + /dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} dependencies: @@ -1416,6 +1489,11 @@ packages: '@esbuild/win32-x64': 0.19.10 dev: true + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: false + /esm-env@1.0.0: resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} dev: true @@ -1462,6 +1540,13 @@ packages: micromatch: 4.0.5 dev: true + /fast-xml-parser@4.3.5: + resolution: {integrity: sha512-sWvP1Pl8H03B8oFJpFR3HE31HUfwtX7Rlf9BNsvdpujD4n7WMhfmu8h9wOV2u+c1k0ZilTADhPqypzx2J690ZQ==} + hasBin: true + dependencies: + strnum: 1.0.5 + dev: false + /fastq@1.16.0: resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} dependencies: @@ -1475,6 +1560,13 @@ packages: to-regex-range: 5.0.1 dev: true + /find-replace@3.0.0: + resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==} + engines: {node: '>=4.0.0'} + dependencies: + array-back: 3.1.0 + dev: false + /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true @@ -1552,6 +1644,11 @@ packages: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} dev: true + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: false + /has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: @@ -1699,6 +1796,10 @@ packages: /locate-character@3.0.0: resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + /lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + dev: false + /lodash.clonedeep@4.5.0: resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} dev: true @@ -2011,6 +2112,11 @@ packages: picomatch: 2.3.1 dev: true + /reduce-flatten@2.0.0: + resolution: {integrity: sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==} + engines: {node: '>=6'} + dev: false + /regexp.prototype.flags@1.5.2: resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} @@ -2208,6 +2314,27 @@ packages: min-indent: 1.0.1 dev: true + /strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + dev: false + + /super-sitemap@0.14.14(svelte@4.2.8): + resolution: {integrity: sha512-ZrxbwYD1+7n+CHZaFwt3XW3a74gpLATLaDpH4yN67a0kHRwY8Tm0eLVeIuG07PXfzxCroWj8o60G1m4kigHEaw==} + peerDependencies: + svelte: ^4.0.0 + dependencies: + directory-tree: 3.5.1 + fast-xml-parser: 4.3.5 + svelte: 4.2.8 + dev: false + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: false + /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -2336,6 +2463,16 @@ packages: picocolors: 1.0.0 dev: true + /table-layout@1.0.2: + resolution: {integrity: sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==} + engines: {node: '>=8.0.0'} + dependencies: + array-back: 4.0.2 + deep-extend: 0.6.0 + typical: 5.2.0 + wordwrapjs: 4.0.1 + dev: false + /tiny-glob@0.2.9: resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} dependencies: @@ -2365,6 +2502,16 @@ packages: hasBin: true dev: true + /typical@4.0.0: + resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==} + engines: {node: '>=8'} + dev: false + + /typical@5.2.0: + resolution: {integrity: sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==} + engines: {node: '>=8'} + dev: false + /uuid@9.0.1: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true @@ -2453,6 +2600,14 @@ packages: resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} dev: false + /wordwrapjs@4.0.1: + resolution: {integrity: sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==} + engines: {node: '>=8.0.0'} + dependencies: + reduce-flatten: 2.0.0 + typical: 5.2.0 + dev: false + /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true diff --git a/servers/containers/homepage.container b/servers/containers/homepage.container index 9c32fcb1..dd393ce7 100644 --- a/servers/containers/homepage.container +++ b/servers/containers/homepage.container @@ -12,7 +12,7 @@ Image=ghcr.io/gethomepage/homepage:latest Volume=/etc/homepage:/app/config:z PodmanArgs=--privileged Volume=/run/podman/podman.sock:/var/run/docker.sock:z -AutoUpdate=local +AutoUpdate=registry Network=web.network Label="traefik.enable=true" @@ -21,6 +21,22 @@ Label="traefik.http.routers.homepage.entrypoints=https" Label="traefik.http.routers.homepage.tls.certresolver=letsencrypt" + +Label="traefik.http.middlewares.compress.compress=true" + +Label="traefik.http.middlewares.hsts.headers.stsincludesubdomains=false" +Label="traefik.http.middlewares.hsts.headers.stspreload=true" +Label="traefik.http.middlewares.hsts.headers.stsseconds=31536000" +Label="traefik.http.middlewares.hsts.headers.isdevelopment=false" + +Label="traefik.http.routers.homepage.middlewares=hsts,compress" + + +Label="homepage.group=Public" +Label="homepage.name=Homepage" +Label="homepage.href=https://homepage.ellis.link/" +Label="homepage.description=Here!" + [Service] Restart=on-failure TimeoutStartSec=900 diff --git a/servers/containers/internal.network b/servers/containers/internal.network new file mode 100644 index 00000000..cf942863 --- /dev/null +++ b/servers/containers/internal.network @@ -0,0 +1,7 @@ +[Network] +DisableDNS=false +Internal=true +IPv6=true +# Manual subnet to avoid issues with DNS resolution +# Subnet=10.89.1.0/24 +# Gateway=10.89.1.1 \ No newline at end of file diff --git a/servers/containers/jade-website-frontend.container b/servers/containers/jade-website-frontend.container index 17c1543a..2cb433ed 100644 --- a/servers/containers/jade-website-frontend.container +++ b/servers/containers/jade-website-frontend.container @@ -19,14 +19,22 @@ Label="traefik.http.routers.jade-website-frontend.entrypoints=https" Label="traefik.http.routers.jade-website-frontend.tls.certresolver=letsencrypt" + Label="traefik.http.middlewares.compress.compress=true" Label="traefik.http.middlewares.hsts.headers.stsincludesubdomains=false" Label="traefik.http.middlewares.hsts.headers.stspreload=true" Label="traefik.http.middlewares.hsts.headers.stsseconds=31536000" Label="traefik.http.middlewares.hsts.headers.isdevelopment=false" + Label="traefik.http.routers.jade-website-frontend.middlewares=hsts,compress" +Label="homepage.group=Public" +Label="homepage.name=Website" +Label="homepage.href=https://jade.ellis.link/" +Label="homepage.siteMonitor=https://jade.ellis.link/" +Label="homepage.description=My personal website!" + [Service] Restart=on-failure TimeoutStartSec=900 diff --git a/servers/containers/thelounge.container b/servers/containers/thelounge.container index b305cb0d..d03b0159 100644 --- a/servers/containers/thelounge.container +++ b/servers/containers/thelounge.container @@ -20,6 +20,16 @@ Label="traefik.http.routers.thelounge.entrypoints=https" Label="traefik.http.routers.thelounge.tls.certresolver=letsencrypt" + +Label="traefik.http.middlewares.compress.compress=true" + +Label="traefik.http.middlewares.hsts.headers.stsincludesubdomains=false" +Label="traefik.http.middlewares.hsts.headers.stspreload=true" +Label="traefik.http.middlewares.hsts.headers.stsseconds=31536000" +Label="traefik.http.middlewares.hsts.headers.isdevelopment=false" + +Label="traefik.http.routers.thelounge.middlewares=hsts,compress" + Label="homepage.group=Social" Label="homepage.name=TheLounge" Label="homepage.href=https://thelounge.ellis.link/" diff --git a/servers/containers/traefik.container b/servers/containers/traefik.container index 84b0ba43..fb4cf78c 100644 --- a/servers/containers/traefik.container +++ b/servers/containers/traefik.container @@ -30,11 +30,19 @@ Volume=/etc/traefik:/etc/traefik:ro,z AutoUpdate=registry Network=web.network -IP=176.126.240.240 -IP6=fe80::9724:38eb:9b0f:df7c +# IP=176.126.240.240 +# IP6=fe80::9724:38eb:9b0f:df7c Exec=traefik --configFile=/etc/traefik/config.toml + +Label="traefik.http.middlewares.compress.compress=true" + +Label="traefik.http.middlewares.hsts.headers.stsincludesubdomains=false" +Label="traefik.http.middlewares.hsts.headers.stspreload=true" +Label="traefik.http.middlewares.hsts.headers.stsseconds=31536000" +Label="traefik.http.middlewares.hsts.headers.isdevelopment=false" + [Service] Restart=on-failure TimeoutStartSec=900 diff --git a/servers/main.bu b/servers/main.bu index 2f9b75ef..98147c30 100644 --- a/servers/main.bu +++ b/servers/main.bu @@ -56,6 +56,11 @@ storage: directories: - path: /var/opt/thelounge - path: /var/srv/traefik + # - path: /var/opt/mysql-database + # - path: /var/opt/pterodactyl + # - path: /var/opt/pterodactyl/panel/nginx + # - path: /var/opt/pterodactyl/panel/var + # - path: /var/opt/pterodactyl/panel/logs # - path: /etc/firewalld # mode: 0750 # See: https://docs.fedoraproject.org/en-US/fedora-coreos/storage/ diff --git a/servers/retired-containers/mysql.container b/servers/retired-containers/mysql.container new file mode 100644 index 00000000..f0ea0da2 --- /dev/null +++ b/servers/retired-containers/mysql.container @@ -0,0 +1,27 @@ + + +[Unit] +Description=MySQL Server +Wants=network-online.target +After=network-online.target + +[Container] +ContainerName=database-mysql +NoNewPrivileges=true +Image=docker.io/library/mysql:8.0 +Volume=/var/opt/mysql-database:/var/lib/mysql:Z,U +AutoUpdate=registry +Network=internal.network +EnvironmentFile=mysql.env +Exec=mysqld --default-authentication-plugin=mysql_native_password + + +Label="homepage.group=Services" +Label="homepage.name=MySQL" + +[Service] +Restart=on-failure +TimeoutStartSec=900 + +[Install] +WantedBy=default.target \ No newline at end of file diff --git a/servers/retired-containers/mysql.env b/servers/retired-containers/mysql.env new file mode 100644 index 00000000..79127e54 --- /dev/null +++ b/servers/retired-containers/mysql.env @@ -0,0 +1,5 @@ +MYSQL_ROOT_PASSWORD=Ky32ndOitmzJVrQx4RHHD + +MYSQL_DATABASE=panel +MYSQL_USER=pterodactyl +MYSQL_PASSWORD=3z4CF7IjwEbQeFS01E53d0wsYjVJ2CpH \ No newline at end of file diff --git a/servers/retired-containers/pterodactyl-wings-0.network b/servers/retired-containers/pterodactyl-wings-0.network new file mode 100644 index 00000000..43e405b0 --- /dev/null +++ b/servers/retired-containers/pterodactyl-wings-0.network @@ -0,0 +1,7 @@ +[Network] +DisableDNS=false +Internal=true +IPv6=true +Driver=bridge + +Options=com.docker.network.bridge.name=wings0 \ No newline at end of file diff --git a/servers/retired-containers/pterodactyl-wings.container b/servers/retired-containers/pterodactyl-wings.container new file mode 100644 index 00000000..8f711a74 --- /dev/null +++ b/servers/retired-containers/pterodactyl-wings.container @@ -0,0 +1,59 @@ +[Unit] +Description=Pterodactyl Wings +Wants=network-online.target +After=network-online.target + +[Container] +ContainerName=pterodactyl-wings +NoNewPrivileges=true +Image=ghcr.io/pterodactyl/wings:latest + +Volume=/run/podman/podman.sock:/var/run/docker.sock:z +Volume=/etc/ssl/certs:/etc/ssl/certs:ro +Volume=/tmp/pterodactyl/:/tmp/pterodactyl/:ro +Volume=/var/opt/pterodactyl/wings/etc/:/etc/pterodactyl:z,U +Volume=/var/opt/pterodactyl/wings/logs:/var/log/pterodactyl:z,U + +PublishPort=2022:2022 + +Environment=TZ=Europe/London +Environment=WINGS_UID=988 +Environment=WINGS_GID=988 +Environment=WINGS_USERNAME=pterodactyl + +AutoUpdate=registry +Network=web.network +Network=pterodactyl-wings-0.network + +Label="traefik.enable=true" + + +Label="traefik.http.routers.pterodactyl-wings.entrypoints=http" +Label="traefik.http.routers.pterodactyl-wings.rule=Host(`wings-0.ellis.link`)" +Label="traefik.http.routers.pterodactyl-wings.middlewares=panel_https" +Label="traefik.http.middlewares.panel_https.redirectscheme.scheme=https" +# HTTPS +Label="traefik.http.routers.pterodactyl-wings-https.entrypoints=https" +Label="traefik.http.routers.pterodactyl-wings-https.rule=Host(`wings-0.ellis.link`)" +Label="traefik.http.routers.pterodactyl-wings-https.tls=true" +Label="traefik.http.routers.pterodactyl-wings-https.tls.certresolver=letsencrypt" +Label="traefik.http.services.pterodactyl-wings-https.loadbalancer.server.port=443" +# Label="traefik.http.routers.pterodactyl-wings-https.middlewares=hsts,compress" +# +# Label="traefik.http.middlewares.compress.compress=true" +# +# Label="traefik.http.middlewares.hsts.headers.stsincludesubdomains=false" +# Label="traefik.http.middlewares.hsts.headers.stspreload=true" +# Label="traefik.http.middlewares.hsts.headers.stsseconds=31536000" +# Label="traefik.http.middlewares.hsts.headers.isdevelopment=false" + + +Label="homepage.group=Games" +Label="homepage.name=Pterodactyl Wings" + +[Service] +Restart=on-failure +TimeoutStartSec=900 + +[Install] +WantedBy=default.target \ No newline at end of file diff --git a/servers/retired-containers/pterodactyl.container b/servers/retired-containers/pterodactyl.container new file mode 100644 index 00000000..99d3b745 --- /dev/null +++ b/servers/retired-containers/pterodactyl.container @@ -0,0 +1,61 @@ + + +[Unit] +Description=Pterodactyl Panel +Wants=network-online.target +After=network-online.target + +Wants=redis.service +Wants=mysql.service + +[Container] +ContainerName=pterodactyl-panel +NoNewPrivileges=true +Image=ghcr.io/pterodactyl/panel:latest +Volume=/var/opt/pterodactyl/panel/var:/app/var/:z,U +Volume=/var/opt/pterodactyl/panel/logs:/app/storage/logs:z,U +Volume=/var/opt/pterodactyl/panel/nginx:/etc/nginx/conf.d:z,U + +EnvironmentFile=pterodactyl.env + +AutoUpdate=registry +Network=web.network +Network=internal.network + +Label="traefik.enable=true" + + +Label="traefik.http.routers.pterodactyl-panel.entrypoints=http" +Label="traefik.http.routers.pterodactyl-panel.rule=Host(`pterodactyl.ellis.link`)" +Label="traefik.http.routers.pterodactyl-panel.middlewares=panel_https" +Label="traefik.http.middlewares.panel_https.redirectscheme.scheme=https" +# HTTPS +Label="traefik.http.routers.pterodactyl-panel-https.entrypoints=https" +Label="traefik.http.routers.pterodactyl-panel-https.rule=Host(`pterodactyl.ellis.link`)" +Label="traefik.http.routers.pterodactyl-panel-https.tls=true" +Label="traefik.http.routers.pterodactyl-panel-https.tls.certresolver=letsencrypt" +Label="traefik.http.services.pterodactyl-panel-https.loadbalancer.server.port=80" +# Label="traefik.http.routers.pterodactyl-panel-https.middlewares=hsts,compress" +# +# Label="traefik.http.middlewares.compress.compress=true" +# +# Label="traefik.http.middlewares.hsts.headers.stsincludesubdomains=false" +# Label="traefik.http.middlewares.hsts.headers.stspreload=true" +# Label="traefik.http.middlewares.hsts.headers.stsseconds=31536000" +# Label="traefik.http.middlewares.hsts.headers.isdevelopment=false" + + +Label="homepage.group=Games" +Label="homepage.name=Pterodactyl Panel" +Label="homepage.href=https://pterodactyl.ellis.link/" +Label="homepage.description=Game server manager" +Label="homepage.widget.type=pterodactyl" +Label="homepage.widget.url=https://pterodactyl.ellis.link" +Label="homepage.widget.key=ptla_1nPixV9s1UJccf98TUGSO2ViY92MndM7qZKH76k1Tm5" + +[Service] +Restart=on-failure +TimeoutStartSec=900 + +[Install] +WantedBy=default.target \ No newline at end of file diff --git a/servers/retired-containers/pterodactyl.env b/servers/retired-containers/pterodactyl.env new file mode 100644 index 00000000..5ea65de3 --- /dev/null +++ b/servers/retired-containers/pterodactyl.env @@ -0,0 +1,17 @@ + +DB_PASSWORD=3z4CF7IjwEbQeFS01E53d0wsYjVJ2CpH + +APP_URL=https://pterodactyl.ellis.link +APP_TIMEZONE=Europe/London +APP_SERVICE_AUTHOR=pterodactyl@ellis.link + +APP_ENV=production +APP_ENVIRONMENT_ONLY=false +CACHE_DRIVER=redis +SESSION_DRIVER=redis +QUEUE_DRIVER=redis + +REDIS_HOST=redis +DB_HOST=database-mysql + +TRUSTED_PROXIES=* \ No newline at end of file diff --git a/servers/retired-containers/redis.container b/servers/retired-containers/redis.container new file mode 100644 index 00000000..fe915991 --- /dev/null +++ b/servers/retired-containers/redis.container @@ -0,0 +1,24 @@ + + +[Unit] +Description=Redis Server +Wants=network-online.target +After=network-online.target + +[Container] +ContainerName=redis +NoNewPrivileges=true +Image=docker.io/library/redis:alpine + +AutoUpdate=registry +Network=internal.network + +Label="homepage.group=Services" +Label="homepage.name=Redis" + +[Service] +Restart=on-failure +TimeoutStartSec=900 + +[Install] +WantedBy=default.target \ No newline at end of file diff --git a/servers/wings/config.yml b/servers/wings/config.yml new file mode 100644 index 00000000..4ea9cb58 --- /dev/null +++ b/servers/wings/config.yml @@ -0,0 +1,18 @@ +debug: false +uuid: 5bbf3bd5-4b9b-4ee4-8cd9-6ddd9dd88781 +token_id: xsKUjOLapARK0xmv +token: 7rdoH6dUAODDBs5FFUPsYFxHQhi5IHx8xnnMuGGC8ZxXR7JPRO6HLP6X5WjlCY3v +api: + host: 0.0.0.0 + port: 443 + ssl: + enabled: true + cert: /etc/letsencrypt/live/wings-0.ellis.link/fullchain.pem + key: /etc/letsencrypt/live/wings-0.ellis.link/privkey.pem + upload_limit: 100 +system: + data: /var/lib/pterodactyl/volumes + sftp: + bind_port: 2022 +allowed_mounts: [] +remote: 'https://pterodactyl.ellis.link' \ No newline at end of file