diff --git a/id.tjo.space/configure.sh b/id.tjo.space/configure.sh
deleted file mode 100755
index a001982..0000000
--- a/id.tjo.space/configure.sh
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/bash
-set -euo pipefail
-
-SERVICE_DIR="/root/service"
-mkdir -p ${SERVICE_DIR}
-cd ${SERVICE_DIR}
-
-echo "== Fetch Source Code (from git)"
-# Clone if not yet cloned
-if [ ! -d .git ]; then
-  git clone \
-    --depth 1 \
-    --no-checkout \
-    --filter=tree:0 \
-    https://github.com/tjo-space/tjo-space-infrastructure.git .
-  git sparse-checkout set --no-cone /id.tjo.space
-  git checkout
-else
-  git fetch --depth=1
-  git reset --hard origin/main
-fi
-
-echo "=== Copy Configuration Files"
-rsync -a id.tjo.space/root/ /
-systemctl daemon-reload
-
-echo "=== Prepare srv directories"
-mkdir -p /srv/authentik/{media,certs,custom-templates}
-chown -R 1200:1200 /srv/authentik
-
-mkdir -p /srv/postgresql/{data,backups}
-
-echo "=== Read Secrets"
-age -d -i /etc/age/key.txt id.tjo.space/secrets.env.encrypted >id.tjo.space/secrets.env
-set -a && source id.tjo.space/secrets.env && set +a
-
-echo "=== Prepare Configurations"
-cat <<EOF >/etc/postgresql/secrets.env
-POSTGRES_PASSWORD=${POSTGRESQL_PASSWORD}
-EOF
-cat <<EOF >/etc/authentik/secrets.env
-AUTHENTIK_SECRET_KEY=${AUTHENTIK_SECRET_KEY}
-AUTHENTIK_EMAIL__PASSWORD=${AUTHENTIK_EMAIL__PASSWORD}
-AUTHENTIK_POSTGRESQL__PASSWORD=${POSTGRESQL_PASSWORD}
-EOF
-
-echo "=== Setup Caddy"
-systemctl restart caddy
-
-echo "=== Setup Postgresql"
-systemctl restart postgresql
-systemctl start postgresql-backup.timer
-
-echo "=== Setup Valkey"
-systemctl restart valkey
-
-echo "=== Setup Authentik Server"
-systemctl restart authentik-server
-
-echo "=== Setup Authentik Worker"
-systemctl restart authentik-worker
diff --git a/id.tjo.space/justfile b/id.tjo.space/justfile
deleted file mode 100644
index 9275b6f..0000000
--- a/id.tjo.space/justfile
+++ /dev/null
@@ -1,51 +0,0 @@
-default:
-  @just --list
-
-secrets-encrypt:
-  #!/usr/bin/env sh
-  age --encrypt -R {{source_directory()}}/secrets.keys \
-    secrets.env > secrets.env.encrypted
-
-secrets-decrypt:
-  #!/usr/bin/env sh
-  age --decrypt \
-    -i ${HOME}/.config/sops/age/keys.txt \
-    secrets.env.encrypted > secrets.env
-
-apply:
-  #!/usr/bin/env sh
-  cd {{source_directory()}}/terraform
-  tofu init
-  tofu apply
-
-destroy:
-  #!/usr/bin/env sh
-  cd {{source_directory()}}/terraform
-  tofu  destroy
-
-outputs:
-  #!/usr/bin/env sh
-  cd {{source_directory()}}/terraform
-  tofu output
-
-provision node:
-  #!/usr/bin/env sh
-  set -eou pipefail
-
-  pushd {{source_directory()}}/terraform > /dev/null
-  IPV4=$(tofu output -json | jq -r '.ipv4.value["{{node}}"]')
-  popd > /dev/null
-
-  echo "= Provision node: {{node}} (${IPV4})"
-  cat provision.sh | ssh -o StrictHostKeyChecking=no root@${IPV4} 'sudo bash -s'
-
-configure node:
-  #!/usr/bin/env sh
-  set -eou pipefail
-
-  pushd {{source_directory()}}/terraform > /dev/null
-  IPV4=$(tofu output -json | jq -r '.ipv4.value["{{node}}"]')
-  popd > /dev/null
-
-  echo "= Configuring node: {{node}} (${IPV4})"
-  cat configure.sh | ssh -o StrictHostKeyChecking=no root@${IPV4} 'sudo bash -s'
diff --git a/id.tjo.space/provision.sh b/id.tjo.space/provision.sh
deleted file mode 100755
index da9184b..0000000
--- a/id.tjo.space/provision.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-set -euo pipefail
-
-pushd "$(mktemp -d)"
-
-echo "=== Installing Dependencies"
-DEBIAN_FRONTEND=noninteractive apt update -y
-DEBIAN_FRONTEND=noninteractive apt install -y \
-  rsync \
-  jq \
-  podman \
-  age
-
-echo "=== Generating Age Key"
-mkdir -p /etc/age
-age-keygen -o /etc/age/key.txt
diff --git a/id.tjo.space/root/etc/authentik/authentik.env b/id.tjo.space/root/etc/authentik/authentik.env
deleted file mode 100644
index 81c3a41..0000000
--- a/id.tjo.space/root/etc/authentik/authentik.env
+++ /dev/null
@@ -1,23 +0,0 @@
-AUTHENTIK_DISABLE_UPDATE_CHECK=false
-AUTHENTIK_ERROR_REPORTING__ENABLED=false
-AUTHENTIK_DISABLE_STARTUP_ANALYTICS=true
-
-AUTHENTIK_AVATARS=initials
-
-# AUTHENTIK_SECRET_KEY="via secrets.env file"
-
-AUTHENTIK_IMPERSONATION="false"
-
-AUTHENTIK_REDIS__HOST=systemd-valkey
-
-AUTHENTIK_POSTGRESQL__HOST=systemd-postgresql
-AUTHENTIK_POSTGRESQL__USER=id.tjo.space
-AUTHENTIK_POSTGRESQL__NAME=id.tjo.space
-# AUTHENTIK_POSTGRESQL__PASSWORD="via secrets.env file"
-
-AUTHENTIK_EMAIL__HOST=mail.tjo.space
-AUTHENTIK_EMAIL__PORT="587"
-AUTHENTIK_EMAIL__USE_TLS="true"
-AUTHENTIK_EMAIL__FROM=id@tjo.space
-AUTHENTIK_EMAIL__USERNAME=id@tjo.space
-# AUTHENTIK_EMAIL__PASSWORD="via secrets.env file"
diff --git a/id.tjo.space/root/etc/caddy/Caddyfile b/id.tjo.space/root/etc/caddy/Caddyfile
deleted file mode 100644
index e4b8751..0000000
--- a/id.tjo.space/root/etc/caddy/Caddyfile
+++ /dev/null
@@ -1,5 +0,0 @@
-id.tjo.cloud,
-id.tjo.space {
-  respond /healthz "OK"
-  reverse_proxy systemd-authentik-server:9000
-}
diff --git a/id.tjo.space/root/etc/containers/systemd/authentik-server.container b/id.tjo.space/root/etc/containers/systemd/authentik-server.container
deleted file mode 100644
index da493e4..0000000
--- a/id.tjo.space/root/etc/containers/systemd/authentik-server.container
+++ /dev/null
@@ -1,23 +0,0 @@
-[Unit]
-Description=An Authentik Server
-Requires=postgresql.service
-After=postgresql.service
-Requires=valkey.service
-After=valkey.service
-
-[Container]
-Image=ghcr.io/goauthentik/server:2025.2.1
-Exec=server
-EnvironmentFile=/etc/authentik/authentik.env
-EnvironmentFile=/etc/authentik/secrets.env
-Volume=/srv/authentik/media:/media
-Volume=/srv/authentik/custom-templates:/custom-templates
-Network=main.network
-User=1200
-AutoUpdate=registry
-
-[Service]
-Restart=always
-
-[Install]
-WantedBy=multi-user.target
diff --git a/id.tjo.space/root/etc/containers/systemd/authentik-worker.container b/id.tjo.space/root/etc/containers/systemd/authentik-worker.container
deleted file mode 100644
index 61d4ab5..0000000
--- a/id.tjo.space/root/etc/containers/systemd/authentik-worker.container
+++ /dev/null
@@ -1,24 +0,0 @@
-[Unit]
-Description=An Authentik Worker
-Requires=postgresql.service
-After=postgresql.service
-Requires=valkey.service
-After=valkey.service
-
-[Container]
-Image=ghcr.io/goauthentik/server:2025.2.1
-Exec=worker
-EnvironmentFile=/etc/authentik/authentik.env
-EnvironmentFile=/etc/authentik/secrets.env
-Volume=/srv/authentik/media:/media
-Volume=/srv/authentik/certs:/certs
-Volume=/srv/authentik/custom-templates:/custom-templates
-Network=main.network
-User=1200
-AutoUpdate=registry
-
-[Service]
-Restart=always
-
-[Install]
-WantedBy=multi-user.target
diff --git a/id.tjo.space/root/etc/containers/systemd/caddy.container b/id.tjo.space/root/etc/containers/systemd/caddy.container
deleted file mode 100644
index 5ff79dd..0000000
--- a/id.tjo.space/root/etc/containers/systemd/caddy.container
+++ /dev/null
@@ -1,19 +0,0 @@
-[Unit]
-Description=A Caddy Container
-
-[Container]
-Image=docker.io/caddy:2
-PublishPort=[::]:443:443
-PublishPort=0.0.0.0:443:443
-PublishPort=[::]:80:80
-PublishPort=0.0.0.0:80:80
-Volume=/etc/caddy:/etc/caddy:ro
-Network=main.network
-AutoUpdate=registry
-
-[Service]
-Restart=always
-
-[Install]
-WantedBy=multi-user.target
-WantedBy=authentik-server.service
diff --git a/id.tjo.space/root/etc/containers/systemd/main.network b/id.tjo.space/root/etc/containers/systemd/main.network
deleted file mode 100644
index 70cde7b..0000000
--- a/id.tjo.space/root/etc/containers/systemd/main.network
+++ /dev/null
@@ -1,2 +0,0 @@
-[Network]
-IPv6=true
diff --git a/id.tjo.space/root/etc/containers/systemd/postgresql.container b/id.tjo.space/root/etc/containers/systemd/postgresql.container
deleted file mode 100644
index db00fba..0000000
--- a/id.tjo.space/root/etc/containers/systemd/postgresql.container
+++ /dev/null
@@ -1,22 +0,0 @@
-[Unit]
-Description=A Postgresql Container
-
-[Container]
-# Make sure the postgres image/version matches the one in backup service.
-Image=docker.io/postgres:17.4
-Volume=/srv/postgresql/data:/var/lib/postgresql/data
-EnvironmentFile=/etc/postgresql/secrets.env
-Environment=POSTGRES_USER=id.tjo.space
-Environment=POSTGRES_DB=id.tjo.space
-Network=main.network
-AutoUpdate=registry
-HealthCmd=pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}
-HealthStartPeriod=20s
-
-[Service]
-Restart=always
-
-[Install]
-WantedBy=multi-user.target
-RequiredBy=authentik-server.service
-RequiredBy=authentik-worker.service
diff --git a/id.tjo.space/root/etc/containers/systemd/valkey.container b/id.tjo.space/root/etc/containers/systemd/valkey.container
deleted file mode 100644
index 02e3291..0000000
--- a/id.tjo.space/root/etc/containers/systemd/valkey.container
+++ /dev/null
@@ -1,18 +0,0 @@
-[Unit]
-Description=A Valkey Container
-
-[Container]
-Image=docker.io/valkey/valkey:8
-Network=main.network
-AutoUpdate=registry
-HealthCmd=valkey-cli ping | grep PONG
-HealthStartPeriod=20s
-HealthTimeout=3s
-
-[Service]
-Restart=always
-
-[Install]
-WantedBy=multi-user.target
-RequiredBy=authentik-server.service
-RequiredBy=authentik-worker.service
diff --git a/id.tjo.space/root/etc/postgresql/postgresql.env b/id.tjo.space/root/etc/postgresql/postgresql.env
deleted file mode 100644
index ef52eb1..0000000
--- a/id.tjo.space/root/etc/postgresql/postgresql.env
+++ /dev/null
@@ -1,2 +0,0 @@
-POSTGRES_USER=id.tjo.space
-POSTGRES_DB=id.tjo.space
diff --git a/id.tjo.space/root/etc/systemd/system-environment-generators/date.sh b/id.tjo.space/root/etc/systemd/system-environment-generators/date.sh
deleted file mode 100755
index 31788b9..0000000
--- a/id.tjo.space/root/etc/systemd/system-environment-generators/date.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-echo "CURRENT_DATE=$(date +%Y_%m_%d)"
-echo "CURRENT_DATETIME=$(date +%Y-%m-%d_%H-%M-%S)"
diff --git a/id.tjo.space/root/etc/systemd/system/postgresql-backup.service b/id.tjo.space/root/etc/systemd/system/postgresql-backup.service
deleted file mode 100644
index 9f198e7..0000000
--- a/id.tjo.space/root/etc/systemd/system/postgresql-backup.service
+++ /dev/null
@@ -1,31 +0,0 @@
-[Unit]
-Description=Backup PostgreSQL databases
-Requires=main-network.service
-Requires=postgresql.service
-After=main-network.service
-After=postgresql.service
-RequiresMountsFor=/srv/postgresql/backup
-RequiresMountsFor=%t/containers
-
-[Service]
-Delegate=yes
-Type=notify
-NotifyAccess=all
-SyslogIdentifier=%N
-Environment=PODMAN_SYSTEMD_UNIT=%n
-KillMode=mixed
-
-EnvironmentFile=/etc/postgresql/secrets.env
-EnvironmentFile=/etc/postgresql/postgresql.env
-Environment=BACKUP_DIR=/srv/postgresql/backups
-Environment=POSTGRES_HOST=systemd-postgresql
-
-ExecStartPre=/usr/bin/systemctl stop authentik-server authentik-worker
-ExecStartPre=/usr/bin/mkdir -p $BACKUP_DIR
-
-ExecStart=/usr/bin/podman run --name=systemd-%N --cidfile=%t/%N.cid --cgroups=split --sdnotify=conmon --detach --replace --rm --network systemd-main -v ${BACKUP_DIR}:/backups -e PGPASSWORD=${POSTGRES_PASSWORD} docker.io/library/postgres:17.4 pg_dump --username=${POSTGRES_USER} --host=${POSTGRES_HOST} --format=custom --file=/backups/${CURRENT_DATETIME}.sql ${POSTGRES_DB}
-
-ExecStop=/usr/bin/podman rm -v -f -i --cidfile=%t/%N.cid
-
-ExecStopPost=-/usr/bin/podman rm -v -f -i --cidfile=%t/%N.cid
-ExecStopPost=/usr/bin/systemctl start authentik-server authentik-worker
diff --git a/id.tjo.space/root/etc/systemd/system/postgresql-backup.timer b/id.tjo.space/root/etc/systemd/system/postgresql-backup.timer
deleted file mode 100644
index c73fb69..0000000
--- a/id.tjo.space/root/etc/systemd/system/postgresql-backup.timer
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Backup PostgreSQL databases daily
-Requires=postgresql.service
-After=postgresql.service
-
-[Timer]
-OnCalendar=daily
-AccuracySec=1h
-Persistent=true
-RandomizedDelaySec=4h
-
-[Install]
-WantedBy=timers.target
diff --git a/id.tjo.space/root/etc/tmpfiles.d/postgresql-backup.conf b/id.tjo.space/root/etc/tmpfiles.d/postgresql-backup.conf
deleted file mode 100644
index 1651cc6..0000000
--- a/id.tjo.space/root/etc/tmpfiles.d/postgresql-backup.conf
+++ /dev/null
@@ -1 +0,0 @@
-d /srv/postgresql/backups 0750 root root 10d -
diff --git a/id.tjo.space/root/usr/local/bin/postgresql-backup-restore b/id.tjo.space/root/usr/local/bin/postgresql-backup-restore
deleted file mode 100755
index 0c1d096..0000000
--- a/id.tjo.space/root/usr/local/bin/postgresql-backup-restore
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-set -euo pipefail
-
-# Restoring PostgreSQL Database
-#
-# The backup file from pg_dump (with format=custom)
-# must be provided via stdin.
-#
-# Example:
-#
-#   cat /path/to/backup | postgresql-backup-restore
-#
-
-echo "=== Reading Configuration"
-set -a && source /etc/postgresql/postgresql.env && set +a
-
-echo "== Stopping Authentik..."
-systemctl stop authentik-server authentik-worker
-
-echo "== Dropping and Recreating Database..."
-podman exec systemd-postgresql dropdb --username="${POSTGRES_USER}" --force --if-exists "${POSTGRES_DB}"
-podman exec systemd-postgresql createdb --username="${POSTGRES_USER}" "${POSTGRES_DB}"
-
-echo "== Restoring Database..."
-cat /dev/stdin | podman exec -i systemd-postgresql pg_restore \
-  --username="${POSTGRES_USER}" \
-  --dbname="${POSTGRES_DB}"
-
-echo "== Starting Authentik..."
-systemctl start authentik-server authentik-worker
diff --git a/id.tjo.space/secrets.env.encrypted b/id.tjo.space/secrets.env.encrypted
deleted file mode 100644
index 788ac6e..0000000
--- a/id.tjo.space/secrets.env.encrypted
+++ /dev/null
@@ -1,7 +0,0 @@
-age-encryption.org/v1
--> X25519 uciAKItyJPgE6POgRKj1k9O0KVxecWKSEBT1nDkTE3o
-psEa+bNg0bt+GxYz24D2PYv7Sune4tjUQ5Z7wI5egGk
--> X25519 05XZ+FXu09rHr+XDldVWJa4JDzg5/6b0v0GnaMLWNGU
-g9+lEAgvcatVE9YIUPIZSkE9FFTYBmtDsK1C9XGpEl4
---- VItz74sI8Tr/0l/XfvgRt+ABLiyfF1ojzYjVPTUTt6g
-O���}���)Ő�Cq������l�F�u����`y�������0) ǝ}\fȥox|֡x���w��ج,�s�jq�\�dM�4W���GFi�d���h:d\��2G��,�b������m�������V4)Gwb"7eA����َi��ͺw1�N��;L�l���*�D)�W��q��� ������ܐ"xQ��F�jKf��������-k=���_�M'h���-�CTO���p���]��F��Pv-�IZn�
sz�
\ No newline at end of file
diff --git a/id.tjo.space/secrets.keys b/id.tjo.space/secrets.keys
deleted file mode 100644
index e3b7faa..0000000
--- a/id.tjo.space/secrets.keys
+++ /dev/null
@@ -1,4 +0,0 @@
-# Tine
-age1cl3d4wtrrqrgldmrzpu53q2mk60r7hrhrymsrwss8s57z4mdv9fst4a55h
-# Node 01
-age10h4gqtaruhcrfzd2aq00zlxlh9pscpxrh8chqvvjmzj6waq0d9lqr0v9jw
diff --git a/id.tjo.space/terraform/.terraform.lock.hcl b/id.tjo.space/terraform/.terraform.lock.hcl
deleted file mode 100644
index 2acf289..0000000
--- a/id.tjo.space/terraform/.terraform.lock.hcl
+++ /dev/null
@@ -1,47 +0,0 @@
-# This file is maintained automatically by "tofu init".
-# Manual edits may be lost in future updates.
-
-provider "registry.opentofu.org/dnsimple/dnsimple" {
-  version     = "1.8.0"
-  constraints = "1.8.0"
-  hashes = [
-    "h1:Nwu+3tVJnNmSJQoctRSWAamUX3AiTCZ5mOMtAUPtg7Q=",
-    "zh:0852fd9523268b30fb637a03a0cb6d6a5878cbbf7e0e4219615c9ba073fbdf17",
-    "zh:0ac43193082dd467abad4937b0abb97ea349205726fc450cb3a94dc0db6e9a49",
-    "zh:10e4aad54c2d6cbd9328a1661d72a978357743eda7099a3f120a497119be4ff1",
-    "zh:211d481935dec36903928c51f5f4f15d98313f6d50649ea064bc20a4d6541678",
-    "zh:2705b5ebac4219449f9126cc19fa982cf0644e5df60d3d5254131d2e2d676afd",
-    "zh:27f0df80af6652e96f85a0856daa571af495d2119ab126199d6d5ab53f6eb887",
-    "zh:27fbb2fb69291a660d8e99ba960f01051b7fc28658f7932772ce7e80a42bd6e9",
-    "zh:3ecf20ead1f044f08ae9e411c9341d47319eb6af5d6543b58f2f6932c6b288b0",
-    "zh:635055f0af3eb27d30801aeead51d8b960c386f369a378fad7146350ec6b4d68",
-    "zh:7ca26f64221a9c6634a02296e30a87e3fffed1144ac57e0ae9a86a448f42d4ca",
-    "zh:895e0732da00942b2eb13c78673a9c9268e87e92a225999cddf2d13b823f3295",
-    "zh:b3806e5b687faf97ad8cb2a23e105729059693ae07a229fecef52da5279d7bd1",
-    "zh:c3c284a54aab3ddea2dba140af4a707ce077c9c2d9d34556902afdb25fe6ca8e",
-    "zh:d2539f2cc5960a55a53eaaa90248abfb3167275e34af7e93735ec4571eb879eb",
-    "zh:f809ab383cca0a5f83072981c64208cbd7fa67e986a86ee02dd2c82333221e32",
-  ]
-}
-
-provider "registry.opentofu.org/hetznercloud/hcloud" {
-  version     = "1.50.0"
-  constraints = "1.50.0"
-  hashes = [
-    "h1:z5J9wgkt9xIKlr699hWCjHSS7K4bYKWWnGCg2T/YNmg=",
-    "zh:0bd650fb52e272f74eda5053a7bb62f0fd92182f57ad3ef742abe165cb8cac98",
-    "zh:1c36667aa89b672a96c0df3d3c613e80916a2d0944b1a1f9112065f40630b689",
-    "zh:21f90683890ea7a184b0ac55efd52911694ba86c58898bc8bbe87ee2507bb1eb",
-    "zh:24349d483a6ff97420d847433553fa031f68f99b9ead4ebb3592fc8955ef521f",
-    "zh:3fffd83c450bea2b382a986501ae51a4d3e6530eda48ed9ca74d518e4a909c37",
-    "zh:43d7de1dc4c50fae99d6c4ab4bb394608948091f5b53ddb29bc65deead9dc8a6",
-    "zh:47a37d5fec79dd8bc9cab2c892bc59e135b86cb51eebe2b01cdb40afac7ed777",
-    "zh:6efeb9530b8f57618c43f0b294b983d06cce43e9423bdd737eed81db913edb80",
-    "zh:7511ace4b33baddfc452ef95a634d83b92bfbfaa23cb30403899e95b64727075",
-    "zh:7bade77104ed8788c9b5171c7daae6ab6c011b3c40b152274fda803bf0bf2707",
-    "zh:83bce3ff9a1bd52a340a6ebdd2e2b731ec6fb86811ef0ed8a8264daf9d7beb61",
-    "zh:a09d5fce4c8d33e10b9a19318c965076db2d8ed5f62f5feb3e7502416f66d7bf",
-    "zh:c942832b80270eb982eeb9cc14f30a437db5fd28faf37d6aa32ec2cd345537d6",
-    "zh:e2c1812f2e1f9fac17c7551d4ab0efb713b6d751087c18b84b8acd542f587459",
-  ]
-}
diff --git a/id.tjo.space/terraform/main.tf b/id.tjo.space/terraform/main.tf
deleted file mode 100644
index 92ef5fb..0000000
--- a/id.tjo.space/terraform/main.tf
+++ /dev/null
@@ -1,81 +0,0 @@
-resource "hcloud_ssh_key" "main" {
-  for_each = var.ssh_keys
-
-  name       = each.key
-  public_key = each.value
-}
-
-locals {
-  nodes = {
-    for k in var.nodes : k => {
-      meta = {
-        name   = k
-        domain = "next.id.tjo.space"
-      }
-    }
-  }
-}
-
-resource "hcloud_server" "main" {
-  for_each = local.nodes
-
-  name = "${each.value.meta.name}.${each.value.meta.domain}"
-
-  image       = "ubuntu-24.04"
-  server_type = "cax11"
-  datacenter  = "hel1-dc2"
-  public_net {
-    ipv4_enabled = true
-    ipv6_enabled = true
-  }
-  backups  = true
-  ssh_keys = [for key, value in var.ssh_keys : hcloud_ssh_key.main[key].id]
-
-  user_data = <<-EOF
-    #cloud-config
-    hostname: "${each.value.meta.name}"
-    fqdn: "${each.value.meta.name}.${each.value.meta.domain}"
-    prefer_fqdn_over_hostname: true
-    write_files:
-    - path: /etc/tjo.space/meta.json
-      encoding: base64
-      content: ${base64encode(jsonencode(each.value.meta))}
-    - path: /tmp/provision.sh
-      encoding: base64
-      content: ${base64encode(file("${path.module}/../provision.sh"))}
-    packages:
-      - git
-      - curl
-    package_update: true
-    package_upgrade: true
-    power_state:
-      mode: reboot
-    swap:
-      filename: /swapfile
-      size: 512M
-    runcmd:
-      - "chmod +x /tmp/provision.sh"
-      - "/tmp/provision.sh"
-      - "rm /tmp/provision.sh"
-    EOF
-}
-
-resource "dnsimple_zone_record" "a" {
-  for_each = local.nodes
-
-  zone_name = "tjo.space"
-  name      = trimsuffix(each.value.meta.domain, ".tjo.space")
-  value     = hcloud_server.main[each.key].ipv4_address
-  type      = "A"
-  ttl       = 300
-}
-
-resource "dnsimple_zone_record" "aaaa" {
-  for_each = local.nodes
-
-  zone_name = "tjo.space"
-  name      = trimsuffix(each.value.meta.domain, ".tjo.space")
-  value     = hcloud_server.main[each.key].ipv6_address
-  type      = "AAAA"
-  ttl       = 300
-}
diff --git a/id.tjo.space/terraform/ouputs.tf b/id.tjo.space/terraform/ouputs.tf
deleted file mode 100644
index 63e7e36..0000000
--- a/id.tjo.space/terraform/ouputs.tf
+++ /dev/null
@@ -1,7 +0,0 @@
-output "ipv4" {
-  value = { for node in var.nodes : node => hcloud_server.main[node].ipv4_address }
-}
-
-output "ipv6" {
-  value = { for node in var.nodes : node => hcloud_server.main[node].ipv6_address }
-}
diff --git a/id.tjo.space/terraform/terraform.tf b/id.tjo.space/terraform/terraform.tf
deleted file mode 100644
index c3957ec..0000000
--- a/id.tjo.space/terraform/terraform.tf
+++ /dev/null
@@ -1,23 +0,0 @@
-terraform {
-  required_providers {
-    hcloud = {
-      source  = "hetznercloud/hcloud"
-      version = "1.50.0"
-    }
-    dnsimple = {
-      source  = "dnsimple/dnsimple"
-      version = "1.8.0"
-    }
-  }
-
-  required_version = "~> 1.7.3"
-}
-
-provider "hcloud" {
-  token = var.hcloud_token
-}
-
-provider "dnsimple" {
-  token   = var.dnsimple_token
-  account = var.dnsimple_account_id
-}
diff --git a/id.tjo.space/terraform/terraform.tfstate.encrypted b/id.tjo.space/terraform/terraform.tfstate.encrypted
deleted file mode 100644
index 0117511..0000000
--- a/id.tjo.space/terraform/terraform.tfstate.encrypted
+++ /dev/null
@@ -1,215 +0,0 @@
-{
-	"version": "ENC[AES256_GCM,data:MA==,iv:dKwTtBALT2dRoEfLIkvfY8Dc64VcGama/3pE3xML/7o=,tag:hvdtRh4hoGVOWFg9Roc6rA==,type:float]",
-	"terraform_version": "ENC[AES256_GCM,data:zmICcqg=,iv:NUJitY/3jrrW2f37Cc0+XWoXcSVT6BE+RcEqH7mzUrA=,tag:TL2y7c1w2QB47LgdCsqHkg==,type:str]",
-	"serial": "ENC[AES256_GCM,data:2EU=,iv:3zkjtHih1zF9v0DkSdSujxJx5fffxiqiWD99ekyQZ98=,tag:NJBROX5VAQhshnMc7wVSTw==,type:float]",
-	"lineage": "ENC[AES256_GCM,data:pVgCDeZ+zLfgch8hgb1N4VOYvef94QAphtq3mWHjeTuHfh8U,iv:J2ps9SZFGP7TDQ9fByC/U9zXN8lke2jg/BRKpaXOYnw=,tag:jfcq7D4hXarHqhbQ/UO4tg==,type:str]",
-	"outputs": {
-		"ipv4": {
-			"value": {
-				"01": "ENC[AES256_GCM,data:OuVuWAIfA+cLrofPqQ==,iv:A2a+ZnjjBgknXOIWAOTv63BbiJWOC3Xqr/lmpEgcIXQ=,tag:BwSNHgPE1x82sMXXCesPog==,type:str]"
-			},
-			"type": [
-				"ENC[AES256_GCM,data:fsuMTWI+,iv:mE5aQKtqOmveM7imToQh9EPPaKQJaZ/kFNTTCQpTFj4=,tag:eoAV5tDrssnxtFdoTmdevQ==,type:str]",
-				{
-					"01": "ENC[AES256_GCM,data:8uuIteu2,iv:N7yoegiSOjpq5Te8NRHbie8Qsm9ExdCZLKr5AQ3RJVA=,tag:FuEO8fwgCzOAcMVcUs0ApQ==,type:str]"
-				}
-			]
-		},
-		"ipv6": {
-			"value": {
-				"01": "ENC[AES256_GCM,data:ME2FNX4m1myeKBknVzyLDr2ccftZ,iv:vP/UBpE8lLO2cgnButAZLyIhP8lyJkwhkkMYkktSa6g=,tag:/r19NYaRrO3cmmkXwsWjVA==,type:str]"
-			},
-			"type": [
-				"ENC[AES256_GCM,data:9UM0gi06,iv:HFU2cV0ucah/NuvlqSFcAsj1qlyfmO29XBMiMt6QKaQ=,tag:IvBr3Oli+quXWmqzVamsSg==,type:str]",
-				{
-					"01": "ENC[AES256_GCM,data:dq8zkf4u,iv:kcQSUEmh5A+1vGT8D9Psf+K8G+tBGIFh5a7cfaDxTwI=,tag:VwLc30bdeQmUz3roALhtdA==,type:str]"
-				}
-			]
-		}
-	},
-	"resources": [
-		{
-			"mode": "ENC[AES256_GCM,data:irPRMXW5Iw==,iv:P/TeCUkjxIveU0+mFoxxiW1+skhSQXYUXeJolfoGPnk=,tag:aILRTgXHDodW8NnrL10Eng==,type:str]",
-			"type": "ENC[AES256_GCM,data:3AXyhJ7NbKwsGhK8Q8A+ADYwJaU=,iv:fobOD/VVrBOGd/XkxpI+UJpFa/wSL3sBDPXMoFrIvIE=,tag:2Xgf97uGFAxfH35OKU/JLQ==,type:str]",
-			"name": "ENC[AES256_GCM,data:SQ==,iv:b6miEQ7lnYvBzJM5tvkByoOOmAtGcQyy2P5hre8Ygkc=,tag:hyzXK6nGdaxHD1SdPUjd3g==,type:str]",
-			"provider": "ENC[AES256_GCM,data:s9aUqWEhldirVPpXF8fh1laaoS9pzYv8aoOplW51eHRLbeaXbuhJz5BevDUUuBR0PrAP,iv:4oDnuKtRa18fgtsLamXcRZtR1ONVz5CYvcxtr7I/mB8=,tag:kUwJrw3BBjDb94aucSM1mw==,type:str]",
-			"instances": [
-				{
-					"index_key": "ENC[AES256_GCM,data:/HY=,iv:+6H12ogk52sEEi/68i8qrxaEAAvjIlrrGgigrDBzRGE=,tag:Uc5NHbVUfDxy0taNq8Z95Q==,type:str]",
-					"schema_version": "ENC[AES256_GCM,data:Yw==,iv:KwiURRyryvi6dLqU4IZ/GysmOIy0iyYqVZ6Nnur3YVA=,tag:VUan024bWUQJ7LUsGwgaww==,type:float]",
-					"attributes": {
-						"id": "ENC[AES256_GCM,data:K3oW4DQzpBs=,iv:oc886AOksOnF++Uq4MaHgLVY47k1jHyKxvDi2PCbTSE=,tag:+VezWf5AkQCgZ2fi9svJiw==,type:float]",
-						"name": "ENC[AES256_GCM,data:AIx+gXaCFA==,iv:onMBG+6nOIFP6SwkFJNHTrqX4NIuiKy894SaT6F8dUU=,tag:ixWfIgqe5b23+UZqxoGc5g==,type:str]",
-						"name_normalized": "ENC[AES256_GCM,data:rBkb21gB4w==,iv:5fkc08WI02p4d85AB1XtChdbA2Akhjm4TC9OIzN/pJk=,tag:HSqrYKJMTZPDkX+hyO7avg==,type:str]",
-						"priority": "ENC[AES256_GCM,data:hw==,iv:uo+LuuNd5VBWnI4A96R8worC4FOcH+Vm77nye+U1cJg=,tag:OJorW0Yofkvz5VJ5caW0GQ==,type:float]",
-						"qualified_name": "ENC[AES256_GCM,data:GIjJSAjjwc0EPqWonTDo46w=,iv:U40uGvVsvWE3FXDSstTwm9xTL3vdc0+74TmgV89Py84=,tag:gTlNSHgnpXTe33lXn437SQ==,type:str]",
-						"regions": null,
-						"ttl": "ENC[AES256_GCM,data:wQNu,iv:IFn8H7yX1Cna7U02iH2Ue9SbfbqfK5zdOk8Ismys95M=,tag:/jl8PvaOOIt55BKhctiP5w==,type:float]",
-						"type": "ENC[AES256_GCM,data:lA==,iv:CU59L9Bi1+eSBahikcH62KOa1pLoZpI7kH2hDm0vP4A=,tag:0nfFu1I3XA/sAAcaWrHgIg==,type:str]",
-						"value": "ENC[AES256_GCM,data:L0/Btca1xEVuq59LPw==,iv:8LIOiSpY+Eq4Q0snSiCXkY/CPOTjdDaOPi8fZU1Zp/E=,tag:JHamwo+1R31nsKW2GOTtdg==,type:str]",
-						"value_normalized": "ENC[AES256_GCM,data:Bf+RzAOf4Es6IEmWOg==,iv:E3pQqhfL0lbek04NQCKV63S4qFzbe1x//Ktt36QWVKM=,tag:nJAygtSqgv0W9S1M+sGnWQ==,type:str]",
-						"zone_id": "ENC[AES256_GCM,data:yiF5ccJbg9Ha,iv:Xi8DyawQ0BIsBWoQD9jvZ4bfOUSFDWbKtnVnGC65JKY=,tag:/ysAux2oAi+dBy5W8H0ZTQ==,type:str]",
-						"zone_name": "ENC[AES256_GCM,data:doGTBRMlMeT1,iv:7I/6+Zi7pnU/TdiorWDeWedUUhuiC0AKpMYLP8VZzUs=,tag:DQml8k+iBL92l289WD9LLA==,type:str]"
-					},
-					"sensitive_attributes": [],
-					"dependencies": [
-						"ENC[AES256_GCM,data:atAK8i3Rp7yrbpEFvIefd0sW,iv:I7nr4hHIlq0xcOxpmEPkA7zwObNIj4XiSwgFMIs18vY=,tag:HswYbCGveNY5eXW60mdixA==,type:str]",
-						"ENC[AES256_GCM,data:pxGURLPtVe4KhxtX7qn5Y4AhIA==,iv:9BO223ahy0Y9iJVGcUkAwnQ0TTy6wKBcHZjij1AieG8=,tag:jB+NeKpFZEQEtwhvcb6jwA==,type:str]"
-					]
-				}
-			]
-		},
-		{
-			"mode": "ENC[AES256_GCM,data:oWE5E6+MHg==,iv:Yza/sx4NVYKU0CzfuTRHdkXhnp384R5nWo+pIik2UJc=,tag:J03IksD+1BSDHZy1MxHItQ==,type:str]",
-			"type": "ENC[AES256_GCM,data:LjZM1JmvugndiC4VGD100qd44B4=,iv:Ii5eAP7Eg7Q2DCwnX9RKlyUJ6docAiq5uoDfo0Uptpk=,tag:Utxyd5qRbpTFYa1xc+16HQ==,type:str]",
-			"name": "ENC[AES256_GCM,data:qu1CiA==,iv:y2IJCMyuDalXOuXnPnXR0++9dIbGNSgR4Icyqgchoo4=,tag:0BmhO6B16SkOME0g5zmPjg==,type:str]",
-			"provider": "ENC[AES256_GCM,data:H455O+hLRDOi3+zw9LFae8SV0Hmmqz1/YNxd02wqMNFY/a8fOQZf/SdDctlKcfOFZHEk,iv:FCU6bn9VpdHK9Qc6zAClhNMylycjyVzYIDM7AxNUJAs=,tag:GS53w5VU6jigHIooin/9Zg==,type:str]",
-			"instances": [
-				{
-					"index_key": "ENC[AES256_GCM,data:TYw=,iv:sMvWcC3Q02SBbURjWh225khYhhp4Vsxu7fTUdq6aksk=,tag:DBkCLt80Yiq4E+S1o6kHSA==,type:str]",
-					"schema_version": "ENC[AES256_GCM,data:CA==,iv:z3nQN8a/8CBRuQDQXyjRTL/bXlhYhR+DyK+uLg8P5eI=,tag:WgEy4g3lzWRoYTOZ6QC5HQ==,type:float]",
-					"attributes": {
-						"id": "ENC[AES256_GCM,data:2h72tgxKjZ4=,iv:ckrHb9yjEjU6Q6vsNGY1AO0DBXhgeBYMOhQGpwiFjks=,tag:guo+EwQlK4F/gM/KNXAdrg==,type:float]",
-						"name": "ENC[AES256_GCM,data:Uj+N8PI3ug==,iv:ocFwop5n+7gt/HUkAh3YDo+LoeAsVB34Jfh8azuRAN8=,tag:H7nAg2DgpXf1VGGdAqThgw==,type:str]",
-						"name_normalized": "ENC[AES256_GCM,data:Hmgj9ZJZFw==,iv:QEC1p/7JvWL4IvLve4CyoBMq1UxN9Jrc44m3Jqn/v3g=,tag:iLd52opPL6R+kvOMJZltIg==,type:str]",
-						"priority": "ENC[AES256_GCM,data:6Q==,iv:AU0JxnNjy5jv9EiRy/Htea0uIIWjJcWY/HtXw57EpaY=,tag:qaqwsgrFyruRkYoF94eyRw==,type:float]",
-						"qualified_name": "ENC[AES256_GCM,data:3OcZmee9EuJHr9OKlHAruKs=,iv:6R8Vzy9eKmP8bJ3JGiPUe5zQFrt4MmoDnGotOuRtSsk=,tag:S+YdDMJn7dFz6A/PSb0DMg==,type:str]",
-						"regions": null,
-						"ttl": "ENC[AES256_GCM,data:zXOL,iv:m1Y1H4a++JVzXqFO/TSOwpaQNaCuEU5/nXK3Y4GnGpw=,tag:hwACo8iAKNXGf7WceUKvxQ==,type:float]",
-						"type": "ENC[AES256_GCM,data:zUrMdg==,iv:JKgIsxAhFbaBsHzoaSGH43cBHg9T4tNhdOonyYF9Q5I=,tag:CafgHA9mhR8Mkjw6dX0+sg==,type:str]",
-						"value": "ENC[AES256_GCM,data:suYbxRQzynslMU/1RAYJut4yBRzx,iv:SZgi7krdH0D97MIOmFJK7zcBdZXH8hYrN9UKKZT+FLc=,tag:Z5dAqp2VLUjWk7svNKOckQ==,type:str]",
-						"value_normalized": "ENC[AES256_GCM,data:kGH82MiNyJX0GjbAX3GUSqWS9KwO,iv:OC2JbLpEjWxx1cqpSULo1Ibd6Z24iYdIHxTCrMketwk=,tag:DDBoAJP1sQ4zBlmMpac/kA==,type:str]",
-						"zone_id": "ENC[AES256_GCM,data:iNNcY0af4lGY,iv:ultPUrBfRoN8D5bYtY5/DWu7Q4p5fkSeOtF4SMZR418=,tag:fQDwDUzOgu0VgbV8BBNVcQ==,type:str]",
-						"zone_name": "ENC[AES256_GCM,data:ce0dxGkMoj7N,iv:1dS4CYc9jsdzA2TQnaBBL78QVGPjJ87zZ+oa+daIaxc=,tag:Sd8xCw5vTfVEtZZiGgrAjg==,type:str]"
-					},
-					"sensitive_attributes": [],
-					"dependencies": [
-						"ENC[AES256_GCM,data:ehkvlp12wUJFKl7VOrOFXsBQ,iv:S2TVOutBiGLr8JLK46ZX8YD8iVwhV1b+o19cRjjlAOc=,tag:8DoXw5QRiy3Pg5QIZCNb/Q==,type:str]",
-						"ENC[AES256_GCM,data:53w+F2Nk/5qg5JepJrH2IPI1+Q==,iv:D9vBJtLJZk/SxTR/xjdzd7bXtbqNTWJ5chDRPnsnNNE=,tag:zKSBPIudHVXvCljdBmx54Q==,type:str]"
-					]
-				}
-			]
-		},
-		{
-			"mode": "ENC[AES256_GCM,data:eC9hz+lR4Q==,iv:WmtYuYk9lhN7N2lo/yVICPC5L02D3S2Z6UTu2Cfrn70=,tag:/10RVfgs5bbljgRpgrnErQ==,type:str]",
-			"type": "ENC[AES256_GCM,data:auRyjifdIWvqpQmjKg==,iv:0JPzkYfyWK60KyRakXQfCthr6rpfRggGO63XwQ2pkf0=,tag:XW54fSkm2nQj4WaMWMYsYw==,type:str]",
-			"name": "ENC[AES256_GCM,data:AsxS0Q==,iv:TgTZKIkYgNPCrZ1JZngxsM1gOmokn0c0bTq+9Bzt4j8=,tag:eKQLZ59Q6fDc9xIzBt5FwA==,type:str]",
-			"provider": "ENC[AES256_GCM,data:yIO7J2Lp2MHeSiiLS1te1Opp6NbtjUZ8Yozvv+Y764KLYslQ6UOBw0Cxi51UQPFdCjsp3G8=,iv:LPVs6OHsi23nsJfq3pIDWH6pnB4cSUxhT4msrNVaqlA=,tag:YuGDm6L1mt+AVbQkAztLhQ==,type:str]",
-			"instances": [
-				{
-					"index_key": "ENC[AES256_GCM,data:/cE=,iv:stZ4QcYHvLG7GGjDSz0i7Z6Dm3HPrKy18htxqL08Cwo=,tag:aK/yo5ikNdv0JI7mHdzg8w==,type:str]",
-					"schema_version": "ENC[AES256_GCM,data:hw==,iv:qEP6KJKaJoKabsVBIbnfnvzHIPsyg+nYamzr0Fi6aUY=,tag:xxSI79HuwnKaZDDDkJKtqg==,type:float]",
-					"attributes": {
-						"allow_deprecated_images": "ENC[AES256_GCM,data:XFSr3XU=,iv:7R+Sv8RocfuhyVT4uqPz4rKy7yYGOnK6rpPmGHNrk3s=,tag:+VWGD2xku5xx6QEh3mtjOA==,type:bool]",
-						"backup_window": "ENC[AES256_GCM,data:p77D9Cc=,iv:QX2mXfdX+8M4ogWk6kRejDAjexff/H24Pkz6fMAA6qc=,tag:1qg5HjBT1cbe7EMqDwsOUA==,type:str]",
-						"backups": "ENC[AES256_GCM,data:rhRhvA==,iv:XKkodCP2J0KL0DVobNg1wf38V/6+pLUwoeDsHHUNGh8=,tag:Tk/L9iuW8dR1JC4NndB88A==,type:bool]",
-						"datacenter": "ENC[AES256_GCM,data:Z66oQcO0nZo=,iv:wt+fsx5F5WOGIqBdlEvyGjIgJEPaNd8tIvzMFo9qMAI=,tag:QRbUUzDfGD0NHc8faU936A==,type:str]",
-						"delete_protection": "ENC[AES256_GCM,data:XS44Iko=,iv:3tErP+QBN9Kj+hB3MzijfSPN0HZ7tZoCqFbTYS+iDus=,tag:7W04zw903fAxHDnLVgXN8Q==,type:bool]",
-						"firewall_ids": [],
-						"id": "ENC[AES256_GCM,data:qAxZyebScuI=,iv:f3Zwe2w5PBENBRjUCGMtGQH7CpVCNjVAONXDBeAj6fM=,tag:yms9L/rgoQWSwlf6TTJBvA==,type:str]",
-						"ignore_remote_firewall_ids": "ENC[AES256_GCM,data:NdLb2mk=,iv:LROidqXw5wK75oeX+IUyeB8MXfpa73dJ9WweMN2Xx2w=,tag:5YlMm3vyLPFBDMJMZWLDYA==,type:bool]",
-						"image": "ENC[AES256_GCM,data:oE4WcV9bexhRoXhG,iv:JUEcR8dkqOxl6udSYUpvtm4gO00UjUU+G1s/52Xa0mI=,tag:WdwQtFm14PwEW/m5MMN73g==,type:str]",
-						"ipv4_address": "ENC[AES256_GCM,data:Dh548ruHUBZ/3TNctQ==,iv:qCqRZbLPQA1cLPlJ/EH4pVJ5E/tit56jnKVC40hPr60=,tag:CXET71+5JupfA73XMYXNPQ==,type:str]",
-						"ipv6_address": "ENC[AES256_GCM,data:x54DNAcPMELDMnxn1U4mjgBPci1y,iv:Zo19KuWE2TEuhb3FvD/sjzmzhBxxrt+ozKqKjtyILo4=,tag:x3UhWxSZ/qZ1elwjLoYbyQ==,type:str]",
-						"ipv6_network": "ENC[AES256_GCM,data:U/INBD8ToCxzaRl5D2udRezukUYdRhU=,iv:U/CsiVYjWIzC1yihCu4D2HkDMYL8wrBrmwj4gfUxxGY=,tag:rAU+wgYxnl9qyswuaoB5pg==,type:str]",
-						"iso": null,
-						"keep_disk": "ENC[AES256_GCM,data:NWFjfdk=,iv:9VBqy6LHBlI/pEzXjZeO3lwBSvy3DF7FiG5XS5A8wIE=,tag:44IBZFo/UH1U7r39znU6fQ==,type:bool]",
-						"labels": null,
-						"location": "ENC[AES256_GCM,data:9R5LBw==,iv:hoXH8OsIjrwN/oRPBxgtuUKarLPqsDHCy8MSJLjPMFg=,tag:T6FiLnB2GGlitm5/b/7IUA==,type:str]",
-						"name": "ENC[AES256_GCM,data:fE/u1i8LgM4Fgz0DR0h/IXRk0so=,iv:fQg13zLrgvjRHKLeksQwn/iS07ORuHoVOqhnh+iA2NA=,tag:DoZZeSohEcbJ65DdBFfbMA==,type:str]",
-						"network": [],
-						"placement_group_id": "ENC[AES256_GCM,data:Fw==,iv:yjTAHfnfoTWt5TXJAbDubsr2oF0w+Re36uQecFkdprw=,tag:e0oc9SF57Y8J4qFJCEvUSA==,type:float]",
-						"primary_disk_size": "ENC[AES256_GCM,data:4DI=,iv:RSVsyOuhkVOkTzIkTezK2ZFTx2sCdjdUQ2bG9zTeWGo=,tag:q53AeX4LphXaxMUY3LDrMw==,type:float]",
-						"public_net": [
-							{
-								"ipv4": "ENC[AES256_GCM,data:2g==,iv:n2kJ55dKlDw0xvLs316etfvjOUxUboGPMcKAmL3F3Ww=,tag:7j9h0frxTVjaK9jlo5exCA==,type:float]",
-								"ipv4_enabled": "ENC[AES256_GCM,data:81BXwQ==,iv:mgf8NbnrnbHmVlp1T2R+AQoNKSbugS6+VZ8yXSK9XDc=,tag:C7HhwD16NRq1MIy+uYddwg==,type:bool]",
-								"ipv6": "ENC[AES256_GCM,data:vw==,iv:DV/3NSVX4QqgKAaOHdQOWPirxlJ2yGkBzu5Zy/4ISuQ=,tag:H/DdkjMCJR5wMJBZ7t8WZQ==,type:float]",
-								"ipv6_enabled": "ENC[AES256_GCM,data:c6ldOQ==,iv:OMc8TP5oTDw/wWddtO3Oz1d9eCvirOG+i7Hd2cPZEcM=,tag:oc/q4r2ALAvDULBVoYJtOQ==,type:bool]"
-							}
-						],
-						"rebuild_protection": "ENC[AES256_GCM,data:Tv1Hc9M=,iv:hfB3R8wHA8W8ttANQaabitW5c1W+5GvPySbAiQs/pBo=,tag:AVoUpT+5AvvglH+25PI82g==,type:bool]",
-						"rescue": null,
-						"server_type": "ENC[AES256_GCM,data:ImK3UUA=,iv:8S/fMeCJLjfAyRgbKZhfF72m8pchf6vQVRl69uPSpiU=,tag:p4d5bz9LMes0MW7N86pbKA==,type:str]",
-						"shutdown_before_deletion": "ENC[AES256_GCM,data:0PtITvw=,iv:Kni5h4DPBqAjCj6VZYKmGE/PMHnDK2kTWDqKd8M8/LQ=,tag:kidjd+GpRvu+kZPiyNf2Jw==,type:bool]",
-						"ssh_keys": [
-							"ENC[AES256_GCM,data:wsI81TAYiv0=,iv:VpiiCVg0AU/5GREu1flZYS4tuXpMpP8F0BOKZ7F8mbA=,tag:PwoamlntOYFLE5KcigNQcg==,type:str]",
-							"ENC[AES256_GCM,data:3cGybH2moqY=,iv:8oYRcvSOckNgaXYzw6MGMai06V8pQmR2h3r52zSTyFE=,tag:tnl4Xfknou8ixnlWa4hpGw==,type:str]",
-							"ENC[AES256_GCM,data:WdTtHzw+deM=,iv:5GEZxAAaong8qLCk+wxQ/LyFrAI5CxiXKfLiPhF8TlQ=,tag:RyWet0A488fi2kGxPgTxzA==,type:str]"
-						],
-						"status": "ENC[AES256_GCM,data:WTMSppLLWQ==,iv:MLrns40EMiLDZHHqryCd6B6/EmTZIJAlSUmh0vrm0ZA=,tag:SBrr4Ey5S8gjnwmU+s4+wA==,type:str]",
-						"timeouts": null,
-						"user_data": "ENC[AES256_GCM,data:WwC/+SyCP2OlN/WuSyMSvPrkH9mB1dZYZyMAZA==,iv:nLIsJQV8Sn2Eu113CFMh6EFf8+ACYxSo3iSJSmWR2E0=,tag:pjrP96ibl+YpcalI0WHAhg==,type:str]"
-					},
-					"sensitive_attributes": [],
-					"private": "ENC[AES256_GCM,data:NKohTzZdfMte3eGaQO3rrM6gfbiurQtWJhuaDOjNikFrhvg4rzjYZLzHEfScxoxaMn1cwszxsy2jMSG9SGji+E1U3b/0OzsfUa18bMOm3p3QbOz59S+6bA==,iv:V6jpZlZcg0YBr7Myor1rB9MQ38h7PqZetycwZuvIkws=,tag:aOeV2np2Be//ODmDka8MEg==,type:str]",
-					"dependencies": [
-						"ENC[AES256_GCM,data:Sodpqeh7ELNa78UggocTRbXl4g==,iv:FKSj3VAZa8TAfoziZuBRmG5R7idYwyTytigLrRrvgew=,tag:y0jvzYRdhxWgaTUxkIM/MQ==,type:str]"
-					]
-				}
-			]
-		},
-		{
-			"mode": "ENC[AES256_GCM,data:MKgczioz5Q==,iv:WFPHyyLtqfTGJnD+t778JcXiC1YsCtMQsosFksu0N1Y=,tag:dDWKsQ2ChTRHkrzbyp+uvw==,type:str]",
-			"type": "ENC[AES256_GCM,data:qTximDfHhvVY4QcLsQ8=,iv:OVjeKQKXcgXbacyN0lbY7+y94/iGHnNDV3qavWXYF7E=,tag:/NxWdpyj1QFIGTmpM8mNTw==,type:str]",
-			"name": "ENC[AES256_GCM,data:gvpruw==,iv:4sbByk7jUuD2taKzEP7VwP+pWjq9l9oa8Za6m6suMPg=,tag:7ijIWp/9io5ErAwfMUKQDA==,type:str]",
-			"provider": "ENC[AES256_GCM,data:octE0h0q4awG/tRF5ihCUxtCzDWAHLnMMFagaagy9HwleUNvO7h/U95a5FF9EPnLVOmdYjE=,iv:5PZw7MNseXTAemFsjWSz/utIoOd6WUc2PG4Xk8r/khE=,tag:Cv1Zx6L1PzTbKLhQcmlrog==,type:str]",
-			"instances": [
-				{
-					"index_key": "ENC[AES256_GCM,data:0UhcbmUqgxfE,iv:Lw78NruE5uxjZ4cXaLGp3SBiBQj4CFM2lmhNP15uKfA=,tag:1ysR8kYo1/1K9pYVspwgWA==,type:str]",
-					"schema_version": "ENC[AES256_GCM,data:RA==,iv:LJycP5ZGiTESIrkXhyDNCs/X+lBX7LiQvfcSPLzoB4w=,tag:rLWWTmWL/+WXAi3blG2YLw==,type:float]",
-					"attributes": {
-						"fingerprint": "ENC[AES256_GCM,data:aOJGEhvxSeiX5nc3pi1g9EVfnr1RWS/01PXB22pveiTtv3XnXxArWBKBt4eCGbs=,iv:PNccaT697kzxw8mU6XE75B1R+4DxbMaTE66osKVaJNQ=,tag:+I5whp92ubRdAMHsv9DFwg==,type:str]",
-						"id": "ENC[AES256_GCM,data:Wd535dXXxr8=,iv:TMCb6HrVBScu3NsMcunMmvJ6Zbhi76dndu5uC1IPVW4=,tag:IlGbnXfKDJEfXUBfPF1dFw==,type:str]",
-						"labels": {},
-						"name": "ENC[AES256_GCM,data:a5nIfwIps45f,iv:UIiEDys2TsBWPXC4PSFD1cEaMLvmvTuiSwj2w+0Rnh8=,tag:GqIOweyiqmRoWpOg1PSRbw==,type:str]",
-						"public_key": "ENC[AES256_GCM,data:PQb2JzR6KW+esph10z8sSpKM53iiM7sUzi1cRh1JhmqwNaWGE0ZdEeC6GqHvOEDaELLXWkTsbCd26IA2xTLz7slu5Ss+uD31EOhL7VifP3rIQeLniLH7wfsGhCUp5U//47Lhkg==,iv:WxZ3WVianxLsGLj01OV+gcrwSr4Iki30OfBoTP7f3Iw=,tag:9z5vWqoOD7Ho8tB7CTgF3w==,type:str]"
-					},
-					"sensitive_attributes": []
-				},
-				{
-					"index_key": "ENC[AES256_GCM,data:UODvDREeM+5vf3o=,iv:cAb0V5WFe3AABqwF1f4PS9L6oRILvl1th7V479LGCUg=,tag:W9kJ1SaiylcJzQD0ALXnew==,type:str]",
-					"schema_version": "ENC[AES256_GCM,data:Rw==,iv:puko5K7kswE4Rf+atAfwWS4d3lO1nV0ghAXGfYJ66+Y=,tag:Pr6QO3ioNaKE8LUJRnjWkA==,type:float]",
-					"attributes": {
-						"fingerprint": "ENC[AES256_GCM,data:N1xRBMm6gsVE9QQNkl/04moYax0QHFzr4lja2VPFDgSsJ5B+sdTGzpBfc16rwrM=,iv:4qbp3NTRz1Ot5BFOwqNvZJU55hxkGZ5eOMhb3qlpUoY=,tag:hC3xO2f02Z3MeCBTjVqeXA==,type:str]",
-						"id": "ENC[AES256_GCM,data:ZyLgC271/TY=,iv:ha3AKBFRunqAORhhLAPn9+Pc2GgjJGFMj2OfC18oQOQ=,tag:cMdE906vx71V2M7N/Z8elA==,type:str]",
-						"labels": {},
-						"name": "ENC[AES256_GCM,data:x2oi27SAXQ+DubE=,iv:KhbN8MtgnJuD5vvag/SU/M0N6v15iqv0CTR6DL6h+G8=,tag:M3qrMsBZxbR35x68Dbf9tg==,type:str]",
-						"public_key": "ENC[AES256_GCM,data:bdkeRVOohHcWcZUDfHXDLo57goSUUB89gVpp9v0JhXED6M225flCD+6KFt6oXZ9bwwvDUCDwKYkPXUnBL6BeCHgqtYIMixA6MwXmqE3BCH+6wsG1AM7u8e9nDdsIyoUdOL3ZH8nB,iv:keluzNzoT6jsRILC9Qmcae1huABjB0vNxpPLZC3QVJ0=,tag:5bL4jLTgJNnCS/RG/Yy35Q==,type:str]"
-					},
-					"sensitive_attributes": []
-				},
-				{
-					"index_key": "ENC[AES256_GCM,data:Qksf+iQlNA==,iv:pSPMci6ckgFsd+CGRspyZ32zNy0BZfY5xcX4+sKdV9Y=,tag:uVWZ1veFzyeCRKJvbujjuQ==,type:str]",
-					"schema_version": "ENC[AES256_GCM,data:7g==,iv:RcTlrj72jHqn/MrxXgoAOpsGmNgvQLwaTNfmKM3KEWo=,tag:15mjFTxMKt0msaKjQTwBEg==,type:float]",
-					"attributes": {
-						"fingerprint": "ENC[AES256_GCM,data:wCumbkcz8lHs+GVa1s4UM31dh/dC+yuwg++NT7o0sfxICkVrDvqADLeT+Q6Q9VM=,iv:Qlm4IX+OwxfRoaTwzw2U5Y3EhGuI38PM5R0NmwUxr8o=,tag:7bzQbjicX7dthI9D/yvLPQ==,type:str]",
-						"id": "ENC[AES256_GCM,data:GCLX1Jr+XTY=,iv:MoKRGa1VkQS76ayyOPyzaR4TebbkBvGJmahACs+TOOE=,tag:fafnovzWcfsB74IugWRqmA==,type:str]",
-						"labels": {},
-						"name": "ENC[AES256_GCM,data:a44N/B/3Mg==,iv:JjEQcuJkSE4YcbqOXZhbeyIIviJI1FuCd99YBAYc3yE=,tag:NWA9ZJrKB4ODkDNSuAGWSQ==,type:str]",
-						"public_key": "ENC[AES256_GCM,data:hUUsRJ209a9IEiUgic41LtB04rrJ8ymb2cKddm+zg5QUT9MPD4B/r33iVrcZoYAjv8mA2yrbRLmuTMAWGmddlOwwPcT25xqIYzgdSOLJKzV1UW9qyQEoegOu7bq1ei9yWG4=,iv:OvBp+NXwp5b2FmfpQe1lFOzEjxkzAK+NFDsydmN7MBE=,tag:rqkCxG/WhnwFDOEuQUaQdw==,type:str]"
-					},
-					"sensitive_attributes": []
-				}
-			]
-		}
-	],
-	"check_results": null,
-	"sops": {
-		"kms": null,
-		"gcp_kms": null,
-		"azure_kv": null,
-		"hc_vault": null,
-		"age": [
-			{
-				"recipient": "age1cl3d4wtrrqrgldmrzpu53q2mk60r7hrhrymsrwss8s57z4mdv9fst4a55h",
-				"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBycmVxOTNHa01yWlZsc0NT\nM3pSb0lEd1Y4bGh3ZFNocmpac2JxTi9uNWo0CmpBRTdyNzJqSnRKa3g4NGhQY1Zy\nU05qY1dEQWswMHE5czhVN2NsS2ZVS1kKLS0tICt2RG1ZNnk3QVZXNm1mMnBqdEw1\nSi9wOUdxR0M5amNIZEZSY3FzMG5PSk0K80/Ix1JHLSI9VLWgJju2mOI5G1NYed0n\n8kWfgQO3xqlr/zA+MJV/TqrRWem783OyMi1v4gkcKP9XdJ6qAxycOw==\n-----END AGE ENCRYPTED FILE-----\n"
-			}
-		],
-		"lastmodified": "2025-03-10T20:07:52Z",
-		"mac": "ENC[AES256_GCM,data:31HeCB8AZNsGxnBQrJDwpyVpfNV1XZ9X7AH/Mprfxrlyo0gV0Zk8KMe0aIq+LLB8Fpeeigf88J7mDK20nIO356vNbL4Yo4lPHvS3Fr5UZax+nWiMipca0lBNiyafV4W5+XqdQm0DzXe0NOX3p/UUZCjqg1NtD5rMx5C3qS0y914=,iv:fC7yV+Ht4i4AA9QIE5mhUXxoU+U6glwH/e9doBrakCg=,tag:zQat0syODG9Nm6vHlHjnvA==,type:str]",
-		"pgp": null,
-		"unencrypted_suffix": "_unencrypted",
-		"version": "3.9.4"
-	}
-}
\ No newline at end of file
diff --git a/id.tjo.space/terraform/terraform.tfvars b/id.tjo.space/terraform/terraform.tfvars
deleted file mode 100644
index d22fcaa..0000000
--- a/id.tjo.space/terraform/terraform.tfvars
+++ /dev/null
@@ -1,9 +0,0 @@
-nodes = [
-  "01",
-]
-
-ssh_keys = {
-  "tine+pc"     = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICXAlzwziqfUUb2qmFwNF/nrBYc5MNT1MMOx81ohBmB+ tine+pc@tjo.space"
-  "tine+mobile" = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAdPg/nG/Qzk110SBukHHEDqH6/3IJHsIKKHWTrqjaOh tine+mobile@tjo.space"
-  "tine+ipad"   = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHrX2u82zWpVhjWng1cR4Kj76SajLJQ/Nmwd2GPaJpt1 tine+ipad@tjo.cloud"
-}
diff --git a/id.tjo.space/terraform/variables.tf b/id.tjo.space/terraform/variables.tf
deleted file mode 100644
index 0b2e67f..0000000
--- a/id.tjo.space/terraform/variables.tf
+++ /dev/null
@@ -1,21 +0,0 @@
-variable "hcloud_token" {
-  sensitive = true
-  type      = string
-}
-
-variable "dnsimple_token" {
-  sensitive = true
-  type      = string
-}
-
-variable "dnsimple_account_id" {
-  type = string
-}
-
-variable "ssh_keys" {
-  type = map(string)
-}
-
-variable "nodes" {
-  type = list(string)
-}