| 1 | { |
| 2 | inputs, |
| 3 | config, |
| 4 | pkgs, |
| 5 | ... |
| 6 | }: |
| 7 | |
| 8 | { |
| 9 | imports = [ |
| 10 | inputs.freescout.nixosModules.freescout |
| 11 | ../nginx.nix |
| 12 | ]; |
| 13 | |
| 14 | services.freescout = { |
| 15 | enable = true; |
| 16 | package = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system}.freescout; |
| 17 | domain = "freescout.nixos.org"; |
| 18 | |
| 19 | settings.APP_KEY._secret = config.sops.secrets.freescout-app-key.path; |
| 20 | |
| 21 | databaseSetup = { |
| 22 | enable = true; |
| 23 | kind = "pgsql"; |
| 24 | }; |
| 25 | |
| 26 | nginx = { |
| 27 | forceSSL = true; |
| 28 | enableACME = true; |
| 29 | }; |
| 30 | }; |
| 31 | |
| 32 | services.postgresqlBackup = { |
| 33 | enable = true; |
| 34 | databases = [ "freescout" ]; |
| 35 | }; |
| 36 | |
| 37 | services.backup.includes = [ |
| 38 | "/var/lib/freescout" |
| 39 | config.services.postgresqlBackup.location |
| 40 | ]; |
| 41 | |
| 42 | # How to generate: |
| 43 | # |
| 44 | # $ cd non-critical-infra |
| 45 | # $ SECRET_PATH=secrets/freescout-app-key.umbriel |
| 46 | # $ echo "base64:$(nix run nixpkgs#openssl -- rand -base64 32)" > "$SECRET_PATH" |
| 47 | # $ sops encrypt --in-place "$SECRET_PATH" |
| 48 | sops.secrets.freescout-app-key = { |
| 49 | format = "binary"; |
| 50 | owner = config.services.postsrsd.user; |
| 51 | group = config.services.postsrsd.group; |
| 52 | sopsFile = ../../secrets/freescout-app-key.umbriel; |
| 53 | restartUnits = [ "postsrsd.service" ]; |
| 54 | }; |
| 55 | } |