From f66f54312f8d17ede22ce029eacac1e2691cee0d Mon Sep 17 00:00:00 2001
From: Julien Malka <julien.malka@me.com>
Date: Sat, 26 Feb 2022 18:39:09 +0100
Subject: [PATCH] Add a 404 page

---
 modules/nginx/404/index.html | 13 +++++++++
 modules/nginx/404/main.css   | 55 ++++++++++++++++++++++++++++++++++++
 modules/nginx/default.nix    | 13 ++++++++-
 3 files changed, 80 insertions(+), 1 deletion(-)
 create mode 100644 modules/nginx/404/index.html
 create mode 100644 modules/nginx/404/main.css

diff --git a/modules/nginx/404/index.html b/modules/nginx/404/index.html
new file mode 100644
index 0000000..0728bc9
--- /dev/null
+++ b/modules/nginx/404/index.html
@@ -0,0 +1,13 @@
+<html>
+
+
+<link rel="stylesheet" href="main.css">
+<link href="http://fonts.cdnfonts.com/css/courgette" rel="stylesheet">
+<body>
+
+
+<div class="number">404</div>
+<div class="text"><span>Ooops...</span><br>page not found</div>
+</body>
+</html>
+
diff --git a/modules/nginx/404/main.css b/modules/nginx/404/main.css
new file mode 100644
index 0000000..682c16b
--- /dev/null
+++ b/modules/nginx/404/main.css
@@ -0,0 +1,55 @@
+body {
+  display: flex;
+  flex-flow: row wrap;
+  align-content: center;
+  justify-content: center;
+  position:absolute;
+  top:50%;
+  left:50%;
+  transform: translate(-50%, -50%);
+}
+
+div {
+  width: 100%;
+  text-align: center;
+}
+
+.number {
+  background: #fff;
+  position: relative;
+  font: 900 30vmin "Consolas";
+  letter-spacing: 5vmin;
+  text-shadow: 2px -1px 0 #000, 4px -2px 0 #0a0a0a, 6px -3px 0 #0f0f0f, 8px -4px 0 #141414, 10px -5px 0 #1a1a1a, 12px -6px 0 #1f1f1f, 14px -7px 0 #242424, 16px -8px 0 #292929;
+}
+.number::before {
+  background-color: #673ab7;
+  background-image: radial-gradient(closest-side at 50% 50%, #ffc107 100%, rgba(0, 0, 0, 0)), radial-gradient(closest-side at 50% 50%, #e91e63 100%, rgba(0, 0, 0, 0));
+  background-repeat: repeat-x;
+  background-size: 40vmin 40vmin;
+  background-position: -100vmin 20vmin, 100vmin -25vmin;
+  width: 100%;
+  height: 100%;
+  mix-blend-mode: screen;
+  -webkit-animation: moving 10s linear infinite both;
+          animation: moving 10s linear infinite both;
+  display: block;
+  position: absolute;
+  content: "";
+}
+@-webkit-keyframes moving {
+  to {
+    background-position: 100vmin 20vmin, -100vmin -25vmin;
+  }
+}
+@keyframes moving {
+  to {
+    background-position: 100vmin 20vmin, -100vmin -25vmin;
+  }
+}
+
+.text {
+  font: 400 5vmin "Courgette";
+}
+.text span {
+  font-size: 10vmin;
+}
diff --git a/modules/nginx/default.nix b/modules/nginx/default.nix
index 6a9cd62..b7c9d4e 100644
--- a/modules/nginx/default.nix
+++ b/modules/nginx/default.nix
@@ -1,7 +1,8 @@
 { lib, pkgs, config, ... }:
 with lib;
 let cfg = config.luj.nginx;
-in {
+in
+{
 
   options.luj.nginx = {
     enable = mkEnableOption "activate nginx service";
@@ -30,5 +31,15 @@ in {
       '';
     };
 
+    services.nginx.virtualHosts."404.julienmalka.me" = {
+      default = true;
+      locations."/" = {
+        root = "${./404}";
+      };
+    };
+
+
+
+
   };
 }