summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--group_vars/all.yml4
-rw-r--r--group_vars/keepalived.yml2
-rw-r--r--group_vars/outbound.yml2
-rw-r--r--group_vars/traefik.yml2
-rw-r--r--playbooks/roles/outbound/templates/proxy/docker-compose.yml17
-rw-r--r--playbooks/roles/outbound/templates/proxy/sites-enabled/default.conf7
-rw-r--r--playbooks/roles/outbound/templates/proxy/sites-enabled/idm.conf13
-rw-r--r--playbooks/roles/traefik/templates/stacks/docker-compose.yml2
8 files changed, 35 insertions, 14 deletions
diff --git a/group_vars/all.yml b/group_vars/all.yml
index 5066a4d..db9048f 100644
--- a/group_vars/all.yml
+++ b/group_vars/all.yml
@@ -11,6 +11,10 @@ timezone: "America/Los_Angeles"
domain: "liz.coffee"
idm_domain: "idm.{{ domain }}"
headscale_host: "vpn.{{ domain }}"
+# super internal private servers
+traefik_domain: "sips.{{ domain }}"
# first deployment?
homelab_build: false
+
+loadbalancer_ip: "10.128.0.200"
diff --git a/group_vars/keepalived.yml b/group_vars/keepalived.yml
index 8beb081..aa76190 100644
--- a/group_vars/keepalived.yml
+++ b/group_vars/keepalived.yml
@@ -1,7 +1,7 @@
---
keepalived_interface: "enp6s18"
-keepalived_virtual_ip: "10.128.0.200"
+keepalived_virtual_ip: "{{ loadbalancer_ip }}"
keepalived_virtual_router_id: 50
keepalived_priority: 100
keepalived_healthcheck_script: "/etc/keepalived/healthcheck.sh"
diff --git a/group_vars/outbound.yml b/group_vars/outbound.yml
index 0dac73a..3a9a51a 100644
--- a/group_vars/outbound.yml
+++ b/group_vars/outbound.yml
@@ -5,7 +5,7 @@ headscale_base_domain: '{{ headscale_host }}'
headscale_port: '8080'
headscale_listen_addr: '0.0.0.0:{{ headscale_port }}'
-headscale_dns_for_connected_clients_1: '1.1.1.1'
+headscale_dns_for_connected_clients_1: '{{ loadbalancer_ip }}'
headscale_dns_for_connected_clients_2: '1.0.0.1'
generate_api_key: '{{ homelab_build }}'
diff --git a/group_vars/traefik.yml b/group_vars/traefik.yml
index 75d7e0f..6b7effa 100644
--- a/group_vars/traefik.yml
+++ b/group_vars/traefik.yml
@@ -1,6 +1,4 @@
---
-# super internal private servers
-traefik_domain: "sips.{{ domain }}"
certs_email: "{{ cloudflare_email }}"
traefik_base: "{{ swarm_base }}/traefik"
diff --git a/playbooks/roles/outbound/templates/proxy/docker-compose.yml b/playbooks/roles/outbound/templates/proxy/docker-compose.yml
index 3074047..7deea56 100644
--- a/playbooks/roles/outbound/templates/proxy/docker-compose.yml
+++ b/playbooks/roles/outbound/templates/proxy/docker-compose.yml
@@ -7,6 +7,10 @@ services:
- TS_STATE_DIR=/var/lib/tailscale
- TS_USERSPACE=false
- TZ={{ timezone }}
+
+ - VIRTUAL_HOST=*.{{ domain }},{{ domain }}
+ - VIRTUAL_PORT=80
+ - LETSENCRYPT_HOST=*.{{ domain }},{{ domain }}
hostname: headscale-outbound
restart: unless-stopped
cap_add:
@@ -16,21 +20,16 @@ services:
- ./data:/var/lib/tailscale
- /dev/net/tun:/dev/net/tun
networks:
- - headnet
+ - proxy
proxy:
image: nginx:latest
+ network_mode: service:headscale-client
depends_on:
- headscale-client
- networks:
- - proxy
- - headnet
- environment:
- - VIRTUAL_HOST=*.{{ domain }},{{ domain }}
- - VIRTUAL_PORT=80
- - LETSENCRYPT_HOST=*.{{ domain }},{{ domain }}
+ volumes:
+ - ./sites-enabled:/etc/nginx/conf.d
networks:
- headnet:
proxy:
external: true
diff --git a/playbooks/roles/outbound/templates/proxy/sites-enabled/default.conf b/playbooks/roles/outbound/templates/proxy/sites-enabled/default.conf
new file mode 100644
index 0000000..d127cc5
--- /dev/null
+++ b/playbooks/roles/outbound/templates/proxy/sites-enabled/default.conf
@@ -0,0 +1,7 @@
+server {
+ listen 80 default_server;
+
+ location / {
+ return 404;
+ }
+}
diff --git a/playbooks/roles/outbound/templates/proxy/sites-enabled/idm.conf b/playbooks/roles/outbound/templates/proxy/sites-enabled/idm.conf
new file mode 100644
index 0000000..c85ebcf
--- /dev/null
+++ b/playbooks/roles/outbound/templates/proxy/sites-enabled/idm.conf
@@ -0,0 +1,13 @@
+server {
+ listen 80;
+ server_name idm.liz.coffee;
+
+ location / {
+ proxy_pass https://{{ loadbalancer_ip }};
+ proxy_ssl_verify off;
+ proxy_set_header Host $host;
+ 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 $scheme;
+ }
+}
diff --git a/playbooks/roles/traefik/templates/stacks/docker-compose.yml b/playbooks/roles/traefik/templates/stacks/docker-compose.yml
index dfdd6ba..deb5329 100644
--- a/playbooks/roles/traefik/templates/stacks/docker-compose.yml
+++ b/playbooks/roles/traefik/templates/stacks/docker-compose.yml
@@ -5,7 +5,7 @@ services:
restart: unless-stopped
environment:
- TS_AUTHKEY={{ headscale_user_auth_key }}
- - TS_EXTRA_ARGS=--login-server=https://{{ headscale_host }} --accept-dns --stateful-filtering=false
+ - TS_EXTRA_ARGS=--login-server=https://{{ headscale_host }} --accept-dns --stateful-filtering=false --advertise-routes={{ loadbalancer_ip }}/32
- TS_STATE_DIR=/var/lib/tailscale
- TS_USERSPACE=false
- TZ={{ timezone }}