init
This commit is contained in:
11
hosts/ps09rp/portainer-agent/docker-compose.yml
Normal file
11
hosts/ps09rp/portainer-agent/docker-compose.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
services:
|
||||
portainer:
|
||||
container_name: portainer-agent
|
||||
image: portainer/agent:latest
|
||||
ports:
|
||||
- 9001:9001
|
||||
privileged: true
|
||||
restart: always
|
||||
volumes:
|
||||
- /var/lib/docker/volumes:/var/lib/docker/volumes
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
11
hosts/ps09rp/tailscale/.env
Normal file
11
hosts/ps09rp/tailscale/.env
Normal file
@@ -0,0 +1,11 @@
|
||||
TS_AUTHKEY=""
|
||||
TS_HOSTNAME=ps09rp
|
||||
TS_ROUTES=192.168.1.0/24
|
||||
TS_STATE_DIR=/var/lib/tailscale
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
24
hosts/ps09rp/tailscale/docker-compose.yml
Normal file
24
hosts/ps09rp/tailscale/docker-compose.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
services:
|
||||
tailscaled:
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
- NET_RAW
|
||||
container_name: tailscaled
|
||||
env_file:
|
||||
- .env
|
||||
hostname: ps09rp
|
||||
image: tailscale/tailscale:stable
|
||||
network_mode: host
|
||||
privileged: true
|
||||
restart: always
|
||||
volumes:
|
||||
- tailscale:/var/lib/tailscale
|
||||
- /dev/net/tun:/dev/net/tun
|
||||
|
||||
volumes:
|
||||
tailscale:
|
||||
driver: local
|
||||
driver_opts:
|
||||
type: none
|
||||
o: bind
|
||||
device: /opt/tailscale
|
3
hosts/ps09rp/technitium/.env
Normal file
3
hosts/ps09rp/technitium/.env
Normal file
@@ -0,0 +1,3 @@
|
||||
DNS_SERVER_DOMAIN=alexlebens.net
|
||||
DNS_SERVER_ADMIN_PASSWORD=""
|
||||
DNS_SERVER_FORWARDERS=1.1.1.1, 1.0.0.1
|
37
hosts/ps09rp/technitium/docker-compose.yaml
Normal file
37
hosts/ps09rp/technitium/docker-compose.yaml
Normal file
@@ -0,0 +1,37 @@
|
||||
services:
|
||||
technitium:
|
||||
container_name: technitium
|
||||
env_file:
|
||||
- .env
|
||||
image: technitium/dns-server:latest
|
||||
labels:
|
||||
traefik.docker.network: traefik
|
||||
traefik.enable: true
|
||||
traefik.http.routers.technitium.entrypoints: websecure
|
||||
traefik.http.routers.technitium.rule: Host(`technitium-ps09rp.alexlebens.net`)
|
||||
traefik.http.routers.technitium.service: technitium
|
||||
traefik.http.services.technitium.loadbalancer.server.port: 5380
|
||||
networks:
|
||||
traefik: null
|
||||
ports:
|
||||
- 53:53/udp
|
||||
- 53:53/tcp
|
||||
- 67:67/udp
|
||||
restart: always
|
||||
sysctls:
|
||||
- net.ipv4.ip_local_port_range=1024 65000
|
||||
volumes:
|
||||
- config:/etc/dns
|
||||
|
||||
networks:
|
||||
traefik:
|
||||
name: traefik
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
config:
|
||||
driver: local
|
||||
driver_opts:
|
||||
type: none
|
||||
o: bind
|
||||
device: /opt/technitium/config
|
3
hosts/ps09rp/traefik/.env
Normal file
3
hosts/ps09rp/traefik/.env
Normal file
@@ -0,0 +1,3 @@
|
||||
CF_API_EMAIL=alexanderlebens@gmail.com
|
||||
CF_API_KEY=""
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
45
hosts/ps09rp/traefik/docker-compose.yaml
Normal file
45
hosts/ps09rp/traefik/docker-compose.yaml
Normal file
@@ -0,0 +1,45 @@
|
||||
services:
|
||||
traefik:
|
||||
command: traefik
|
||||
container_name: traefik
|
||||
env_file:
|
||||
- .env
|
||||
image: docker.io/traefik:v3.0
|
||||
labels:
|
||||
traefik.docker.network: traefik
|
||||
traefik.enable: true
|
||||
traefik.http.routers.dashboard.entrypoints: websecure
|
||||
traefik.http.routers.dashboard.rule: (Host(`traefik-ps09rp.alexlebens.net`) && (PathPrefix(`/api/`) || PathPrefix(`/dashboard/`)))
|
||||
traefik.http.routers.dashboard.service: api@internal
|
||||
traefik.http.routers.dashboard.tls: true
|
||||
traefik.http.routers.dashboard.tls.certresolver: cloudflare
|
||||
networks:
|
||||
traefik: null
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
privileged: true
|
||||
restart: always
|
||||
volumes:
|
||||
- config:/etc/traefik
|
||||
- log:/log
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
|
||||
networks:
|
||||
traefik:
|
||||
name: traefik
|
||||
|
||||
volumes:
|
||||
config:
|
||||
driver: local
|
||||
driver_opts:
|
||||
type: none
|
||||
o: bind
|
||||
device: /opt/traefik/config
|
||||
|
||||
log:
|
||||
driver: local
|
||||
driver_opts:
|
||||
type: none
|
||||
o: bind
|
||||
device: /opt/traefik/log
|
15
hosts/ps09rp/traefik/traefik_config/conf/iplocal.yml
Normal file
15
hosts/ps09rp/traefik/traefik_config/conf/iplocal.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
http:
|
||||
middlewares:
|
||||
ip-local:
|
||||
IPAllowList:
|
||||
sourceRange:
|
||||
- "192.168.1.1/16"
|
||||
- "172.27.0.0/16"
|
||||
|
||||
tcp:
|
||||
middlewares:
|
||||
ip-local:
|
||||
IPAllowList:
|
||||
sourceRange:
|
||||
- "192.168.1.1/16"
|
||||
- "172.27.0.0/16"
|
8
hosts/ps09rp/traefik/traefik_config/conf/metrics.yml
Normal file
8
hosts/ps09rp/traefik/traefik_config/conf/metrics.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
http:
|
||||
routers:
|
||||
prometheus:
|
||||
rule: "(Host(`traefik-ps09rp.alexlebens.net`) && Path(`/metrics`))"
|
||||
entryPoints: websecure
|
||||
service: prometheus@internal
|
||||
middlewares:
|
||||
- "ip-local@file"
|
113
hosts/ps09rp/traefik/traefik_config/traefik.yml
Normal file
113
hosts/ps09rp/traefik/traefik_config/traefik.yml
Normal file
@@ -0,0 +1,113 @@
|
||||
################################################################
|
||||
# Global
|
||||
################################################################
|
||||
|
||||
global:
|
||||
checkNewVersion: true
|
||||
sendAnonymousUsage: false
|
||||
|
||||
################################################################
|
||||
# EntryPoints
|
||||
################################################################
|
||||
|
||||
entryPoints:
|
||||
web:
|
||||
address: :80
|
||||
http:
|
||||
redirections:
|
||||
entryPoint:
|
||||
to: websecure
|
||||
scheme: https
|
||||
|
||||
websecure:
|
||||
address: :443
|
||||
forwardedHeaders:
|
||||
trustedIPs:
|
||||
- "192.168.1.1/16"
|
||||
proxyProtocol:
|
||||
trustedIPs:
|
||||
- "192.168.1.1/16"
|
||||
http:
|
||||
tls:
|
||||
options: default
|
||||
certResolver: cloudflare
|
||||
domains:
|
||||
- main: "*.alexlebens.net"
|
||||
sans:
|
||||
- "alexlebens.net"
|
||||
middlewares:
|
||||
- ip-local@file
|
||||
|
||||
################################################################
|
||||
# Certificate Resolvers
|
||||
################################################################
|
||||
|
||||
certificatesResolvers:
|
||||
cloudflare:
|
||||
acme:
|
||||
email: alexanderlebens@gmail.com
|
||||
storage: /etc/traefik/acme/acme.json
|
||||
preferredChain: "ISRG Root X1"
|
||||
dnsChallenge:
|
||||
provider: cloudflare
|
||||
delayBeforeCheck: "3"
|
||||
resolvers:
|
||||
- "1.1.1.1"
|
||||
- "1.0.0.1"
|
||||
|
||||
################################################################
|
||||
# Traefik logs
|
||||
################################################################
|
||||
|
||||
log:
|
||||
level: INFO
|
||||
|
||||
################################################################
|
||||
# Access logs
|
||||
################################################################
|
||||
|
||||
accessLog: {}
|
||||
|
||||
################################################################
|
||||
# API and Dashboard
|
||||
################################################################
|
||||
|
||||
api:
|
||||
insecure: false
|
||||
dashboard: true
|
||||
|
||||
################################################################
|
||||
# Ping
|
||||
################################################################
|
||||
|
||||
# ping:
|
||||
|
||||
################################################################
|
||||
# Metrics
|
||||
################################################################
|
||||
|
||||
metrics:
|
||||
prometheus:
|
||||
addEntryPointsLabels: true
|
||||
addRoutersLabels: true
|
||||
addServicesLabels: true
|
||||
buckets:
|
||||
- 0.1
|
||||
- 0.3
|
||||
- 1.2
|
||||
- 5.0
|
||||
entryPoint: websecure
|
||||
manualRouting: true
|
||||
|
||||
################################################################
|
||||
# Providers
|
||||
################################################################
|
||||
|
||||
providers:
|
||||
docker:
|
||||
endpoint: "unix:///var/run/docker.sock"
|
||||
exposedByDefault: false
|
||||
|
||||
file:
|
||||
directory: "/etc/traefik/conf"
|
||||
watch: true
|
5
hosts/ps09rp/watchtower/.env
Normal file
5
hosts/ps09rp/watchtower/.env
Normal file
@@ -0,0 +1,5 @@
|
||||
TZ=US/Central
|
||||
WATCHTOWER_HTTP_API_METRICS=true
|
||||
WATCHTOWER_HTTP_API_TOKEN=token
|
||||
WATCHTOWER_CLEANUP=true
|
||||
WATCHTOWER_POLL_INTERVAL=3600
|
10
hosts/ps09rp/watchtower/docker-compose.yml
Normal file
10
hosts/ps09rp/watchtower/docker-compose.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
services:
|
||||
watchtower:
|
||||
container_name: watchtower
|
||||
env_file:
|
||||
- .env
|
||||
image: containrrr/watchtower:latest
|
||||
privileged: true
|
||||
restart: always
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
Reference in New Issue
Block a user