summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElizabeth Hunt <elizabeth.hunt@simponic.xyz>2024-04-12 16:57:00 -0400
committerElizabeth Hunt <elizabeth.hunt@simponic.xyz>2024-04-12 16:57:00 -0400
commitf9d62cc8a792b7b1a2c52a7d8102895473b3c72a (patch)
tree362f40d95af48512bc224e7490eff63e115b7689
parent64a2990c536b8a436279db9c576e75c6c1782546 (diff)
downloadoldinfra-f9d62cc8a792b7b1a2c52a7d8102895473b3c72a.tar.gz
oldinfra-f9d62cc8a792b7b1a2c52a7d8102895473b3c72a.zip
ntfy
-rw-r--r--deploy-ntfy.yml4
-rw-r--r--inventory3
-rw-r--r--roles/ntfy/tasks/main.yml22
-rw-r--r--roles/ntfy/templates/docker-compose.yml.j215
-rw-r--r--roles/private/files/johan/http.ntfy.internal.simponic.xyz.conf13
-rw-r--r--roles/private/files/johan/https.ntfy.internal.simponic.xyz.conf32
-rw-r--r--roles/vaultwarden/templates/docker-compose.yml.j24
-rw-r--r--roles/webservers/files/levi/http.ntfy.simponic.hatecomputers.club.conf13
-rw-r--r--roles/webservers/files/levi/https.ntfy.simponic.hatecomputers.club.conf28
9 files changed, 132 insertions, 2 deletions
diff --git a/deploy-ntfy.yml b/deploy-ntfy.yml
new file mode 100644
index 0000000..5f117c8
--- /dev/null
+++ b/deploy-ntfy.yml
@@ -0,0 +1,4 @@
+- name: ntfy setup
+ hosts: ntfy
+ roles:
+ - ntfy
diff --git a/inventory b/inventory
index c169e98..78f5c21 100644
--- a/inventory
+++ b/inventory
@@ -66,3 +66,6 @@ europa ansible_user=root ansible_connection=ssh
[hatecomputers]
levi ansible_user=root ansible_connection=ssh
+
+[ntfy]
+johan ansible_user=root ansible_connection=ssh
diff --git a/roles/ntfy/tasks/main.yml b/roles/ntfy/tasks/main.yml
new file mode 100644
index 0000000..0ee34e3
--- /dev/null
+++ b/roles/ntfy/tasks/main.yml
@@ -0,0 +1,22 @@
+---
+- name: ensure ntfy docker/compose exist
+ file:
+ path: /etc/docker/compose/ntfy
+ state: directory
+ owner: root
+ group: root
+ mode: 0700
+
+- name: build ntfy docker-compose.yml.j2
+ template:
+ src: ../templates/docker-compose.yml.j2
+ dest: /etc/docker/compose/ntfy/docker-compose.yml
+ owner: root
+ group: root
+ mode: u=rw,g=r,o=r
+
+- name: daemon-reload and enable ntfy
+ ansible.builtin.systemd_service:
+ state: restarted
+ enabled: true
+ name: docker-compose@ntfy
diff --git a/roles/ntfy/templates/docker-compose.yml.j2 b/roles/ntfy/templates/docker-compose.yml.j2
new file mode 100644
index 0000000..4ee982e
--- /dev/null
+++ b/roles/ntfy/templates/docker-compose.yml.j2
@@ -0,0 +1,15 @@
+version: "2.1"
+services:
+ ntfy:
+ image: binwiederhier/ntfy
+ container_name: ntfy
+ command:
+ - serve
+ environment:
+ - TZ=UTC
+ volumes:
+ - ./cache:/var/cache/ntfy
+ - ./conf:/etc/ntfy
+ ports:
+ - 127.0.0.1:22311:80
+ restart: unless-stopped
diff --git a/roles/private/files/johan/http.ntfy.internal.simponic.xyz.conf b/roles/private/files/johan/http.ntfy.internal.simponic.xyz.conf
new file mode 100644
index 0000000..cdc7839
--- /dev/null
+++ b/roles/private/files/johan/http.ntfy.internal.simponic.xyz.conf
@@ -0,0 +1,13 @@
+server {
+ listen 80;
+ server_name ntfy.internal.simponic.xyz;
+
+ location /.well-known/acme-challenge {
+ root /var/www/letsencrypt;
+ try_files $uri $uri/ =404;
+ }
+
+ location / {
+ rewrite ^ https://ntfy.internal.simponic.xyz$request_uri? permanent;
+ }
+}
diff --git a/roles/private/files/johan/https.ntfy.internal.simponic.xyz.conf b/roles/private/files/johan/https.ntfy.internal.simponic.xyz.conf
new file mode 100644
index 0000000..0ae2e91
--- /dev/null
+++ b/roles/private/files/johan/https.ntfy.internal.simponic.xyz.conf
@@ -0,0 +1,32 @@
+server {
+ listen 443 ssl;
+ server_name ntfy.internal.simponic.xyz;
+
+ ssl_certificate /etc/letsencrypt/live/ntfy.internal.simponic.xyz/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/ntfy.internal.simponic.xyz/privkey.pem;
+ ssl_trusted_certificate /etc/letsencrypt/live/ntfy.internal.simponic.xyz/fullchain.pem;
+
+ ssl_session_cache shared:SSL:50m;
+ ssl_session_timeout 5m;
+ ssl_stapling on;
+ ssl_stapling_verify on;
+
+ ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
+ ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
+
+ ssl_dhparam /etc/nginx/dhparams.pem;
+ ssl_prefer_server_ciphers on;
+
+ location / {
+ proxy_pass http://127.0.0.1:22311;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ proxy_set_header Host $server_name;
+ proxy_buffering off;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
+ add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
+ }
+}
diff --git a/roles/vaultwarden/templates/docker-compose.yml.j2 b/roles/vaultwarden/templates/docker-compose.yml.j2
index 6224524..17e5c5b 100644
--- a/roles/vaultwarden/templates/docker-compose.yml.j2
+++ b/roles/vaultwarden/templates/docker-compose.yml.j2
@@ -8,7 +8,7 @@ services:
volumes:
- ./data/:/data/
ports:
- - 8652:80
+ - 127.0.0.1:8652:80
environment:
- DOMAIN=https://vaultwarden.internal.simponic.xyz
- LOGIN_RATELIMIT_MAX_BURST=10
@@ -33,4 +33,4 @@ services:
- SMTP_PORT=587
- SMTP_USERNAME=info@simponic.xyz
- SMTP_PASSWORD={{ email_password }}
- - SMTP_AUTH_MECHANISM="Plain" \ No newline at end of file
+ - SMTP_AUTH_MECHANISM="Plain"
diff --git a/roles/webservers/files/levi/http.ntfy.simponic.hatecomputers.club.conf b/roles/webservers/files/levi/http.ntfy.simponic.hatecomputers.club.conf
new file mode 100644
index 0000000..0306736
--- /dev/null
+++ b/roles/webservers/files/levi/http.ntfy.simponic.hatecomputers.club.conf
@@ -0,0 +1,13 @@
+server {
+ listen 80;
+ server_name ntfy.simponic.hatecomputers.club;
+
+ location /.well-known/acme-challenge {
+ root /var/www/letsencrypt;
+ try_files $uri $uri/ =404;
+ }
+
+ location / {
+ rewrite ^ https://ntfy.simponic.hatecomputers.club$request_uri? permanent;
+ }
+}
diff --git a/roles/webservers/files/levi/https.ntfy.simponic.hatecomputers.club.conf b/roles/webservers/files/levi/https.ntfy.simponic.hatecomputers.club.conf
new file mode 100644
index 0000000..5114af0
--- /dev/null
+++ b/roles/webservers/files/levi/https.ntfy.simponic.hatecomputers.club.conf
@@ -0,0 +1,28 @@
+server {
+ listen 443 ssl;
+
+ allow 10.0.0.0/8;
+ allow 100.64.0.0/12;
+ deny all;
+
+ server_name ntfy.simponic.hatecomputers.club;
+
+ ssl_certificate /etc/letsencrypt/live/ntfy.simponic.hatecomputers.club/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/ntfy.simponic.hatecomputers.club/privkey.pem;
+ ssl_trusted_certificate /etc/letsencrypt/live/ntfy.simponic.hatecomputers.club/fullchain.pem;
+
+ ssl_session_cache shared:SSL:50m;
+ ssl_session_timeout 5m;
+ ssl_stapling on;
+ ssl_stapling_verify on;
+
+ ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
+ ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
+
+ ssl_dhparam /etc/nginx/dhparams.pem;
+ ssl_prefer_server_ciphers on;
+
+ location / {
+ proxy_pass https://ntfy.internal.simponic.xyz;
+ }
+}