loptland: more modules
This commit is contained in:
parent
82f7af3856
commit
c863aa7354
4 changed files with 90 additions and 19 deletions
|
|
@ -50,7 +50,6 @@
|
|||
defaultSopsFile = ../../../secrets/secrets.yaml;
|
||||
defaultSopsFormat = "yaml";
|
||||
|
||||
# age.keyFile = "/home/cholli/.config/sops/age/keys.txt";
|
||||
age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -14,8 +14,8 @@ in
|
|||
...
|
||||
}:
|
||||
let
|
||||
domainName = "christophhollizeck.dev";
|
||||
sopsFile = ../../../secrets/secrets-loptland.yaml;
|
||||
|
||||
in
|
||||
{
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
|
@ -31,6 +31,7 @@ in
|
|||
base
|
||||
server
|
||||
hydra
|
||||
forgejo
|
||||
factorio-server
|
||||
|
||||
# apps
|
||||
|
|
@ -55,19 +56,16 @@ in
|
|||
|
||||
];
|
||||
|
||||
sops = {
|
||||
secrets = {
|
||||
"forgejo/db/password" = {
|
||||
inherit sopsFile;
|
||||
};
|
||||
"forgejo/mail/password" = {
|
||||
inherit sopsFile;
|
||||
};
|
||||
"forgejo/mail/passwordHash" = {
|
||||
inherit sopsFile;
|
||||
};
|
||||
};
|
||||
services.tailscale = {
|
||||
enable = true;
|
||||
useRoutingFeatures = "client";
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
3000
|
||||
80
|
||||
443
|
||||
];
|
||||
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,8 +8,6 @@
|
|||
}:
|
||||
let
|
||||
domainName = "christophhollizeck.dev";
|
||||
forgejoPort = 3000;
|
||||
hydraPort = 2000;
|
||||
in
|
||||
{
|
||||
services.nginx = {
|
||||
|
|
@ -17,7 +15,7 @@
|
|||
recommendedProxySettings = true;
|
||||
|
||||
virtualHosts = {
|
||||
"git.${domainName}" = {
|
||||
"git.${domainName}" = lib.mkIf config.services.forgejo.enable {
|
||||
forceSSL = true;
|
||||
useACMEHost = domainName;
|
||||
|
||||
|
|
@ -25,7 +23,7 @@
|
|||
extraConfig = ''
|
||||
client_max_body_size 200M;
|
||||
'';
|
||||
proxyPass = "http://localhost:${toString forgejoPort}/";
|
||||
proxyPass = "http://localhost:${toString 3000}/";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -34,7 +32,7 @@
|
|||
useACMEHost = domainName;
|
||||
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:${toString hydraPort}/";
|
||||
proxyPass = "http://localhost:${toString config.services.hydra.port}/";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
76
modules/server/forgejo.nix
Normal file
76
modules/server/forgejo.nix
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
{
|
||||
flake.modules.nixos.forgejo =
|
||||
{ config, inputs, ... }:
|
||||
let
|
||||
domainName = "christophhollizeck.dev";
|
||||
forgejoPort = 3000;
|
||||
sopsFile = ../../secrets/secrets-loptland.yaml;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
inputs.simple-nixos-mailserver.nixosModules.default
|
||||
];
|
||||
|
||||
sops = {
|
||||
secrets = {
|
||||
"forgejo/db/password" = {
|
||||
inherit sopsFile;
|
||||
};
|
||||
"forgejo/mail/password" = {
|
||||
inherit sopsFile;
|
||||
};
|
||||
"forgejo/mail/passwordHash" = {
|
||||
inherit sopsFile;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.forgejo = {
|
||||
enable = true;
|
||||
database.type = "postgres";
|
||||
lfs.enable = true;
|
||||
database = {
|
||||
passwordFile = config.sops.secrets."forgejo/db/password".path;
|
||||
};
|
||||
|
||||
settings = {
|
||||
server = {
|
||||
DOMAIN = "git.${domainName}";
|
||||
ROOT_URL = "https://git.${domainName}";
|
||||
HTTP_PORT = forgejoPort;
|
||||
};
|
||||
|
||||
mailer = {
|
||||
ENABLED = true;
|
||||
PROTOCOL = "smtps";
|
||||
FROM = "no-reply@${domainName}";
|
||||
SMTP_ADDR = "mail.${domainName}";
|
||||
USER = "forgejo@${domainName}";
|
||||
};
|
||||
|
||||
service.DISABLE_REGISTRATION = true;
|
||||
};
|
||||
|
||||
secrets = {
|
||||
mailer.PASSWD = config.sops.secrets."forgejo/mail/password".path;
|
||||
};
|
||||
};
|
||||
|
||||
mailserver = {
|
||||
enable = true;
|
||||
fqdn = "mail.${domainName}";
|
||||
domains = [ domainName ];
|
||||
|
||||
loginAccounts = {
|
||||
"forgejo@${domainName}" = {
|
||||
hashedPasswordFile = config.sops.secrets."forgejo/mail/passwordHash".path;
|
||||
aliases = [ "no-reply@${domainName}" ];
|
||||
};
|
||||
};
|
||||
|
||||
certificateScheme = "acme-nginx";
|
||||
stateVersion = 3;
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue