commit 795019f46738d0467cd6752bd4c88794348135bc Author: kalmenn Date: Mon Jul 7 01:27:09 2025 +0200 feat: Provide packages for wings, the panel and its php environment diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..e6ccefa --- /dev/null +++ b/flake.lock @@ -0,0 +1,27 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1751637120, + "narHash": "sha256-xVNy/XopSfIG9c46nRmPaKfH1Gn/56vQ8++xWA8itO4=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "5c724ed1388e53cc231ed98330a60eb2f7be4be3", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..1377e87 --- /dev/null +++ b/flake.nix @@ -0,0 +1,52 @@ +{ + description = "A production ready configuration of the pterodactyl game server panel"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; + }; + + outputs = { self, nixpkgs }: let + forAllSystems = nixpkgs.lib.genAttrs [ + "x86_64-linux" + ]; + in { + packages = forAllSystems (system: let + pkgs = nixpkgs.legacyPackages.${system}; + in { + + panel = let + version = ""; + in pkgs.fetchzip { + url = "https://github.com/pterodactyl/panel/releases/download/v${ version }/panel.tar.gz"; + hash = "sha256-0nOHtReVUVXYQY/glS4x0gkbhetoXSWg4rRwOJlkcM8="; + stripRoot = false; + }; + + php = pkgs.php81.buildEnv { + extensions = { enabled, all, }: enabled ++ (with all; [ + redis + ]); + }; + + wings = pkgs.buildGoModule rec { + pname = "pterodactyl-wings"; + version = "1.11.13"; + + src = pkgs.fetchFromGitHub { + owner = "pterodactyl"; + repo = "wings"; + rev = "v${version}"; + sha256 = "sha256-UpYUHWM2J8nH+srdKSpFQEaPx2Rj2+YdphV8jJXcoBU="; + }; + + vendorHash = "sha256-eWfQE9cQ7zIkITWwnVu9Sf9vVFjkQih/ZW77d6p/Iw0="; + subPackages = [ "." ]; + + ldflags = [ + "-X github.com/pterodactyl/wings/system.Version=${version}" + ]; + }; + + }); + }; +}