diff --git a/nix-system-configs/modules/scripts/pull.zsh b/nix-system-configs/modules/scripts/pull.zsh index 6527fcd..ff45581 100755 --- a/nix-system-configs/modules/scripts/pull.zsh +++ b/nix-system-configs/modules/scripts/pull.zsh @@ -117,6 +117,23 @@ else exit 1 fi +# Todo make it conditional so that it is done only for compose-nix, I will probably make a Rust cli something like that +# Deploy Caddyfile from modules to runtime path so the Panel can use it +CADDY_SRC="${MODULES_TARGET}/songsheet/wavelog/Caddyfile" +CADDY_DST="/etc/pelican/Caddyfile" +print_info "Deploying Caddyfile from ${BOLD}${CADDY_SRC}${RESET} to ${BOLD}${CADDY_DST}${RESET}..." +if [[ -f "${CADDY_SRC}" ]]; then + if sudo mkdir -p "$(dirname "${CADDY_DST}")" && sudo cp "${CADDY_SRC}" "${CADDY_DST}" && sudo chown root:root "${CADDY_DST}" && sudo chmod 0644 "${CADDY_DST}"; then + print_success "Caddyfile deployed to ${CADDY_DST}" + else + print_error "Failed to deploy Caddyfile to ${CADDY_DST}" + exit 1 + fi +else + print_error "Caddyfile not found at ${CADDY_SRC}; aborting deployment" + exit 1 +fi + ## Todo System Conditional pulling of directories (only if it exists) # Step 2.1: Sync secrets directory diff --git a/nix-system-configs/modules/songsheet/wavelog/Caddyfile b/nix-system-configs/modules/songsheet/wavelog/Caddyfile new file mode 100644 index 0000000..9bb92a5 --- /dev/null +++ b/nix-system-configs/modules/songsheet/wavelog/Caddyfile @@ -0,0 +1,24 @@ +{ + admin off + servers { + # Trust the upstream reverse proxy (Traefik) so the Panel recognizes + # TLS is terminated there. Replace 10.1.1.250 with your Traefik IP + # or the Cloudflare IP ranges if you're using Cloudflare Flexible SSL. + trusted_proxies static 10.1.1.250 + } +} + +:80 { + root * /var/www/html/public + encode gzip + + # FastCGI to the bundled php-fpm in the Panel image + php_fastcgi 127.0.0.1:9000 { + # Optional: raise upload limits if you need larger file uploads + env PHP_VALUE "upload_max_filesize = 256M + post_max_size = 256M" + } + + file_server +} + diff --git a/nix-system-configs/modules/songsheet/wavelog/docker-compose.nix b/nix-system-configs/modules/songsheet/wavelog/docker-compose.nix index e7c1da3..f99a7e0 100644 --- a/nix-system-configs/modules/songsheet/wavelog/docker-compose.nix +++ b/nix-system-configs/modules/songsheet/wavelog/docker-compose.nix @@ -86,10 +86,12 @@ image = "ghcr.io/pelican-dev/panel:latest"; environment = { "ADMIN_EMAIL" = "kuutruu@posteo.net"; - "APP_URL" = "https://pelican.prg-radio.org"; + "APP_URL" = "http://localhost"; + "TRUSTED_PROXIES" = "10.1.1.250"; "XDG_DATA_HOME" = "/pelican-data"; }; volumes = [ + "nix-system-configs/modules/songsheet/wavelog/Caddyfile:/etc/caddy/Caddyfile:rw" "wavelog_pelican-data:/pelican-data:rw" "wavelog_pelican-logs:/var/www/html/storage/logs:rw" ]; diff --git a/nix-system-configs/modules/songsheet/wavelog/docker-compose.yml b/nix-system-configs/modules/songsheet/wavelog/docker-compose.yml index b60a28a..852cad5 100644 --- a/nix-system-configs/modules/songsheet/wavelog/docker-compose.yml +++ b/nix-system-configs/modules/songsheet/wavelog/docker-compose.yml @@ -100,12 +100,15 @@ services: extra_hosts: - "host.docker.internal:host-gateway" volumes: + # Mount the Caddyfile from the stable host path that pull.zsh deploys to + - /etc/pelican/Caddyfile:/etc/caddy/Caddyfile:ro - pelican-data:/pelican-data - pelican-logs:/var/www/html/storage/logs environment: XDG_DATA_HOME: /pelican-data APP_URL: "https://pelican.prg-radio.org" ADMIN_EMAIL: "kuutruu@posteo.net" + TRUSTED_PROXIES: "10.1.1.250" wings: image: ghcr.io/pelican-dev/wings:latest diff --git a/nix-system-configs/modules/system/minecraft.nix b/nix-system-configs/modules/system/minecraft.nix index d6628e8..1bf8042 100644 --- a/nix-system-configs/modules/system/minecraft.nix +++ b/nix-system-configs/modules/system/minecraft.nix @@ -97,14 +97,15 @@ in { motd = "PRG Fabric Modded Server"; difficulty = "hard"; gamemode = "survival"; - max-players = 64; + max-players = 128; online-mode = true; white-list = false; spawn-protection = 4; - view-distance = 10; - simulation-distance = 8; + view-distance = 16; + simulation-distance = 10; enable-command-block = false; enable-rcon = false; + level-type = "terralith:amplified_large_biomes"; }; # Grant operator privileges to the user with the given UUID. @@ -174,6 +175,47 @@ in { url = "https://cdn.modrinth.com/data/9eGKb6K1/versions/pFTZ8sqQ/voicechat-fabric-1.21.11-2.6.12.jar"; sha512 = "afc78e3d8ca463fb783b00ec3d4cb938ff9249f088d077f8cd75f6c846419e0fe4916061f57a0b188a5c28565c934623c52113f476e69e82aecabaffc8e8fdcc"; }; + + Incendium = pkgs.fetchurl { + url = "https://cdn.modrinth.com/data/ZVzW5oNS/versions/fwHirj8n/Incendium_1.21.x_v5.4.11.jar"; + sha512 = "42a6d14c290d799a99e51f2730403221a1d5be7863c796d275aa916e6735c02397390236a2ae01800566288419adebe7776c563d6a3c2e4a2f9245d375da88d7"; + }; + + YungStrongholds = pkgs.fetchurl { + url = "https://cdn.modrinth.com/data/Z2mXHnxP/versions/eUEnv9r3/YungsBetterNetherFortresses-1.21.4-Fabric-3.4.1.jar"; + sha512 = "d9e12bfb7b6b5d1f8cf141534e1df1038b0ad16bc50dc68796744820bf86166fe905004303ccfb572b6d4d77acdebb091e4ebf7a2f7e4280bd3866a5f6b32c7a"; + }; + + YungAPI = pkgs.fetchurl { + url = "https://cdn.modrinth.com/data/Ua7DFN59/versions/U4m2SXEP/YungsApi-1.21.4-Fabric-5.4.0.jar"; + sha512 = "d8db539ee3837e90082bbf0fb24442662334069bea634baed1ee86b43e20b221edd4099f13cfe9a1c242a91ad5dc33fcdf8143d420df1e67a0960c39cdb23f82"; + }; + + Nullscape = pkgs.fetchurl { + url = "https://cdn.modrinth.com/data/LPjGiSO4/versions/f87vU1jc/Nullscape_1.21.x_v1.2.17.jar"; + sha512 = "16e12725973e03284d1a9d71c750b9687b91d91789eae8df657aa0f90d3487a68687711e486e2e294800eb492c355960b09be43006f3e0c48f67fc91f4f30bc2"; + }; + + Structury = pkgs.fetchurl { + url = "https://cdn.modrinth.com/data/aKCwCJlY/versions/MXU49bpN/Structory_1.21.x_v1.3.14.jar"; + sha512 = "0aa3b4e31f851a0136eb672dc87c629db0fdaf2dd4a943c5dde7518b45fd733c7077c128b5d7fba674657d29ff09268040ab7d2c82a57414a22a2ea163ad8149"; + }; + + StructuryTowers = pkgs.fetchurl { + url = "https://cdn.modrinth.com/data/j3FONRYr/versions/lefqbuOP/Structory_Towers_1.21.x_v1.0.15.jar"; + sha512 = "4068a07e0b6b21da6f77b65ac731e01c920f0269830c5bdf4b27b5d8f5a384f170781123feaed83aff05fcd94738aa6e8c29ef1d01c2c9c5cc87c3b4ac52903a"; + }; + + Ledger = pkgs.fetchurl { + url = "https://cdn.modrinth.com/data/LVN9ygNV/versions/c1d39lju/ledger-1.3.19.jar"; + sha512 = "91c6cdd9d8bcb6fb57f3ec83c968217b157d7d763724ba19e6d21711bf14bdefdfe2a5b03226bce65c77a0988c6b1d336535de9c9bae4193902a95fac17152a0"; + }; + + Bluemap = pkgs.fetchurl { + url = "https://cdn.modrinth.com/data/swbUV1cr/versions/TROfpX7m/bluemap-5.16-fabric.jar"; + sha512 = "138c022c61ff7b37174351625bdb859d7b0fd1dd33b76a32d894dc6fd8fe1c3d3c5d2a8575a3e72a82ca84baaf3253c485085d8a415cc76d1ed20bbabe88ab25"; + }; + } ); };