Compare commits
2 Commits
e19f86a87d
...
332ec260a1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
332ec260a1 | ||
|
|
79f7ccdf3f |
@@ -6,7 +6,7 @@
|
|||||||
# Whenever I need to remove some service then I can comment out the lines here.
|
# Whenever I need to remove some service then I can comment out the lines here.
|
||||||
include:
|
include:
|
||||||
- path:
|
- path:
|
||||||
# - ${SERVICE_PATH}/caddy/caddy.yml
|
- ${SERVICE_PATH}/caddy/caddy.yml
|
||||||
- ${SERVICE_PATH}/headscale/headscale.yml
|
- ${SERVICE_PATH}/headscale/headscale.yml
|
||||||
- ${SERVICE_PATH}/watchtower/watchtower.yml
|
- ${SERVICE_PATH}/watchtower/watchtower.yml
|
||||||
env_file: ${SERVICE_PATH}/.env
|
env_file: ${SERVICE_PATH}/.env
|
||||||
|
|||||||
174
services/caddy/Caddyfile
Normal file
174
services/caddy/Caddyfile
Normal file
@@ -0,0 +1,174 @@
|
|||||||
|
(forward_headers) {
|
||||||
|
header {
|
||||||
|
Permissions-Policy interest-cohort=()
|
||||||
|
Strict-Transport-Security "max-age=31536000; includeSubdomains"
|
||||||
|
X-XSS-Protection "1; mode=block"
|
||||||
|
X-Content-Type-Options "nosniff"
|
||||||
|
X-Robots-Tag noindex, nofollow
|
||||||
|
Referrer-Policy "same-origin"
|
||||||
|
Content-Security-Policy "frame-ancestors {$public_domain }} *.{$public_domain}"
|
||||||
|
-Server
|
||||||
|
Permissions-Policy "geolocation=(self {$public_domain }} *.{$public_domain}), microphone=()"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
auth.{$public_domain} {
|
||||||
|
reverse_proxy ${node_local_ip} {
|
||||||
|
transport http {
|
||||||
|
tls_insecure_skip_verify
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tls {$email}
|
||||||
|
import forward_headers
|
||||||
|
}
|
||||||
|
|
||||||
|
audiobookshelf.{$public_domain} {
|
||||||
|
reverse_proxy ${node_local_ip} {
|
||||||
|
transport http {
|
||||||
|
tls_insecure_skip_verify
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tls {$email}
|
||||||
|
import forward_headers
|
||||||
|
}
|
||||||
|
|
||||||
|
gitea.{$public_domain} {
|
||||||
|
reverse_proxy ${node_local_ip} {
|
||||||
|
transport http {
|
||||||
|
tls_insecure_skip_verify
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tls {$email}
|
||||||
|
import forward_headers
|
||||||
|
}
|
||||||
|
|
||||||
|
headscale.{$public_domain} {
|
||||||
|
reverse_proxy ${node_local_ip} {
|
||||||
|
transport http {
|
||||||
|
tls_insecure_skip_verify
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tls {$email}
|
||||||
|
import forward_headers
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
immich.{$public_domain} {
|
||||||
|
reverse_proxy ${node_local_ip} {
|
||||||
|
transport http {
|
||||||
|
tls_insecure_skip_verify
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tls {$email}
|
||||||
|
import forward_headers
|
||||||
|
}
|
||||||
|
|
||||||
|
ldap.{$public_domain} {
|
||||||
|
reverse_proxy ${node_local_ip} {
|
||||||
|
transport http {
|
||||||
|
tls_insecure_skip_verify
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tls {$email}
|
||||||
|
import forward_headers
|
||||||
|
}
|
||||||
|
|
||||||
|
linkwarden.{$public_domain} {
|
||||||
|
reverse_proxy ${node_local_ip} {
|
||||||
|
transport http {
|
||||||
|
tls_insecure_skip_verify
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tls {$email}
|
||||||
|
import forward_headers
|
||||||
|
}
|
||||||
|
|
||||||
|
mealie.{$public_domain} {
|
||||||
|
reverse_proxy ${node_local_ip} {
|
||||||
|
transport http {
|
||||||
|
tls_insecure_skip_verify
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tls {$email}
|
||||||
|
import forward_headers
|
||||||
|
}
|
||||||
|
|
||||||
|
paperless.{$public_domain} {
|
||||||
|
reverse_proxy ${node_local_ip} {
|
||||||
|
transport http {
|
||||||
|
tls_insecure_skip_verify
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tls {$email}
|
||||||
|
import forward_headers
|
||||||
|
}
|
||||||
|
|
||||||
|
radicale.{$public_domain} {
|
||||||
|
reverse_proxy ${node_local_ip} {
|
||||||
|
transport http {
|
||||||
|
tls_insecure_skip_verify
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tls {$email}
|
||||||
|
import forward_headers
|
||||||
|
}
|
||||||
|
|
||||||
|
shlink.{$public_domain} {
|
||||||
|
reverse_proxy ${node_local_ip} {
|
||||||
|
transport http {
|
||||||
|
tls_insecure_skip_verify
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tls {$email}
|
||||||
|
import forward_headers
|
||||||
|
}
|
||||||
|
|
||||||
|
stirling-pdf.{$public_domain} {
|
||||||
|
reverse_proxy ${node_local_ip} {
|
||||||
|
transport http {
|
||||||
|
tls_insecure_skip_verify
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tls {$email}
|
||||||
|
import forward_headers
|
||||||
|
}
|
||||||
|
|
||||||
|
superset.{$public_domain} {
|
||||||
|
reverse_proxy ${node_local_ip} {
|
||||||
|
transport http {
|
||||||
|
tls_insecure_skip_verify
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tls {$email}
|
||||||
|
import forward_headers
|
||||||
|
}
|
||||||
|
|
||||||
|
vaultwarden.{$public_domain} {
|
||||||
|
reverse_proxy ${node_local_ip} {
|
||||||
|
transport http {
|
||||||
|
tls_insecure_skip_verify
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tls {$email}
|
||||||
|
import forward_headers
|
||||||
|
}
|
||||||
|
|
||||||
|
vikunja.{$public_domain} {
|
||||||
|
reverse_proxy ${node_local_ip} {
|
||||||
|
transport http {
|
||||||
|
tls_insecure_skip_verify
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tls {$email}
|
||||||
|
import forward_headers
|
||||||
|
}
|
||||||
|
|
||||||
|
{$public_domain} {
|
||||||
|
reverse_proxy ${node_local_ip} {
|
||||||
|
transport http {
|
||||||
|
tls_insecure_skip_verify
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tls {$email}
|
||||||
|
import forward_headers
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
services:
|
||||||
|
caddy:
|
||||||
|
extends:
|
||||||
|
file: ${TEMPLATES_PATH}
|
||||||
|
service: default
|
||||||
|
image: caddy
|
||||||
|
container_name: caddy
|
||||||
|
volumes:
|
||||||
|
- ${SERVICE_PATH}/caddy/config:/etc/headscale
|
||||||
|
- ${SERVICE_PATH}/caddy/Caddyfile:/etc/caddy/Caddyfile
|
||||||
|
- ${SERVICE_PATH}/caddy/site:/srv
|
||||||
|
- ${SERVICE_PATH}/caddy/data:/data
|
||||||
|
- ${SERVICE_PATH}/caddy/config:/config
|
||||||
|
- ${SERVICE_PATH}/caddy/certs:/certs
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
- "443:443/udp"
|
||||||
|
environment:
|
||||||
|
email: ${EMAIL}
|
||||||
|
public_domain: ${PUBLIC_DOMAIN}
|
||||||
|
private_domain: ${LOCAL_DOMAIN}
|
||||||
|
node_local_ip: ${NODE_LOCAL_IP}
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
networks:
|
||||||
|
- ip4net
|
||||||
|
labels:
|
||||||
|
# Watchtower
|
||||||
|
- "com.centurylinklabs.watchtower.enable=true"
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
#
|
#
|
||||||
# https://myheadscale.example.com:443
|
# https://myheadscale.example.com:443
|
||||||
#
|
#
|
||||||
server_url: http://127.0.0.1:8080
|
server_url: http://0.0.0.0:8080
|
||||||
|
|
||||||
# Address to listen to / bind to on the server
|
# Address to listen to / bind to on the server
|
||||||
#
|
#
|
||||||
@@ -77,7 +77,7 @@ derp:
|
|||||||
server:
|
server:
|
||||||
# If enabled, runs the embedded DERP server and merges it into the rest of the DERP config
|
# If enabled, runs the embedded DERP server and merges it into the rest of the DERP config
|
||||||
# The Headscale server_url defined above MUST be using https, DERP requires TLS to be in place
|
# The Headscale server_url defined above MUST be using https, DERP requires TLS to be in place
|
||||||
enabled: false
|
enabled: true
|
||||||
|
|
||||||
# Region ID to use for the embedded DERP server.
|
# Region ID to use for the embedded DERP server.
|
||||||
# The local DERP prevails if the region ID collides with other region ID coming from
|
# The local DERP prevails if the region ID collides with other region ID coming from
|
||||||
|
|||||||
Reference in New Issue
Block a user