commit 892c2a46f714a11d190ce3035ef7d763959e55c1 Author: LinuxSquare Date: Wed Nov 6 21:43:50 2024 +0100 Initial Commit diff --git a/APKBUILD b/APKBUILD new file mode 100644 index 0000000..245f454 --- /dev/null +++ b/APKBUILD @@ -0,0 +1,19 @@ +# Maintainer: LinuxSquare +pkgname=pterodactyl-panel-compose +pkgver=1.11.9 +pkgrel=0 +pkgdesc="The Pterodactyl Panel" +arch="x86_64" +url="https://pterodactyl.io/" +license="MIT" +optdepends="podman docker" # Install either podman or docker +makedepends="go" +install="$pkgname.post-install $pkgname.post-deinstall" + +package() { + DESTDIR="$pkgdir" make install + local compose_path=$(find $pkgdir -name docker-compose.yml -exec dirname {} \; | sed "s|$pkgdir||") + echo "${pkgdir}${compose_path}" + sed -i "s|%VERSION%|$pkgver|" "${pkgdir}${compose_path}/docker-compose.yml" + chown -R 1337:1337 "${pkgdir}${compose_path}" +} diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..96b942a --- /dev/null +++ b/Makefile @@ -0,0 +1,20 @@ +PREFIX ?= /usr +SHARE_DIR=$(PREFIX)/share + +APP_TIMEZONE=$(shell readlink /etc/localtime | cut -d/ -f5-) +MYSQL_PASSWORD=$(shell head /dev/urandom | tr -dc 'A-Za-z0-9!?,.$%&+-:<=>@_' | head -c32) +MYSQL_ROOT_PASSWORD=$(shell head /dev/urandom | tr -dc 'A-Za-z0-9!?,.$%&+-:<=>@_' | head -c32) + +install: install-compose install-service + +install-compose: + install -vDm 755 docker-compose.yml.in "$(DESTDIR)$(SHARE_DIR)/pterodactyl-panel/docker-compose.yml" + sed -i "s|%APP_TIMEZONE%|$(APP_TIMEZONE)|g" "$(DESTDIR)$(SHARE_DIR)/pterodactyl-panel/docker-compose.yml" + sed -i "s|%MYSQL_PASSWORD%|$(MYSQL_PASSWORD)|g" "$(DESTDIR)$(SHARE_DIR)/pterodactyl-panel/docker-compose.yml" + sed -i "s|%MYSQL_ROOT_PASSWORD%|$(MYSQL_ROOT_PASSWORD)|g" "$(DESTDIR)$(SHARE_DIR)/pterodactyl-panel/docker-compose.yml" + +install-service: + install -vDm 755 pterodactyl-panel-compose.initd.in "$(DESTDIR)/etc/init.d/pterodactyl-panel-compose" + sed -i "s|%COMPOSEPATH%|$(SHARE_DIR)/pterodactyl-panel/docker-compose.yml|g" "$(DESTDIR)/etc/init.d/pterodactyl-panel-compose" + +.PHONY: install diff --git a/docker-compose.yml.in b/docker-compose.yml.in new file mode 100644 index 0000000..91b1969 --- /dev/null +++ b/docker-compose.yml.in @@ -0,0 +1,48 @@ +services: + database: + image: docker.io/mariadb:10.5 + restart: always + command: --default-authentication-plugin=mysql_native_password + volumes: + - "./database:/var/lib/mysql" + environment: + MYSQL_DATABASE: "panel" + MYSQL_USER: "pterodactyl" + MYSQL_PASSWORD: "%MYSQL_PASSWORD%" + MYSQL_ROOT_PASSWORD: "%MYSQL_ROOT_PASSWORD%" + cache: + image: docker.io/redis:alpine + restart: always + panel: + image: ghcr.io/pterodactyl/panel:v%VERSION% + restart: always + ports: + - "80:80" + - "443:443" + links: + - database + - cache + volumes: + - "./var:/app/var/" + - "./nginx:/etc/nginx/http.d/" + - "./certs:/etc/letsencrypt/" + - "./logs:/app/storage/logs" + environment: + DB_PASSWORD: "%MYSQL_PASSWORD%" + APP_ENV: "production" + APP_ENVIRONMENT_ONLY: "false" + CACHE_DRIVER: "redis" + SESSION_DRIVER: "redis" + QUEUE_DRIVER: "redis" + REDIS_HOST: "cache" + DB_HOST: "database" + DB_PORT: "3306" + RECAPTCHA_ENABLED: "false" + TRUSTED_PROXIES: "*" + APP_TIMEZONE: "%APP_TIMEZONE%" + APP_SERVICE_AUTHOR: "mail@example.com" +networks: + default: + ipam: + config: + - subnet: 172.20.0.0/16 diff --git a/pterodactyl-panel-compose.initd.in b/pterodactyl-panel-compose.initd.in new file mode 100644 index 0000000..da5468b --- /dev/null +++ b/pterodactyl-panel-compose.initd.in @@ -0,0 +1,20 @@ +#!/sbin/openrc-run + +name=$RC_SVCNAME +description="Pterodactyl Panel Containerized" +supervisor="supervise-daemon" + +command="/usr/bin/podman-compose" +command_args="up -f %COMPOSEPATH% -d" +command_user="pterodactyl" + +depend() { + after podman + need podman +} + +stop() { + ebegin "Stopping $RC_SVCNAME" + /usr/bin/podman-compose down -f %COMPOSEPATH% + eend $? +} diff --git a/pterodactyl-panel-compose.post-deinstall b/pterodactyl-panel-compose.post-deinstall new file mode 100644 index 0000000..114a4ab --- /dev/null +++ b/pterodactyl-panel-compose.post-deinstall @@ -0,0 +1,3 @@ +#!/bin/sh + +deluser pterodactyl 2>/dev/null diff --git a/pterodactyl-panel-compose.post-install b/pterodactyl-panel-compose.post-install new file mode 100644 index 0000000..b112a1f --- /dev/null +++ b/pterodactyl-panel-compose.post-install @@ -0,0 +1,6 @@ +#!/bin/sh + +addgroup -S -g 1337 pterodactyl 2>/dev/null +adduser -S -H -D -u 1337 -s /sbin/nologin -g pterodactyl pterodactyl 2>/dev/null + +exit 0