| 
									
										
										
										
											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 | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2023-11-12 23:36:30 +01:00
										 |  |  |   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; | 
					
						
							| 
									
										
										
										
											2023-09-05 22:45:08 +02:00
										 |  |  |       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; | 
					
						
							|  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2024-03-17 12:11:50 +01:00
										 |  |  |     # remote build | 
					
						
							|  |  |  |     remote-build.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 | 
					
						
							| 
									
										
										
										
											2023-04-07 22:41:11 +02:00
										 |  |  |     # minecraft-server = { | 
					
						
							|  |  |  |     #   enable = true; | 
					
						
							|  |  |  |     # }; | 
					
						
							| 
									
										
										
										
											2022-11-29 19:02:01 +01:00
										 |  |  |     # music streaming server | 
					
						
							|  |  |  |     navidrome = { | 
					
						
							|  |  |  |       enable = true; | 
					
						
							| 
									
										
										
										
											2023-10-16 23:12:26 +02:00
										 |  |  |       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; | 
					
						
							| 
									
										
										
										
											2024-06-01 18:44:04 +02:00
										 |  |  |       settings.PAPERLESS_ADMIN_USER = "felix"; | 
					
						
							| 
									
										
										
										
											2023-10-16 23:12:26 +02:00
										 |  |  |       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; | 
					
						
							|  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2022-12-25 12:24:28 +01:00
										 |  |  |     # self-hosted photo gallery | 
					
						
							|  |  |  |     photoprism = { | 
					
						
							|  |  |  |       enable = true; | 
					
						
							|  |  |  |       passwordFile = secrets."photoprism/password".path; | 
					
						
							| 
									
										
										
										
											2023-10-16 23:12:26 +02:00
										 |  |  |       originalsPath = "/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; | 
					
						
							|  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2023-04-07 22:40:51 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     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; | 
					
						
							|  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2023-04-07 22:40:51 +02:00
										 |  |  |     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
										 |  |  |   }; | 
					
						
							|  |  |  | } |