Compare commits

..
1 Commits
10 changed files with 90 additions and 116 deletions
-1
View File
@@ -10,4 +10,3 @@ lib/
**/headscale/run/ **/headscale/run/
**/crowdsec/config/ **/crowdsec/config/
**/crowdsec/data/ **/crowdsec/data/
**/beszel/data/
-1
View File
@@ -8,7 +8,6 @@ include:
- path: - path:
- ${SERVICE_PATH}/crowdsec/crowdsec.yml - ${SERVICE_PATH}/crowdsec/crowdsec.yml
- ${SERVICE_PATH}/headscale/headscale.yml - ${SERVICE_PATH}/headscale/headscale.yml
- ${SERVICE_PATH}/beszel/beszel.yml
- ${SERVICE_PATH}/traefik/traefik.yml - ${SERVICE_PATH}/traefik/traefik.yml
env_file: ${SERVICE_PATH}/.env env_file: ${SERVICE_PATH}/.env
-17
View File
@@ -1,17 +0,0 @@
services:
beszel-agent:
extends:
file: ${TEMPLATES_PATH}
service: default
image: henrygd/beszel-agent:0.19.0
container_name: beszel-agent
network_mode: host
volumes:
- ${SERVICE_PATH}/beszel/data:/var/lib/beszel-agent
- ${SERVICE_PATH}/beszel/socket:/beszel_socket
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
LISTEN: /beszel_socket/beszel.sock
HUB_URL: http://100.64.0.3:3004
TOKEN: ${BESZEL_VPS_TOKEN}
KEY: ${BESZEL_VPS_KEY}
+1 -1
View File
@@ -47,5 +47,5 @@ api:
prometheus: prometheus:
enabled: true enabled: true
level: full level: full
listen_addr: "100.64.0.3" listen_addr: "[::]"
listen_port: 6060 listen_port: 6060
+4 -2
View File
@@ -4,10 +4,10 @@ services:
file: ${TEMPLATES_PATH} file: ${TEMPLATES_PATH}
service: default service: default
container_name: crowdsec container_name: crowdsec
image: crowdsecurity/crowdsec:v1.8.1 image: crowdsecurity/crowdsec:v1.7.7
environment: environment:
COLLECTIONS: crowdsecurity/traefik crowdsecurity/appsec-virtual-patching crowdsecurity/appsec-generic-rules crowdsecurity/http-cve COLLECTIONS: crowdsecurity/traefik crowdsecurity/appsec-virtual-patching crowdsecurity/appsec-generic-rules crowdsecurity/http-cve
BOUNCER_KEY_traefik: ${CROWDSEC_API_KEY} CROWDSEC_BOUNCER_API_KEY: ${CROWDSEC_API_KEY}
CUSTOM_HOSTNAME: crowdsec CUSTOM_HOSTNAME: crowdsec
ports: ports:
- 6061:8080 - 6061:8080
@@ -15,6 +15,8 @@ services:
networks: networks:
- ip4net - ip4net
volumes: volumes:
- ${SERVICE_PATH}/crowdsec/config/acquis.yaml:/etc/crowdsec/acquis.yaml:ro
- ${SERVICE_PATH}/crowdsec/config/config.yaml:/etc/crowdsec/config.yaml
- ${SERVICE_PATH}/crowdsec/config:/etc/crowdsec - ${SERVICE_PATH}/crowdsec/config:/etc/crowdsec
- ${SERVICE_PATH}/crowdsec/data:/var/lib/crowdsec/data - ${SERVICE_PATH}/crowdsec/data:/var/lib/crowdsec/data
- /var/log/traefik:/var/log/crowdsec:ro - /var/log/traefik:/var/log/crowdsec:ro
+6 -4
View File
@@ -137,10 +137,7 @@ derp:
disable_check_updates: false disable_check_updates: false
# Time before an inactive ephemeral node is deleted? # Time before an inactive ephemeral node is deleted?
# ephemeral_node_inactivity_timeout: 30m ephemeral_node_inactivity_timeout: 30m
node:
ephemeral:
inactivity_timeout: 30m
database: database:
# Database type. Available options: sqlite, postgres # Database type. Available options: sqlite, postgres
@@ -401,3 +398,8 @@ logtail:
# As there is currently no support for overriding the log server in headscale, this is # As there is currently no support for overriding the log server in headscale, this is
# disabled by default. Enabling this will make your clients send logs to Tailscale Inc. # disabled by default. Enabling this will make your clients send logs to Tailscale Inc.
enabled: false enabled: false
# Enabling this option makes devices prefer a random port for WireGuard traffic over the
# default static port 41641. This option is intended as a workaround for some buggy
# firewall devices. See https://tailscale.com/kb/1181/firewalls/ for more information.
randomize_client_port: false
+1 -1
View File
@@ -23,4 +23,4 @@ services:
- "traefik.http.routers.headscale.entrypoints=https" - "traefik.http.routers.headscale.entrypoints=https"
- "traefik.http.routers.headscale.tls.certresolver=myresolver" - "traefik.http.routers.headscale.tls.certresolver=myresolver"
- "traefik.http.routers.headscale.tls=true" - "traefik.http.routers.headscale.tls=true"
# - "traefik.http.routers.headscale.middlewares=crowdsec-bouncer@file" - "traefik.http.routers.headscale.middlewares=crowdsec-bouncer@file"
+5 -15
View File
@@ -8,8 +8,7 @@ http:
enabled: true enabled: true
logLevel: INFO logLevel: INFO
updateIntervalSeconds: 60 updateIntervalSeconds: 60
metricsUpdateIntervalSeconds: 600 crowdsecMode: live
crowdsecMode: stream
crowdsecAppsecEnabled: true crowdsecAppsecEnabled: true
crowdsecAppsecFailureBlock: true crowdsecAppsecFailureBlock: true
crowdsecAppsecUnreachableBlock: true crowdsecAppsecUnreachableBlock: true
@@ -21,14 +20,13 @@ http:
forwardedHeadersTrustedIPs: forwardedHeadersTrustedIPs:
- 10.0.0.0/8 - 10.0.0.0/8
clientTrustedIPs: clientTrustedIPs:
- 192.168.1.0/24 - 192.168.178.0/24
- 100.64.0.0/24
# captchaProvider: hcaptcha # captchaProvider: hcaptcha
# captchaSiteKey: b2d20610-8dda-4f40-8688-7ca8e1e628f8 # found in hcaptcha account # captchaSiteKey: b2d20610-8dda-4f40-8688-7ca8e1e628f8 # found in hcaptcha account
# captchaSecretKey: {{ env "TRAEFIK_CAPTCHA_KEY" }} # captchaSecretKey: {{ env "TRAEFIK_CAPTCHA_KEY" }}
captchaGracePeriodSeconds: 1800 # captchaGracePeriodSeconds: 1800
captchaHTMLFilePath: /captcha.html # captchaHTMLFilePath: /captcha.html
banHTMLFilePath: /ban.html # banHTMLFilePath: /ban.html
routers: routers:
authelia: authelia:
@@ -119,14 +117,6 @@ http:
certresolver: myresolver certresolver: myresolver
middlewares: crowdsec-bouncer@file middlewares: crowdsec-bouncer@file
quiz:
rule: "Host(`split.{{ env "TRAEFIK_PUBLIC_DOMAIN" }}`)"
service: node
entrypoints: https,http
tls:
certresolver: myresolver
middlewares: crowdsec-bouncer@file
radicale: radicale:
rule: "Host(`radicale.{{ env "TRAEFIK_PUBLIC_DOMAIN" }}`)" rule: "Host(`radicale.{{ env "TRAEFIK_PUBLIC_DOMAIN" }}`)"
service: node service: node
+1 -1
View File
@@ -74,4 +74,4 @@ experimental:
plugins: plugins:
crowdsec-bouncer-traefik-plugin: crowdsec-bouncer-traefik-plugin:
moduleName: "github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin" moduleName: "github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin"
version: "v1.7.1" version: "v1.5.0-beta1"
+72 -73
View File
@@ -3,15 +3,14 @@ services:
extends: extends:
file: ${TEMPLATES_PATH} file: ${TEMPLATES_PATH}
service: default service: default
image: traefik:v3.7.13 image: traefik:v3.6.12
container_name: traefik container_name: traefik
ports: ports:
- "80:80" - "80:80"
- "443:443" - "443:443"
- "8079:8080" - "8079:8080"
networks: networks:
ip4net: - ip4net
ipv4_address: 10.6.0.10
environment: environment:
TRAEFIK_EMAIL: ${EMAIL} TRAEFIK_EMAIL: ${EMAIL}
TRAEFIK_PUBLIC_DOMAIN: ${PUBLIC_DOMAIN} TRAEFIK_PUBLIC_DOMAIN: ${PUBLIC_DOMAIN}
@@ -38,73 +37,73 @@ services:
- "traefik.http.routers.traefik.entrypoints=https" - "traefik.http.routers.traefik.entrypoints=https"
- "traefik.http.routers.traefik.tls=true" - "traefik.http.routers.traefik.tls=true"
# traefik-agent: traefik-agent:
# extends: extends:
# file: ${TEMPLATES_PATH} file: ${TEMPLATES_PATH}
# service: default service: default
# image: hhftechnology/traefik-log-dashboard-agent:2.4.1 image: hhftechnology/traefik-log-dashboard-agent:3.1.0
# container_name: traefik-agent container_name: traefik-log-dashboard-agent
# networks: networks:
# - ip4net - ip4net
# ports: ports:
# - "8078:5000" - "8078:5000"
# volumes: volumes:
# - "/var/log/traefik/:/logs:ro" - "/var/log/traefik/:/logs:ro"
# - "${SERVICE_PATH}/traefik/log-dashboard/positions:/data" - "${SERVICE_PATH}/traefik/log-dashboard/positions:/data"
# environment: environment:
# TRAEFIK_LOG_DASHBOARD_ACCESS_PATH: /logs/access.log TRAEFIK_LOG_DASHBOARD_ACCESS_PATH: /logs/access.log
# TRAEFIK_LOG_DASHBOARD_AUTH_TOKEN: ${TRAEFIK_DASHBOARD_TOKEN} TRAEFIK_LOG_DASHBOARD_AUTH_TOKEN: ${TRAEFIK_DASHBOARD_TOKEN}
# TRAEFIK_LOG_DASHBOARD_SYSTEM_MONITORING: true TRAEFIK_LOG_DASHBOARD_SYSTEM_MONITORING: true
# TRAEFIK_LOG_DASHBOARD_LOG_FORMAT: json TRAEFIK_LOG_DASHBOARD_LOG_FORMAT: json
# deploy: deploy:
# resources: resources:
# limits: limits:
# cpus: "0.15" cpus: "0.10"
# memory: 50M memory: 50M
# healthcheck: healthcheck:
# test: test:
# [ [
# "CMD", "CMD",
# "wget", "wget",
# "--no-verbose", "--no-verbose",
# "--tries=1", "--tries=1",
# "--spider", "--spider",
# "http://localhost:5000/api/logs/status", "http://localhost:5000/api/logs/status",
# ] ]
# interval: 2m interval: 2m
# timeout: 10s timeout: 10s
# retries: 3 retries: 3
# start_period: 30s start_period: 30s
#
# traefik-dashboard: traefik-dashboard:
# extends: extends:
# file: ${TEMPLATES_PATH} file: ${TEMPLATES_PATH}
# service: default service: default
# image: hhftechnology/traefik-log-dashboard:2.4.1 image: hhftechnology/traefik-log-dashboard:3.1.0
# container_name: traefik-dashboard container_name: traefik-log-dashboard
# networks: networks:
# - ip4net - ip4net
# ports: ports:
# - "8077:3000" - "8077:3000"
# volumes: volumes:
# - "${SERVICE_PATH}/traefik/log-dashboard/dashboard:/app/data" - "${SERVICE_PATH}/traefik/log-dashboard/dashboard:/app/data"
# - "${SERVICE_PATH}/traefik/log-dashboard/positions:/data" - "${SERVICE_PATH}/traefik/log-dashboard/positions:/data"
# environment: environment:
# AGENT_API_URL: http://traefik-agent:5000 AGENT_API_URL: http://traefik-agent:5000
# AGENT_API_TOKEN: ${TRAEFIK_DASHBOARD_TOKEN} AGENT_API_TOKEN: ${TRAEFIK_DASHBOARD_TOKEN}
# # Display Configuration # Display Configuration
# NEXT_PUBLIC_SHOW_DEMO_PAGE: false NEXT_PUBLIC_SHOW_DEMO_PAGE: false
# depends_on: depends_on:
# traefik-agent: traefik-agent:
# condition: service_healthy condition: service_healthy
# deploy: deploy:
# resources: resources:
# limits: limits:
# cpus: "0.1" cpus: "0.1"
# memory: 120M memory: 50M
# labels: labels:
# # traefik # traefik
# - "traefik.enable=true" - "traefik.enable=true"
# - "traefik.http.routers.traefik-log-dashboard.rule=Host(`traefik-dashboard.${LOCAL_VPS_DOMAIN}`)" - "traefik.http.routers.traefik-log-dashboard.rule=Host(`traefik-dashboard.${LOCAL_VPS_DOMAIN}`)"
# - "traefik.http.routers.traefik-log-dashboard.entrypoints=https" - "traefik.http.routers.traefik-log-dashboard.entrypoints=https"
# - "traefik.http.routers.traefik-log-dashboard.tls=true" - "traefik.http.routers.traefik-log-dashboard.tls=true"