old
 1{
 2  lib,
 3  config,
 4  myvars,
 5  ...
 6}: {
 7  services.gokapi = {
 8    enable = true;
 9    mutableSettings = true;
10    environment = {
11      GOKAPI_PORT = 53842;
12      GOKAPI_ADMIN_USER = myvars.useremail;
13    };
14    settings = {
15      ServerUrl = "https://send.hpcesia.com/";
16      RedirectUrl = "https://github.com/Forceu/Gokapi/";
17      PublicName = "Tribios";
18      DatabaseUrl = "sqlite:///var/lib/gokapi/data/db.sqlite";
19      UseSsl = false;
20      SaveIp = false;
21      IncludeFilename = true;
22      MaxFileSizeMB = 2048;
23      MaxMemory = 50;
24      ChunkSize = 45;
25      MaxParallelUploads = 4;
26      PicturesAlwaysLocal = false;
27      Encryption = {
28        Level = 0;
29        Cipher = null;
30      };
31      Authentication = {
32        Method = 1;
33        Username = "HPCesia";
34        OauthProvider = "https://authelia.hpcesia.com";
35        OAuthClientId = "gokapi";
36        OAuthRecheckInterval = 12;
37      };
38    };
39    settingsFile = config.sops.templates.gokapi-config.path;
40  };
41
42  systemd.services.gokapi.serviceConfig = {
43    DynamicUser = lib.mkForce false;
44    User = "gokapi";
45    Group = "gokapi";
46  };
47
48  sops.templates.gokapi-config = {
49    content = builtins.toJSON {
50      Authentication = {
51        SaltAdmin = config.sops.placeholder.gokapi-salt-admin;
52        SaltFiles = config.sops.placeholder.gokapi-salt-files;
53        OAuthClientSecret = config.sops.placeholder.gokapi-oauth-secret;
54      };
55    };
56    owner = "root";
57    group = "gokapi";
58    mode = "0440";
59  };
60
61  users.users.gokapi = {
62    isSystemUser = true;
63    useDefaultShell = true;
64    group = "gokapi";
65  };
66  users.groups.gokapi = {};
67}