summaryrefslogtreecommitdiff
path: root/modules/server/virtualisation
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-09-23 01:14:56 -0700
committerFuwn <[email protected]>2024-09-23 01:14:56 -0700
commitc0110b440d96cf6fcf7ecf0bdf337ffe7d032f81 (patch)
tree6e79d7ddfa1d427f36b21f4551e2f9c321c924bf /modules/server/virtualisation
parentserver: remove beszel (diff)
downloadnixos-config-c0110b440d96cf6fcf7ecf0bdf337ffe7d032f81.tar.xz
nixos-config-c0110b440d96cf6fcf7ecf0bdf337ffe7d032f81.zip
refactor(server): move containers to module
Diffstat (limited to 'modules/server/virtualisation')
-rw-r--r--modules/server/virtualisation/containers/beszel-agent.nix15
-rw-r--r--modules/server/virtualisation/containers/beszel.nix8
-rw-r--r--modules/server/virtualisation/containers/default.nix15
-rw-r--r--modules/server/virtualisation/containers/gigi.nix8
-rw-r--r--modules/server/virtualisation/containers/litterbox.nix7
-rw-r--r--modules/server/virtualisation/containers/locus.nix17
-rw-r--r--modules/server/virtualisation/containers/mayu.nix8
-rw-r--r--modules/server/virtualisation/containers/momoka.nix7
-rw-r--r--modules/server/virtualisation/containers/pounce.nix9
-rw-r--r--modules/server/virtualisation/containers/september.nix28
-rw-r--r--modules/server/virtualisation/containers/uptime-kuma.nix8
-rw-r--r--modules/server/virtualisation/containers/wastebin.nix8
-rw-r--r--modules/server/virtualisation/default.nix26
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;
+ };
+ };
+}