diff options
| author | Fuwn <[email protected]> | 2024-09-23 01:14:56 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-09-23 01:14:56 -0700 |
| commit | c0110b440d96cf6fcf7ecf0bdf337ffe7d032f81 (patch) | |
| tree | 6e79d7ddfa1d427f36b21f4551e2f9c321c924bf /modules/server | |
| parent | server: remove beszel (diff) | |
| download | nixos-config-c0110b440d96cf6fcf7ecf0bdf337ffe7d032f81.tar.xz nixos-config-c0110b440d96cf6fcf7ecf0bdf337ffe7d032f81.zip | |
refactor(server): move containers to module
Diffstat (limited to 'modules/server')
| -rw-r--r-- | modules/server/default.nix | 2 | ||||
| -rw-r--r-- | modules/server/virtualisation.nix | 139 | ||||
| -rw-r--r-- | modules/server/virtualisation/containers/beszel-agent.nix | 15 | ||||
| -rw-r--r-- | modules/server/virtualisation/containers/beszel.nix | 8 | ||||
| -rw-r--r-- | modules/server/virtualisation/containers/default.nix | 15 | ||||
| -rw-r--r-- | modules/server/virtualisation/containers/gigi.nix | 8 | ||||
| -rw-r--r-- | modules/server/virtualisation/containers/litterbox.nix | 7 | ||||
| -rw-r--r-- | modules/server/virtualisation/containers/locus.nix | 17 | ||||
| -rw-r--r-- | modules/server/virtualisation/containers/mayu.nix | 8 | ||||
| -rw-r--r-- | modules/server/virtualisation/containers/momoka.nix | 7 | ||||
| -rw-r--r-- | modules/server/virtualisation/containers/pounce.nix | 9 | ||||
| -rw-r--r-- | modules/server/virtualisation/containers/september.nix | 28 | ||||
| -rw-r--r-- | modules/server/virtualisation/containers/uptime-kuma.nix | 8 | ||||
| -rw-r--r-- | modules/server/virtualisation/containers/wastebin.nix | 8 | ||||
| -rw-r--r-- | modules/server/virtualisation/default.nix | 26 |
15 files changed, 165 insertions, 140 deletions
diff --git a/modules/server/default.nix b/modules/server/default.nix index 39ae163..82ea21b 100644 --- a/modules/server/default.nix +++ b/modules/server/default.nix @@ -2,11 +2,11 @@ { imports = [ ../core + ./virtualisation ./networking ./sops.nix ./system.nix ./users.nix - ./virtualisation.nix ]; environment.systemPackages = with pkgs; [ diff --git a/modules/server/virtualisation.nix b/modules/server/virtualisation.nix deleted file mode 100644 index a1a7e8e..0000000 --- a/modules/server/virtualisation.nix +++ /dev/null @@ -1,139 +0,0 @@ -{ secrets, config, ... }: -let - inherit (config.modules.server) containerEngine; -in -{ - virtualisation = { - containers.enable = true; - - docker = { - enable = containerEngine == "docker"; - - daemon.settings = { - iptables = false; - }; - }; - - podman = { - enable = containerEngine == "podman"; - dockerCompat = true; - defaultNetwork.settings.dns_enabled = true; - }; - - oci-containers = { - backend = containerEngine; - - containers = { - september = { - image = "fuwn/september"; - autoStart = true; - ports = [ "8084:80" ]; - - environment = { - CONDENSE_LINKS_AT_HEADINGS = "## Quick Links,# Fuwn[.me],## Footer"; - EMBED_IMAGES = "2"; - MATHJAX = "true"; - PLAIN_TEXT_ROUTE = "*.xml,*.txt"; - PRIMARY_COLOUR = "#DCC6BD"; - - HEAD = '' - <script - defer src="https://analytics.fuwn.me/script.js" - data-website-id="e7eae941-140b-48af-b36b-d7c5fea3a493" - ></script> - - <link - rel="icon" - type="image/x-icon" - href="https://avatars.githubusercontent.com/u/99055925?s=200&v=4" - > - ''; - }; - }; - - momoka = { - image = "fuwn/momoka"; - autoStart = true; - ports = [ "70:70" ]; - }; - - gigi = { - image = "fuwn/gigi"; - autoStart = true; - ports = [ "79:79" ]; - volumes = [ "/mnt/docker/gigi:/gigi/.gigi" ]; - }; - - mayu = { - image = "fuwn/mayu"; - autoStart = true; - ports = [ "8098:3000" ]; - volumes = [ "/mnt/docker/mayu:/mayu/data" ]; - }; - - locus = { - image = "ghcr.io/gemrest/locus"; - autoStart = true; - ports = [ "1965:1965" ]; - volumes = [ "/mnt/docker/locus:/locus/.locus" ]; - environment.HEADER_IMAGE = "https://ruu.neocities.org/images/animeHeader.gif"; - environmentFiles = [ config.sops.secrets.finnhub_token.path ]; - - login = { - registry = "ghcr.io"; - username = config.sops.secrets."ghcr/user".path; - passwordFile = config.sops.secrets."ghcr/password".path; - }; - }; - - bin = { - image = "quxfoo/wastebin"; - autoStart = true; - ports = [ "8090:8088" ]; - volumes = [ "/mnt/docker/bin:/root/db" ]; - }; - - pounce = { - image = "fuwn/pounce"; - autoStart = true; - ports = [ "6697:6697" ]; - volumes = [ "/mnt/docker/pounce:/root/.config/pounce" ]; - environment.USER = "fuwn"; - }; - - litterbox = { - image = "fuwn/litterbox"; - autoStart = true; - volumes = [ "/mnt/docker/litterbox:/root/.config/litterbox" ]; - }; - - uptime-kuma = { - image = "louislam/uptime-kuma"; - autoStart = true; - ports = [ "8099:3001" ]; - volumes = [ "/mnt/docker/uptime-kuma:/app/data" ]; - }; - - # beszel = { - # image = "henrygd/beszel"; - # autoStart = true; - # ports = [ "8083:8090" ]; - # volumes = [ "/mnt/docker/beszel:/beszel_data" ]; - # }; - - # beszel-agent = { - # image = "henrygd/beszel-agent"; - # autoStart = true; - # ports = [ "45876:45876" ]; - # volumes = [ "/var/run/docker.sock:/var/run/docker.sock:ro" ]; - # extraOptions = [ "--network=host" ]; - - # environment = { - # PORT = "45876"; - # KEY = "ssh-ed25519 ${secrets.beszel_agent_public_key}"; - # }; - # }; - }; - }; - }; -} diff --git a/modules/server/virtualisation/containers/beszel-agent.nix b/modules/server/virtualisation/containers/beszel-agent.nix new file mode 100644 index 0000000..d92639f --- /dev/null +++ b/modules/server/virtualisation/containers/beszel-agent.nix @@ -0,0 +1,15 @@ +{ secrets, ... }: +{ + virtualisation.oci-containers.containers.beszel-agent = { + image = "henrygd/beszel-agent"; + autoStart = true; + ports = [ "45876:45876" ]; + volumes = [ "/var/run/docker.sock:/var/run/docker.sock:ro" ]; + extraOptions = [ "--network=host" ]; + + environment = { + PORT = "45876"; + KEY = "ssh-ed25519 ${secrets.beszel_agent_public_key}"; + }; + }; +} diff --git a/modules/server/virtualisation/containers/beszel.nix b/modules/server/virtualisation/containers/beszel.nix new file mode 100644 index 0000000..adfb610 --- /dev/null +++ b/modules/server/virtualisation/containers/beszel.nix @@ -0,0 +1,8 @@ +{ + virtualisation.oci-containers.containers.beszel = { + image = "henrygd/beszel"; + autoStart = true; + ports = [ "8083:8090" ]; + volumes = [ "/mnt/docker/beszel:/beszel_data" ]; + }; +} diff --git a/modules/server/virtualisation/containers/default.nix b/modules/server/virtualisation/containers/default.nix new file mode 100644 index 0000000..02acec3 --- /dev/null +++ b/modules/server/virtualisation/containers/default.nix @@ -0,0 +1,15 @@ +{ + imports = [ + # ./beszel-agent.nix + # ./beszel.nix + ./gigi.nix + ./litterbox.nix + ./locus.nix + ./mayu.nix + ./momoka.nix + ./pounce.nix + ./september.nix + ./uptime-kuma.nix + ./wastebin.nix + ]; +} diff --git a/modules/server/virtualisation/containers/gigi.nix b/modules/server/virtualisation/containers/gigi.nix new file mode 100644 index 0000000..a799146 --- /dev/null +++ b/modules/server/virtualisation/containers/gigi.nix @@ -0,0 +1,8 @@ +{ + virtualisation.oci-containers.containers.gigi = { + image = "fuwn/gigi"; + autoStart = true; + ports = [ "79:79" ]; + volumes = [ "/mnt/docker/gigi:/gigi/.gigi" ]; + }; +} diff --git a/modules/server/virtualisation/containers/litterbox.nix b/modules/server/virtualisation/containers/litterbox.nix new file mode 100644 index 0000000..5a64468 --- /dev/null +++ b/modules/server/virtualisation/containers/litterbox.nix @@ -0,0 +1,7 @@ +{ + virtualisation.oci-containers.containers.litterbox = { + image = "fuwn/litterbox"; + autoStart = true; + volumes = [ "/mnt/docker/litterbox:/root/.config/litterbox" ]; + }; +} diff --git a/modules/server/virtualisation/containers/locus.nix b/modules/server/virtualisation/containers/locus.nix new file mode 100644 index 0000000..87ffde7 --- /dev/null +++ b/modules/server/virtualisation/containers/locus.nix @@ -0,0 +1,17 @@ +{ config, ... }: +{ + virtualisation.oci-containers.containers.locus = { + image = "ghcr.io/gemrest/locus"; + autoStart = true; + ports = [ "1965:1965" ]; + volumes = [ "/mnt/docker/locus:/locus/.locus" ]; + environment.HEADER_IMAGE = "https://ruu.neocities.org/images/animeHeader.gif"; + environmentFiles = [ config.sops.secrets.finnhub_token.path ]; + + login = { + registry = "ghcr.io"; + username = config.sops.secrets."ghcr/user".path; + passwordFile = config.sops.secrets."ghcr/password".path; + }; + }; +} diff --git a/modules/server/virtualisation/containers/mayu.nix b/modules/server/virtualisation/containers/mayu.nix new file mode 100644 index 0000000..2cab258 --- /dev/null +++ b/modules/server/virtualisation/containers/mayu.nix @@ -0,0 +1,8 @@ +{ + virtualisation.oci-containers.containers.mayu = { + image = "fuwn/mayu"; + autoStart = true; + ports = [ "8098:3000" ]; + volumes = [ "/mnt/docker/mayu:/mayu/data" ]; + }; +} diff --git a/modules/server/virtualisation/containers/momoka.nix b/modules/server/virtualisation/containers/momoka.nix new file mode 100644 index 0000000..7dac3e7 --- /dev/null +++ b/modules/server/virtualisation/containers/momoka.nix @@ -0,0 +1,7 @@ +{ + virtualisation.oci-containers.containers.momoka = { + image = "fuwn/momoka"; + autoStart = true; + ports = [ "70:70" ]; + }; +} diff --git a/modules/server/virtualisation/containers/pounce.nix b/modules/server/virtualisation/containers/pounce.nix new file mode 100644 index 0000000..600790f --- /dev/null +++ b/modules/server/virtualisation/containers/pounce.nix @@ -0,0 +1,9 @@ +{ + virtualisation.oci-containers.containers.pounce = { + image = "fuwn/pounce"; + autoStart = true; + ports = [ "6697:6697" ]; + volumes = [ "/mnt/docker/pounce:/root/.config/pounce" ]; + environment.USER = "fuwn"; + }; +} diff --git a/modules/server/virtualisation/containers/september.nix b/modules/server/virtualisation/containers/september.nix new file mode 100644 index 0000000..5d8a857 --- /dev/null +++ b/modules/server/virtualisation/containers/september.nix @@ -0,0 +1,28 @@ +{ + virtualisation.oci-containers.containers.september = { + image = "fuwn/september"; + autoStart = true; + ports = [ "8084:80" ]; + + environment = { + CONDENSE_LINKS_AT_HEADINGS = "## Quick Links,# Fuwn[.me],## Footer"; + EMBED_IMAGES = "2"; + MATHJAX = "true"; + PLAIN_TEXT_ROUTE = "*.xml,*.txt"; + PRIMARY_COLOUR = "#DCC6BD"; + + HEAD = '' + <script + defer src="https://analytics.fuwn.me/script.js" + data-website-id="e7eae941-140b-48af-b36b-d7c5fea3a493" + ></script> + + <link + rel="icon" + type="image/x-icon" + href="https://avatars.githubusercontent.com/u/99055925?s=200&v=4" + > + ''; + }; + }; +} diff --git a/modules/server/virtualisation/containers/uptime-kuma.nix b/modules/server/virtualisation/containers/uptime-kuma.nix new file mode 100644 index 0000000..e75c0eb --- /dev/null +++ b/modules/server/virtualisation/containers/uptime-kuma.nix @@ -0,0 +1,8 @@ +{ + virtualisation.oci-containers.containers.uptime-kuma = { + image = "louislam/uptime-kuma"; + autoStart = true; + ports = [ "8099:3001" ]; + volumes = [ "/mnt/docker/uptime-kuma:/app/data" ]; + }; +} diff --git a/modules/server/virtualisation/containers/wastebin.nix b/modules/server/virtualisation/containers/wastebin.nix new file mode 100644 index 0000000..574e0d0 --- /dev/null +++ b/modules/server/virtualisation/containers/wastebin.nix @@ -0,0 +1,8 @@ +{ + virtualisation.oci-containers.containers.bin = { + image = "quxfoo/wastebin"; + autoStart = true; + ports = [ "8090:8088" ]; + volumes = [ "/mnt/docker/bin:/root/db" ]; + }; +} diff --git a/modules/server/virtualisation/default.nix b/modules/server/virtualisation/default.nix new file mode 100644 index 0000000..918ecfe --- /dev/null +++ b/modules/server/virtualisation/default.nix @@ -0,0 +1,26 @@ +{ config, ... }: +let + inherit (config.modules.server) containerEngine; +in +{ + imports = [ ./containers ]; + + virtualisation = { + containers.enable = true; + oci-containers.backend = containerEngine; + + docker = { + enable = containerEngine == "docker"; + + daemon.settings = { + iptables = false; + }; + }; + + podman = { + enable = containerEngine == "podman"; + dockerCompat = true; + defaultNetwork.settings.dns_enabled = true; + }; + }; +} |