]> Untitled Git - awful.systems.git/blob - lemmy/default.nix
Initial commit
[awful.systems.git] / lemmy / default.nix
1 { config, lib, pkgs, pkgs-unstable, ... }:
2
3 {
4   imports = [ ./prod.nix ];
5
6   services.lemmy-prod = {
7     enable = true;
8     server.package = pkgs.callPackage ./server.nix { Security = null; };
9     ui.package = pkgs.callPackage ./ui.nix { };
10     nginx.enable = true;
11     database.createLocally = true;
12
13     settings = {
14       hostname = "awful.systems";
15       setup = {
16         admin_username = "self";
17         admin_email = "self@awful.systems";
18         site_name = "awful.systems";
19       };
20     };
21   };
22
23   sops.secrets."lemmy/initial_admin_password" = { };
24
25   sops.templates.lemmy-prod.content = builtins.toJSON
26     (config.services.lemmy-prod.settings // {
27       setup = config.services.lemmy-prod.settings.setup // {
28         admin_password = config.sops.placeholder."lemmy/initial_admin_password";
29       };
30     });
31
32   systemd.services.lemmy-prod = {
33     serviceConfig = {
34       User = "lemmy";
35       Group = "lemmy";
36       LoadCredential = ''lemmy-prod:${config.sops.templates.lemmy-prod.path}'';
37     };
38
39     environment = {
40       LEMMY_CONFIG_LOCATION = lib.mkForce "%d/lemmy-prod";
41       RUST_BACKTRACE = "full";
42       LEMMY_DATABASE_URL =
43         pkgs.lib.mkForce "postgres:///lemmy?host=/run/postgresql&user=lemmy";
44     };
45   };
46
47   networking.firewall.allowedTCPPorts = [ 80 ];
48 }