2022-07-30 15:01:21 +02:00
|
|
|
# Deployed services
|
|
|
|
{ config, lib, ... }:
|
|
|
|
let
|
|
|
|
secrets = config.sops.secrets;
|
|
|
|
in
|
|
|
|
{
|
2022-11-29 19:02:01 +01:00
|
|
|
sops.secrets."acme/inwx" = { };
|
2023-01-29 15:23:12 +01:00
|
|
|
sops.secrets."borgbackup/password" = { };
|
2023-02-05 19:04:16 +01:00
|
|
|
sops.secrets."borgbackup/ssh_key" = { };
|
2022-11-29 19:02:01 +01:00
|
|
|
sops.secrets."sso/auth-key" = { };
|
|
|
|
sops.secrets."sso/felix/password-hash" = { };
|
|
|
|
sops.secrets."sso/felix/totp-secret" = { };
|
|
|
|
sops.secrets."paperless/password" = { };
|
2022-12-25 12:24:28 +01:00
|
|
|
sops.secrets."nextcloud/password" = {
|
|
|
|
owner = config.users.users.nextcloud.name;
|
|
|
|
};
|
2022-12-25 12:24:54 +01:00
|
|
|
sops.secrets."freshrss/password" = {
|
|
|
|
owner = config.users.users.freshrss.name;
|
|
|
|
};
|
2022-12-25 12:24:28 +01:00
|
|
|
sops.secrets."photoprism/password" = { };
|
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;
|
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;
|
|
|
|
};
|
|
|
|
# music streaming server
|
|
|
|
navidrome = {
|
|
|
|
enable = true;
|
|
|
|
musicFolder = "/srv/data/music";
|
|
|
|
};
|
|
|
|
# self-hosted cloud
|
|
|
|
nextcloud = {
|
|
|
|
enable = true;
|
|
|
|
passwordFile = secrets."nextcloud/password".path;
|
|
|
|
};
|
|
|
|
# document management system
|
|
|
|
paperless = {
|
|
|
|
enable = true;
|
|
|
|
passwordFile = secrets."paperless/password".path;
|
|
|
|
extraConfig.PAPERLESS_ADMIN_USER = "felix";
|
|
|
|
};
|
2022-12-25 12:24:54 +01:00
|
|
|
# RSS aggregator and reader
|
|
|
|
freshrss = {
|
|
|
|
enable = true;
|
|
|
|
defaultUser = "felix";
|
|
|
|
baseUrl = "https://news.buehler.rocks";
|
|
|
|
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;
|
|
|
|
};
|
2022-12-25 12:24:28 +01:00
|
|
|
# self-hosted photo gallery
|
|
|
|
photoprism = {
|
|
|
|
enable = true;
|
|
|
|
passwordFile = secrets."photoprism/password".path;
|
|
|
|
originalsPath = "/srv/data/photos";
|
2023-01-15 12:18:37 +01:00
|
|
|
settings = {
|
2022-12-25 12:24:28 +01:00
|
|
|
PHOTOPRISM_ADMIN_USER = "felix";
|
2023-01-15 12:18:37 +01:00
|
|
|
PHOTOPRISM_SPONSOR = "true";
|
2022-12-25 12:24:28 +01:00
|
|
|
};
|
|
|
|
};
|
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;
|
|
|
|
};
|
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
|
|
|
};
|
|
|
|
}
|