Compare commits

..

6 Commits

Author SHA1 Message Date
aykhans daa56d72ef watchtower: set interval to 8 hours 2026-05-28 12:07:53 +00:00
aykhans fc73b80930 memos: update 2026-05-28 12:07:18 +00:00
aykhans a3d051c71a caddy fix 2026-05-20 12:37:14 +04:00
aykhans ba03407420 crowdsec: add 'CROWDSEC_BOUNCER_KEY_EXPORTER' 2026-05-17 18:41:08 +04:00
aykhans 8092079047 crowdsec: update profiles/profiles.yaml 2026-05-17 14:17:17 +04:00
aykhans c9b2d723d8 crowdsec: add profiles/profiles.yaml 2026-05-17 13:56:46 +04:00
6 changed files with 11 additions and 7 deletions
+4 -2
View File
@@ -53,10 +53,12 @@
{$GITEA_DOMAIN} {
import access-log
request_body {
max_size 512MB
max_size 2048MB
}
@not_registry not path /v2/*
route {
import security
crowdsec
appsec @not_registry
reverse_proxy http://gitea:3000 {
header_up Host {http.request.host}
}
+1
View File
@@ -4,6 +4,7 @@
# and in caddy/.env (CADDY) and the host firewall bouncer config (FW).
CROWDSEC_BOUNCER_KEY_CADDY=
CROWDSEC_BOUNCER_KEY_FW=
CROWDSEC_BOUNCER_KEY_EXPORTER=
############# Console enrollment #############
# Enroll key from https://app.crowdsec.net (free).
+2 -1
View File
@@ -26,6 +26,7 @@ services:
Dominic-Wagner/vaultwarden
BOUNCER_KEY_caddy: "${CROWDSEC_BOUNCER_KEY_CADDY}"
BOUNCER_KEY_firewall: "${CROWDSEC_BOUNCER_KEY_FW}"
BOUNCER_KEY_exporter: "${CROWDSEC_BOUNCER_KEY_EXPORTER}"
ENROLL_KEY: "${CROWDSEC_ENROLL_KEY:-}"
ENROLL_INSTANCE_NAME: "${CROWDSEC_ENROLL_INSTANCE_NAME:-aykhans-prod}"
ports:
@@ -61,7 +62,7 @@ services:
- caddy
environment:
CROWDSEC_LAPI_URL: "http://crowdsec:8080"
CROWDSEC_API_KEY: "${CROWDSEC_BOUNCER_KEY_CADDY}"
CROWDSEC_API_KEY: "${CROWDSEC_BOUNCER_KEY_EXPORTER}"
POLL_INTERVAL_SECS: "30"
LISTEN_PORT: "9100"
GEOIP_CITY_DB: "/geoip/GeoLite2-City.mmdb"
+2 -2
View File
@@ -1,18 +1,18 @@
name: default_ip_remediation
filters:
- Alert.Remediation == true && Alert.GetScope() == "Ip"
duration_expr: Sprintf('%dh', min(730, (GetDecisionsCount(Alert.GetValue())+1)*4))
decisions:
- type: ban
duration: 4h
duration_expr: Sprintf('%dh', min(168, (GetDecisionsCount(Alert.GetValue())+1)*4))
on_success: break
---
name: default_range_remediation
filters:
- Alert.Remediation == true && Alert.GetScope() == "Range"
duration_expr: Sprintf('%dh', min(730, (GetDecisionsCount(Alert.GetValue())+1)*4))
decisions:
- type: ban
duration: 4h
duration_expr: Sprintf('%dh', min(168, (GetDecisionsCount(Alert.GetValue())+1)*4))
on_success: break
+1 -1
View File
@@ -6,7 +6,7 @@ networks:
services:
memos:
image: neosmemo/memos:0.27
image: neosmemo/memos:0.29
restart: unless-stopped
container_name: memos
labels:
+1 -1
View File
@@ -10,7 +10,7 @@ services:
- "--label-enable"
- "--cleanup"
- "--interval"
- "600" # 10 minutes
- "28800" # 8 hours
logging:
driver: "json-file"
options: