80 lines
1.5 KiB
Nix
80 lines
1.5 KiB
Nix
![]() |
{lib, ...}: let
|
||
|
inherit (lib) mkEnableOption mkModule;
|
||
|
in {
|
||
|
imports = [
|
||
|
./bincache.nix
|
||
|
./databases.nix
|
||
|
./monitoring.nix
|
||
|
./networking.nix
|
||
|
./social.nix
|
||
|
];
|
||
|
|
||
|
options.modules.system = {
|
||
|
services = {
|
||
|
mailserver.enable = mkEnableOption "nixos-mailserver service";
|
||
|
mkm.enable = mkEnableOption "mkm-ticketing service";
|
||
|
|
||
|
nextcloud = mkModule {
|
||
|
name = "Nextcloud";
|
||
|
type = "cloud storage";
|
||
|
};
|
||
|
|
||
|
nginx = mkModule {
|
||
|
name = "Nginx";
|
||
|
type = "webserver";
|
||
|
};
|
||
|
|
||
|
vaultwarden = mkModule {
|
||
|
name = "Vaultwarden";
|
||
|
type = "password manager";
|
||
|
port = 8222;
|
||
|
host = "127.0.0.1";
|
||
|
};
|
||
|
|
||
|
forgejo = mkModule {
|
||
|
name = "Forgejo";
|
||
|
type = "forge";
|
||
|
port = 7000;
|
||
|
};
|
||
|
|
||
|
quassel = mkModule {
|
||
|
name = "Quassel";
|
||
|
type = "IRC";
|
||
|
port = 4242;
|
||
|
};
|
||
|
|
||
|
jellyfin = mkModule {
|
||
|
name = "Jellyfin";
|
||
|
type = "media";
|
||
|
port = 8096;
|
||
|
};
|
||
|
|
||
|
searxng = mkModule {
|
||
|
name = "Searxng";
|
||
|
type = "meta search engine";
|
||
|
port = 8888;
|
||
|
};
|
||
|
|
||
|
miniflux = mkModule {
|
||
|
name = "Miniflux";
|
||
|
type = "RSS reader";
|
||
|
};
|
||
|
|
||
|
reposilite = mkModule {
|
||
|
name = "Reposilite";
|
||
|
port = 8084;
|
||
|
};
|
||
|
|
||
|
elasticsearch = mkModule {
|
||
|
name = "Elasticsearch";
|
||
|
port = 9200;
|
||
|
};
|
||
|
|
||
|
kanidm = mkModule {
|
||
|
name = "Kanidm";
|
||
|
port = 8443;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|