Compare commits
66
Commits
3f22dc885c
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
898a4bed54 | ||
|
|
7c9bc84b06 | ||
|
|
716c344b6d | ||
|
|
41ef3bcaaf | ||
|
|
b5db2630b1 | ||
|
|
2a6d22db93 | ||
|
|
51e09b6bc4 | ||
|
|
6418832075 | ||
|
|
3e073440ea | ||
|
|
00895f75d8 | ||
|
|
af1f7de2da | ||
|
|
e193c79fc4 | ||
|
|
462ea903b0 | ||
|
|
9044116b56 | ||
|
|
c9b81b9dbf | ||
|
|
4baa4f28d3 | ||
|
|
f281c8bc0d | ||
|
|
f617beff36 | ||
|
|
e3b0cf5dcf | ||
|
|
35b183643c | ||
|
|
4bf49aa6ab | ||
|
|
ee6f6ebfa5 | ||
|
|
c86b943d94 | ||
|
|
14ff5c355b | ||
|
|
5b53db472e | ||
|
|
9ad2613d19 | ||
|
|
47b6cde201 | ||
|
|
8261ba61fb | ||
|
|
a71465e20b | ||
|
|
0595d8bbf8 | ||
|
|
5964e47efa | ||
|
|
730834c375 | ||
|
|
60526d0bf5 | ||
|
|
d08cd0faa8 | ||
|
|
e5181bbfa8 | ||
|
|
cd54d60847 | ||
|
|
3436cc1485 | ||
|
|
661b2252e1 | ||
|
|
c5f4427dfe | ||
|
|
622389eea2 | ||
|
|
a2d25ac0fb | ||
|
|
5c3a35ad52 | ||
|
|
2c21022a70 | ||
|
|
78473473ac | ||
|
|
2746a8e2cd | ||
|
|
5f4903ca0b | ||
|
|
c39b96ca26 | ||
|
|
6deb59db17 | ||
|
|
513af6503f | ||
|
|
2be8a8b959 | ||
|
|
6f40d82809 | ||
|
|
4568ffc169 | ||
|
|
920ff896ca | ||
|
|
11767ad927 | ||
|
|
e07da8c310 | ||
|
|
0795db7472 | ||
|
|
b02d44dc51 | ||
|
|
9bb6784449 | ||
|
|
75be54438c | ||
|
|
444f387ca3 | ||
|
|
ddf912a4e9 | ||
|
|
15f47d5554 | ||
|
|
6992333c6f | ||
|
|
2af1f4c5d9 | ||
|
|
e74476439d | ||
|
|
c51f5a6d0d |
@@ -10,3 +10,4 @@ lib/
|
|||||||
**/headscale/run/
|
**/headscale/run/
|
||||||
**/crowdsec/config/
|
**/crowdsec/config/
|
||||||
**/crowdsec/data/
|
**/crowdsec/data/
|
||||||
|
**/beszel/data/
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ 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
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
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}
|
||||||
@@ -47,5 +47,5 @@ api:
|
|||||||
prometheus:
|
prometheus:
|
||||||
enabled: true
|
enabled: true
|
||||||
level: full
|
level: full
|
||||||
listen_addr: "[::]"
|
listen_addr: "100.64.0.3"
|
||||||
listen_port: 6060
|
listen_port: 6060
|
||||||
|
|||||||
@@ -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.7.6
|
image: crowdsecurity/crowdsec:v1.8.1
|
||||||
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
|
||||||
CROWDSEC_BOUNCER_API_KEY: ${CROWDSEC_API_KEY}
|
BOUNCER_KEY_traefik: ${CROWDSEC_API_KEY}
|
||||||
CUSTOM_HOSTNAME: crowdsec
|
CUSTOM_HOSTNAME: crowdsec
|
||||||
ports:
|
ports:
|
||||||
- 6061:8080
|
- 6061:8080
|
||||||
@@ -15,8 +15,6 @@ 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
|
||||||
|
|||||||
@@ -137,7 +137,10 @@ 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
|
||||||
@@ -398,8 +401,3 @@ 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
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -8,7 +8,8 @@ http:
|
|||||||
enabled: true
|
enabled: true
|
||||||
logLevel: INFO
|
logLevel: INFO
|
||||||
updateIntervalSeconds: 60
|
updateIntervalSeconds: 60
|
||||||
crowdsecMode: live
|
metricsUpdateIntervalSeconds: 600
|
||||||
|
crowdsecMode: stream
|
||||||
crowdsecAppsecEnabled: true
|
crowdsecAppsecEnabled: true
|
||||||
crowdsecAppsecFailureBlock: true
|
crowdsecAppsecFailureBlock: true
|
||||||
crowdsecAppsecUnreachableBlock: true
|
crowdsecAppsecUnreachableBlock: true
|
||||||
@@ -20,13 +21,14 @@ http:
|
|||||||
forwardedHeadersTrustedIPs:
|
forwardedHeadersTrustedIPs:
|
||||||
- 10.0.0.0/8
|
- 10.0.0.0/8
|
||||||
clientTrustedIPs:
|
clientTrustedIPs:
|
||||||
- 192.168.178.0/24
|
- 192.168.1.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:
|
||||||
@@ -117,6 +119,14 @@ 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
|
||||||
|
|||||||
@@ -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.5.0-beta1"
|
version: "v1.7.1"
|
||||||
|
|||||||
@@ -3,14 +3,15 @@ services:
|
|||||||
extends:
|
extends:
|
||||||
file: ${TEMPLATES_PATH}
|
file: ${TEMPLATES_PATH}
|
||||||
service: default
|
service: default
|
||||||
image: traefik:v3.6.7
|
image: traefik:v3.7.13
|
||||||
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}
|
||||||
@@ -37,73 +38,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.5.0
|
# image: hhftechnology/traefik-log-dashboard-agent:2.4.1
|
||||||
container_name: traefik-log-dashboard-agent
|
# container_name: traefik-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.10"
|
# cpus: "0.15"
|
||||||
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.5.0
|
# image: hhftechnology/traefik-log-dashboard:2.4.1
|
||||||
container_name: traefik-log-dashboard
|
# container_name: traefik-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: 50M
|
# memory: 120M
|
||||||
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"
|
||||||
|
|||||||
Reference in New Issue
Block a user