diff --git a/machines/renge/configuration.nix b/machines/renge/configuration.nix
index d86b859..53c9fcf 100644
--- a/machines/renge/configuration.nix
+++ b/machines/renge/configuration.nix
@@ -17,6 +17,7 @@
./services/matrix
./services/murmur.nix
./services/nitter.nix
+ ./services/onlypain.icu
./services/prometheus.nix
./services/sbruder.xyz
];
diff --git a/machines/renge/services/onlypain.icu/default.nix b/machines/renge/services/onlypain.icu/default.nix
new file mode 100644
index 0000000..4bc9cce
--- /dev/null
+++ b/machines/renge/services/onlypain.icu/default.nix
@@ -0,0 +1,21 @@
+{ pkgs, ... }:
+
+{
+ services.nginx.virtualHosts = {
+ "onlypain.icu" = {
+ forceSSL = true;
+ enableACME = true;
+
+ root = ./.;
+
+ locations = {
+ "/imprint/".alias = "${pkgs.sbruder.imprint}/";
+ };
+ };
+ "www.onlypain.icu" = {
+ forceSSL = true;
+ enableACME = true;
+ globalRedirect = "onlypain.icu";
+ };
+ };
+}
diff --git a/machines/renge/services/onlypain.icu/index.html b/machines/renge/services/onlypain.icu/index.html
new file mode 100644
index 0000000..c665d24
--- /dev/null
+++ b/machines/renge/services/onlypain.icu/index.html
@@ -0,0 +1,22 @@
+
+
+
+ OnlyPain – Deutsch-Abitur
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/machines/renge/services/onlypain.icu/logo.svg b/machines/renge/services/onlypain.icu/logo.svg
new file mode 100644
index 0000000..8aac0b6
--- /dev/null
+++ b/machines/renge/services/onlypain.icu/logo.svg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a6aa2d2fe5aebabab92853f022d99f96a3366c42f6ffa977cb6a0882db9da92f
+size 11884
diff --git a/machines/renge/services/onlypain.icu/script.js b/machines/renge/services/onlypain.icu/script.js
new file mode 100644
index 0000000..d4e1eac
--- /dev/null
+++ b/machines/renge/services/onlypain.icu/script.js
@@ -0,0 +1,14 @@
+document.addEventListener("DOMContentLoaded", () => {
+ let countdown = 5
+ let el = document.querySelector("#countdown")
+
+ const loop = () => {
+ if (countdown == 0) {
+ document.location = "https://www.pearson.de/abiturpruefung-bayern-2022-deutsch-9783849052010"
+ }
+ el.innerHTML = countdown--
+ }
+
+ loop()
+ setInterval(loop, 1000)
+})
diff --git a/machines/renge/services/onlypain.icu/style.css b/machines/renge/services/onlypain.icu/style.css
new file mode 100644
index 0000000..173639c
--- /dev/null
+++ b/machines/renge/services/onlypain.icu/style.css
@@ -0,0 +1,46 @@
+body {
+ font-family: Roboto, sans-serif;
+}
+
+main {
+ position: absolute;
+ top: 0px;
+ bottom: 0px;
+ left: 0px;
+ right: 0px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+}
+
+#logo {
+ width: 80vw;
+}
+
+#countdown {
+ margin-top: 1em;
+ font-size: 24px;
+ font-style: bold;
+ text-align: center;
+}
+
+footer {
+ position: absolute;
+ bottom: 0px;
+ left: 0px;
+ right: 0px;
+}
+
+footer ul {
+ list-style: none;
+ text-align: center;
+}
+
+footer ul li {
+ display: inline;
+}
+
+footer ul li:not(:first-child)::before {
+ content: "· "
+}
diff --git a/users/simon/modules/programs.nix b/users/simon/modules/programs.nix
index e0f2a53..8fd6aed 100644
--- a/users/simon/modules/programs.nix
+++ b/users/simon/modules/programs.nix
@@ -182,6 +182,7 @@ in
qalculate-gtk # flexible calculator
remmina # remote desktop client
scrcpy # stream/control android phones over adb
+ v4l-utils # video4linux configuration
wev # wayland event monitor
wl-clipboard # not really gui, but cli tool to manage wayland clipboard
xfce.thunar # graphical file manager