nixos/machines/newton/services.nix

163 lines
3.7 KiB
Nix
Raw Normal View History

2022-07-30 15:01:21 +02:00
# Deployed services
2023-11-07 22:00:00 +01:00
{ config, ... }:
2022-07-30 15:01:21 +02:00
let
2023-11-07 23:13:51 +01:00
inherit (config.sops) secrets;
2022-07-30 15:01:21 +02:00
in
{
sops.secrets = {
"acme/inwx" = { };
"borgbackup/password" = { };
"borgbackup/ssh_key" = { };
"sso/auth-key" = { };
"sso/felix/password-hash" = { };
"sso/felix/totp-secret" = { };
"paperless/password" = { };
"nextcloud/password" = {
owner = config.users.users.nextcloud.name;
};
"nextcloud-exporter/password" = {
owner = config.users.users.nextcloud-exporter.name;
};
"freshrss/password" = {
owner = config.users.users.freshrss.name;
};
"photoprism/password" = { };
"grafana/password" = {
owner = config.users.users.grafana.name;
};
"matrix-bot/password" = {
owner = config.systemd.services.go-neb.serviceConfig.User;
};
2023-05-15 22:09:17 +02:00
};
2022-11-29 19:02:01 +01:00
2022-07-30 15:01:21 +02:00
# List services that you want to enable:
my.services = {
2023-01-29 15:23:12 +01:00
backup = {
enable = true;
OnFailureMail = "server@buehler.rocks";
passwordFile = secrets."borgbackup/password".path;
2023-02-05 19:04:16 +01:00
sshKeyFile = secrets."borgbackup/ssh_key".path;
paths = [ "/" ];
2023-01-29 15:23:12 +01:00
};
2022-11-29 19:02:01 +01:00
# My own personal homepage
homepage = {
enable = true;
};
# Dashboard
homer = {
enable = true;
};
2022-07-30 15:01:21 +02:00
# RSS provider for websites that do not provide any feeds
2022-11-29 19:02:01 +01:00
rss-bridge = {
enable = true;
};
# voice-chat server
mumble-server = {
enable = true;
};
# sandbox video game
# minecraft-server = {
# enable = true;
# };
2022-11-29 19:02:01 +01:00
# music streaming server
navidrome = {
enable = true;
musicFolder = "/data/music";
2022-11-29 19:02:01 +01:00
};
# self-hosted cloud
nextcloud = {
enable = true;
passwordFile = secrets."nextcloud/password".path;
2023-04-16 18:15:53 +02:00
exporterPasswordFile = secrets."nextcloud-exporter/password".path;
2022-11-29 19:02:01 +01:00
};
# document management system
paperless = {
enable = true;
passwordFile = secrets."paperless/password".path;
extraConfig.PAPERLESS_ADMIN_USER = "felix";
mediaDir = "/data/docs";
2022-11-29 19:02:01 +01:00
};
2022-12-25 12:24:54 +01:00
# RSS aggregator and reader
freshrss = {
enable = true;
defaultUser = "felix";
passwordFile = secrets."freshrss/password".path;
};
2022-11-29 19:02:01 +01:00
# self-hosted git service
gitea = {
enable = true;
};
# collaborative markdown editor
hedgedoc = {
enable = true;
};
# a password-generator using the marokov model
passworts = {
enable = true;
};
# self-hosted photo gallery
photoprism = {
enable = true;
passwordFile = secrets."photoprism/password".path;
originalsPath = "/data/photos";
2023-01-15 12:18:37 +01:00
settings = {
PHOTOPRISM_ADMIN_USER = "felix";
2023-01-15 12:18:37 +01:00
PHOTOPRISM_SPONSOR = "true";
};
};
2022-11-29 19:02:01 +01:00
ssh-server = {
enable = true;
};
2023-02-15 21:17:09 +01:00
initrd-ssh = {
enable = true;
};
2022-12-25 12:07:38 +01:00
# self-hosted recipe manager
tandoor-recipes = {
enable = true;
};
prometheus = {
enable = true;
};
2023-04-27 23:12:00 +02:00
alertmanager = {
enable = true;
};
2023-05-15 22:09:17 +02:00
matrix-bot = {
enable = true;
PasswortFile = secrets."matrix-bot/password".path;
};
grafana = {
enable = true;
passwordFile = secrets."grafana/password".path;
};
2023-04-09 23:07:29 +02:00
loki = {
enable = true;
};
2023-04-09 23:07:39 +02:00
promtail = {
enable = true;
};
2023-06-25 21:25:55 +02:00
blackbox = {
enable = true;
};
2022-11-29 19:02:01 +01:00
# Webserver
nginx = {
enable = true;
acme = {
credentialsFile = secrets."acme/inwx".path;
};
sso = {
authKeyFile = secrets."sso/auth-key".path;
users = {
felix = {
passwordHashFile = secrets."sso/felix/password-hash".path;
totpSecretFile = secrets."sso/felix/totp-secret".path;
};
};
groups = {
root = [ "felix" ];
};
};
};
2022-07-30 15:01:21 +02:00
};
}