]> Untitled Git - awful.systems.git/blob - lemmy/staging/default.nix
fix federation between lemmy and other activitypub services
[awful.systems.git] / lemmy / staging / default.nix
1 { config, lib, pkgs, pkgs-unstable, ... }:
2
3 {
4   imports = [ ./module.nix ];
5
6   services.lemmy-staging = {
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 = "breaking.awful.systems";
15       setup = {
16         admin_username = "self";
17         admin_email = "self@awful.systems";
18         site_name = "a.s staging";
19       };
20       database = {
21         user = "lemmy_staging";
22         database = "lemmy_staging";
23       };
24     };
25   };
26
27   sops.secrets."lemmy-staging/initial_admin_password" = { };
28   sops.secrets."lemmy-staging/smtp_server" = { };
29   sops.secrets."lemmy-staging/smtp_login" = { };
30   sops.secrets."lemmy-staging/smtp_password" = { };
31   sops.secrets."lemmy-staging/smtp_from_address" = { };
32
33   sops.templates.lemmy-staging.content = builtins.toJSON
34     (config.services.lemmy-staging.settings // {
35       setup = config.services.lemmy-staging.settings.setup // {
36         admin_password = config.sops.placeholder."lemmy-staging/initial_admin_password";
37       };
38
39       # email = {
40       #   smtp_server = config.sops.placeholder."lemmy-staging/smtp_server";
41       #   smtp_login = config.sops.placeholder."lemmy-staging/smtp_login";
42       #   smtp_password = config.sops.placeholder."lemmy-staging/smtp_password";
43       #   smtp_from_address = config.sops.placeholder."lemmy-staging/smtp_from_address";
44       #   tls_type = "starttls";
45       # };
46     });
47
48   systemd.services.lemmy-staging = {
49     serviceConfig = {
50       User = "lemmy_staging";
51       Group = "lemmy_staging";
52       LoadCredential =
53         "lemmy-staging:${config.sops.templates.lemmy-staging.path}";
54     };
55
56     environment = {
57       LEMMY_CONFIG_LOCATION = lib.mkForce "%d/lemmy-staging";
58       RUST_BACKTRACE = "full";
59       LEMMY_DATABASE_URL = pkgs.lib.mkForce
60         "postgres:///lemmy_staging?host=/run/postgresql&user=lemmy_staging";
61     };
62   };
63
64   networking.firewall.allowedTCPPorts = [ 80 ];
65 }