main
1{lib, ...}: {
2 flake.modules.nixos."services/wakapi" = {config, ...}: {
3 services.wakapi = {
4 enable = true;
5 settings = {
6 server = {
7 listen_ipv4 = "127.0.0.1";
8 port = 5423;
9 public_url = "https://wakapi.hpcesia.com";
10 };
11 app = {
12 leaderboard_enabled = false;
13 avatar_url_template = "https://0.gravatar.com/avatar/{email_hash}";
14 date_format = "2006-01-02";
15 datetime_format = "2006-01-02 15:04";
16 };
17 };
18 environmentFiles = [
19 config.vaultix.templates.wakapi-env.path
20 ];
21 };
22
23 services.caddy.virtualHosts."wakapi.hpcesia.com".extraConfig =
24 lib.mkIf config.services.caddy.enable
25 (let
26 localAddress = "http://localhost:${toString config.services.wakapi.settings.server.port}";
27 in ''
28 encode zstd gzip
29 reverse_proxy ${localAddress}
30 '');
31
32 vaultix.secrets.wakapi-password-salt.file = ./password-salt.age;
33 vaultix.templates.wakapi-env.content = ''
34 WAKAPI_PASSWORD_SALT=${config.vaultix.placeholder.wakapi-password-salt}
35 '';
36 };
37}