Pelican is an open-source game server management tool, forked from Pterodactyl. This module brings this panel to Nix by implementing its own module for both frontend and backend service. This build is heavily based off of PadowYT2's Implementation, so be sure to check him and his work out.
Pelican should work on all operating systems, as the frontend uses PHP and the backend uses Docker. It is mostly recommendet though, to run Pelican on either x86_64-linux or aarch64-linux.
The default way of installing Pelican, is by using this flake as the input for your flake and adding the module to your configuration.
# flake.nix
{
inputs = {
pelican.url = "github:Hythera/nix-pelican";
...
};
outputs = {
nixpkgs,
home-manager,
pelican,
}: let
system = "...";
pkgs = nixpkgs.legacyPackages.${system};
in {
nixosConfigurations."..." = nixpkgs.lib.nixosSystem {
system = "...";
modules = [
pelican.nixosModules.default # enable the NixOS moduel
{ nixpkgs.overlays = [ pelican.overlays.default ]; }
...
];
};
}
}To use the module, you also have to configure it in your configuration.
# configuration.nix
{
pkgs,
...
}: {
# PANEL
services.pelican.panel = {
enable = true;
app = {
url = "https://panel.example.com";
# echo "base64:$(openssl rand -base64 32)"
keyFile = "/path/to/app.key";
};
# you can use *.password = "password_here";
database.passwordFile = "/path/to/db/password";
redis.passwordFile = "/path/to/redis/password";
mail.passwordFile = "/path/to/mail/password";
};
# WINGS
services.pelican.wings = {
enable = true;
openFirewall = true;
uuid = "your-node-uuid";
remote = "https://panel.example.com";
tokenIdFile = "/path/to/token/id";
tokenFile = "/path/to/token";
api.ssl.enable = true;
api.ssl.certFile = "/path/to/cert";
api.ssl.keyFile = "/path/to/key";
};
virtualisation.docker.enable = true;
}