]> Untitled Git - awful.systems.git/blob - lemmy/prod/default.nix
docs: add database information
[awful.systems.git] / lemmy / prod / default.nix
1 { config, lib, pkgs, pkgs-unstable, lemmy, lemmy-ui, ... }:
2
3 {
4   imports = [ ./module.nix ];
5
6   services.lemmy-prod = {
7     enable = true;
8     server.package =
9       lemmy.packages.${pkgs.stdenv.hostPlatform.system}.lemmy-server;
10     ui.package = lemmy-ui.packages.${pkgs.stdenv.hostPlatform.system}.lemmy-ui;
11     nginx.enable = true;
12     database.createLocally = true;
13
14     settings = {
15       hostname = "awful.systems";
16       setup = {
17         admin_username = "self";
18         admin_email = "self@awful.systems";
19         site_name = "awful.systems";
20       };
21     };
22   };
23
24   sops.secrets."lemmy/initial_admin_password" = { };
25   sops.secrets."lemmy/smtp_server" = { };
26   sops.secrets."lemmy/smtp_login" = { };
27   sops.secrets."lemmy/smtp_password" = { };
28   sops.secrets."lemmy/smtp_from_address" = { };
29
30   sops.templates.lemmy-prod.content = builtins.toJSON
31     (config.services.lemmy-prod.settings // {
32       setup = config.services.lemmy-prod.settings.setup // {
33         admin_password = config.sops.placeholder."lemmy/initial_admin_password";
34       };
35
36       email = {
37         smtp_server = config.sops.placeholder."lemmy/smtp_server";
38         smtp_login = config.sops.placeholder."lemmy/smtp_login";
39         smtp_password = config.sops.placeholder."lemmy/smtp_password";
40         smtp_from_address = config.sops.placeholder."lemmy/smtp_from_address";
41         tls_type = "starttls";
42       };
43     });
44
45   systemd.services.lemmy-prod = {
46     serviceConfig = {
47       User = "lemmy";
48       Group = "lemmy";
49       LoadCredential = "lemmy-prod:${config.sops.templates.lemmy-prod.path}";
50     };
51
52     environment = {
53       LEMMY_CONFIG_LOCATION = lib.mkForce "%d/lemmy-prod";
54       RUST_BACKTRACE = "full";
55       LEMMY_DATABASE_URL =
56         pkgs.lib.mkForce "postgres:///lemmy?host=/run/postgresql&user=lemmy";
57     };
58   };
59
60   networking.firewall.allowedTCPPorts = [ 80 ];
61 }