69 lines
1.6 KiB
Nix
69 lines
1.6 KiB
Nix
{ config, pkgs, ... }:
|
|
|
|
let
|
|
data = import ../../data.nix;
|
|
in
|
|
{
|
|
imports = [
|
|
./hardware-configuration.nix
|
|
./networking.nix # generated at runtime by nixos-infect
|
|
./mail-accounts.nix
|
|
../modules/common.nix
|
|
../modules/nix.nix
|
|
../modules/nginx.nix
|
|
];
|
|
|
|
boot.cleanTmpDir = true;
|
|
zramSwap.enable = true;
|
|
networking.hostName = "magenta";
|
|
|
|
services.openssh.enable = true;
|
|
users.users.root.openssh.authorizedKeys.keys = data.publicKeys.users.jan;
|
|
|
|
security.acme = {
|
|
acceptTerms = true;
|
|
defaults.email = "dmitriy@pleshevski.ru";
|
|
};
|
|
|
|
# See: https://nixos-mailserver.readthedocs.io/en/latest/options.html
|
|
mailserver = {
|
|
enable = true;
|
|
fqdn = "mail.pleshevski.ru";
|
|
domains = [ "pleshevski.ru" ];
|
|
|
|
# Use Let's Encrypt certificates. Note that this needs to set up a stripped
|
|
# down nginx and opens port 80.
|
|
certificateScheme = 3;
|
|
|
|
hierarchySeparator = "/";
|
|
};
|
|
|
|
services.postgresql = {
|
|
enable = true;
|
|
package = pkgs.postgresql_14;
|
|
};
|
|
|
|
services.gitea = {
|
|
enable = true;
|
|
httpPort = 9901;
|
|
domain = "nix-git.pleshevski.ru";
|
|
rootUrl = "https://nix-git.pleshevski.ru";
|
|
database = {
|
|
type = "postgres";
|
|
host = "/run/postgresql";
|
|
port = config.services.postgresql.port;
|
|
};
|
|
settings = {
|
|
log.LEVEL = "Error";
|
|
service.DISABLE_REGISTRATION = true;
|
|
metrics.ENABLED = true;
|
|
server.DISABLE_ROUTER_LOG = true;
|
|
};
|
|
};
|
|
|
|
services.nginx.virtualHosts."nix-git.pleshevski.ru" = {
|
|
enableACME = true;
|
|
forceSSL = true;
|
|
locations."/".proxyPass = "http://localhost:${toString config.services.gitea.httpPort}/";
|
|
};
|
|
}
|