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/virtualisation | |
| 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/virtualisation')
13 files changed, 164 insertions, 0 deletions
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; + }; + }; +} |