summaryrefslogtreecommitdiff
path: root/jobs
diff options
context:
space:
mode:
Diffstat (limited to 'jobs')
-rw-r--r--jobs/faeltkullen.nomad.hcl63
-rw-r--r--jobs/raytracer.nomad.hcl63
-rw-r--r--jobs/rr.nomad.hcl64
-rw-r--r--jobs/srg/index.html64
-rw-r--r--jobs/srg/srg.nomad.hcl62
5 files changed, 316 insertions, 0 deletions
diff --git a/jobs/faeltkullen.nomad.hcl b/jobs/faeltkullen.nomad.hcl
new file mode 100644
index 0000000..26798da
--- /dev/null
+++ b/jobs/faeltkullen.nomad.hcl
@@ -0,0 +1,63 @@
+job "faeltkullen" {
+ group "web" {
+ network {
+ port "http" {
+ to = 80
+ }
+ }
+
+ volume "files" {
+ type = "host"
+ source = "static-files"
+ read_only = true
+ }
+
+ service {
+ name = "faeltkullen"
+ port = "http"
+ provider = "nomad"
+
+ tags = [
+ "nginx.hostname=xn--fltkullen-v2a.magnusson.space",
+ "nginx.certname=magnusson.space",
+ ]
+ }
+
+ task "web" {
+ driver = "docker"
+
+ resources {
+ cpu = 50
+ memory = 20
+ }
+
+ volume_mount {
+ volume = "files"
+ destination = "/var/www"
+ }
+
+ config {
+ image = "nginx:1.25-alpine"
+ ports = ["http"]
+
+ volumes = [
+ "local:/etc/nginx/conf.d",
+ ]
+ }
+
+ template {
+ data = <<EOF
+server {
+ listen 80 default_server;
+ listen [::]:80 default_server;
+ http2 on;
+
+ autoindex off;
+ root /var/www/sites/fältkullen;
+}
+EOF
+ destination = "local/website.conf"
+ }
+ }
+ }
+}
diff --git a/jobs/raytracer.nomad.hcl b/jobs/raytracer.nomad.hcl
new file mode 100644
index 0000000..709d91d
--- /dev/null
+++ b/jobs/raytracer.nomad.hcl
@@ -0,0 +1,63 @@
+job "raytracer" {
+ group "web" {
+ network {
+ port "http" {
+ to = 80
+ }
+ }
+
+ volume "files" {
+ type = "host"
+ source = "static-files"
+ read_only = true
+ }
+
+ service {
+ name = "raytracer"
+ port = "http"
+ provider = "nomad"
+
+ tags = [
+ "nginx.hostname=raytracer.magnusson.space",
+ "nginx.certname=magnusson.space",
+ ]
+ }
+
+ task "web" {
+ driver = "docker"
+
+ resources {
+ cpu = 50
+ memory = 20
+ }
+
+ volume_mount {
+ volume = "files"
+ destination = "/var/www"
+ }
+
+ config {
+ image = "nginx:1.25-alpine"
+ ports = ["http"]
+
+ volumes = [
+ "local:/etc/nginx/conf.d",
+ ]
+ }
+
+ template {
+ data = <<EOF
+server {
+ listen 80 default_server;
+ listen [::]:80 default_server;
+ http2 on;
+
+ autoindex off;
+ root /var/www/sites/raytracer;
+}
+EOF
+ destination = "local/website.conf"
+ }
+ }
+ }
+}
diff --git a/jobs/rr.nomad.hcl b/jobs/rr.nomad.hcl
new file mode 100644
index 0000000..032ad03
--- /dev/null
+++ b/jobs/rr.nomad.hcl
@@ -0,0 +1,64 @@
+job "rr" {
+ group "web" {
+ network {
+ port "http" {
+ to = 80
+ }
+ }
+
+ volume "files" {
+ type = "host"
+ source = "static-files"
+ read_only = true
+ }
+
+ service {
+ name = "rr"
+ port = "http"
+ provider = "nomad"
+
+ tags = [
+ "nginx.hostname=rr.magnusson.space",
+ "nginx.certname=magnusson.space",
+ ]
+ }
+
+ task "web" {
+ driver = "docker"
+
+ resources {
+ cpu = 50
+ memory = 20
+ }
+
+ volume_mount {
+ volume = "files"
+ destination = "/var/www"
+ }
+
+ config {
+ image = "nginx:1.25-alpine"
+ ports = ["http"]
+
+ volumes = [
+ "local:/etc/nginx/conf.d",
+ ]
+ }
+
+ template {
+ data = <<EOF
+server {
+ listen 80 default_server;
+ listen [::]:80 default_server;
+ http2 on;
+
+ autoindex off;
+ root /var/www/sites/rr;
+ index index.mp4;
+}
+EOF
+ destination = "local/website.conf"
+ }
+ }
+ }
+}
diff --git a/jobs/srg/index.html b/jobs/srg/index.html
new file mode 100644
index 0000000..189bb7b
--- /dev/null
+++ b/jobs/srg/index.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html lang="sv">
+<head>
+ <meta charset="utf-8" />
+ <title>Särskilda kommandorörselsegruppen</title>
+ <style>
+ * {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ }
+ body {
+ display: grid;
+ place-items: center;
+ min-height: 100vh;
+ background-color: black;
+ color: white;
+ font-family: monospace;
+ }
+ span {
+ position: relative;
+ }
+ .invisible {
+ display: none;
+ }
+ </style>
+</head>
+<body>
+ <h1>Särskilda kommandorörelsegruppen</h1>
+
+ <script>
+ const el = document.querySelector("h1");
+ const text = el.textContent;
+ el.innerHTML = "";
+ const spans = new Array(text.length).fill().map((_, i) => {
+ const span = document.createElement("span");
+ span.innerText = text[i];
+ span.classList.add("invisible");
+ el.appendChild(span);
+ return span;
+ });
+ const underscore = document.createElement("span");
+ const underscoreInner = document.createElement("span");
+ underscoreInner.innerText = "_";
+ underscore.appendChild(underscoreInner);
+ underscore.style.position = "relative";
+ underscoreInner.style.position = "absolute";
+ el.appendChild(underscore);
+ let i = 0;
+ const interval = setInterval(() => {
+ spans[i].classList.remove("invisible");
+
+ i++;
+ if (i >= spans.length) {
+ clearInterval(interval);
+ setTimeout(removeCursor, 200);
+ }
+ }, 100);
+ function removeCursor() {
+ underscore.classList.add("invisible");
+ }
+ </script>
+</body>
+</html>
diff --git a/jobs/srg/srg.nomad.hcl b/jobs/srg/srg.nomad.hcl
new file mode 100644
index 0000000..5b88c66
--- /dev/null
+++ b/jobs/srg/srg.nomad.hcl
@@ -0,0 +1,62 @@
+job "srg" {
+ group "web" {
+ count = 1
+
+ network {
+ port "http" {
+ to = 80
+ }
+ }
+
+ service {
+ name = "srg"
+ port = "http"
+ provider = "nomad"
+
+ tags = [
+ "nginx.hostname=.xn--srskildakommandorrelsegruppen-0pc88c.se",
+ "nginx.certname=xn--srskildakommandorrelsegruppen-0pc88c.se",
+ ]
+ }
+
+ task "web" {
+ driver = "docker"
+
+ resources {
+ cpu = 50
+ memory = 20
+ }
+
+ config {
+ image = "nginx:1.25-alpine"
+ ports = ["http"]
+
+ volumes = [
+ "local/config:/etc/nginx/conf.d",
+ "local/html:/var/www/html",
+ ]
+ }
+
+ template {
+ data = <<EOF
+server {
+ listen 80 default_server;
+ listen [::]:80 default_server;
+ http2 on;
+
+ root /var/www/html;
+ location / {
+ index index.html;
+ }
+}
+EOF
+ destination = "local/config/website.conf"
+ }
+
+ template {
+ data = file("jobs/srg/index.html")
+ destination = "local/html/index.html"
+ }
+ }
+ }
+}