Compare commits

...

2 commits

Author SHA1 Message Date
599cf0d16e
Merge branch 'service-crowdsec' into temp-caddy-crowdsec 2026-08-14 19:55:56 +03:00
6427ffd9c3
temp: Caddy 2026-08-14 18:27:41 +03:00
3 changed files with 109 additions and 5 deletions

View file

@ -104,6 +104,7 @@
secrets = {
"vaultwarden.env" = { };
"rsyncd.secrets" = { };
"caddy.env" = { };
"crowdsec-console-token" = { };
};
};
@ -152,6 +153,109 @@
};
};
};
caddy = {
enable = true;
package = pkgs.caddy.withPlugins {
plugins = [
"github.com/caddy-dns/cloudflare@v0.2.4"
"github.com/WeidiDeng/caddy-cloudflare-ip@v0.0.0-20231130002422-f53b62aa13cb"
"github.com/mholt/caddy-l4@v0.1.2"
"github.com/caddyserver/transform-encoder@v0.0.0-20260423033309-ba4124974830"
"github.com/hslatman/caddy-crowdsec-bouncer/http@v0.14.1"
"github.com/hslatman/caddy-crowdsec-bouncer/appsec@v0.14.1"
"github.com/hslatman/caddy-crowdsec-bouncer/layer4@v0.14.1"
];
hash = "sha256-5kC1Rcrgxco/26B4Tb6h7bictQ3j8rycxH+3Rr28Fa0=";
doInstallCheck = false; # Because caddy-crowdsec-bouncer plugins are in subdirectories
};
environmentFile = config.sops.secrets."caddy.env".path;
logFormat = ''
level INFO
'';
globalConfig = ''
grace_period 10s
servers {
trusted_proxies cloudflare {
interval 1h
timeout 20s
}
trusted_proxies_strict
client_ip_headers Cf-Connecting-Ip X-Forwarded-For
}
crowdsec {
api_url http://127.0.0.1:8080
api_key {$CROWDSEC_APIKEY}
ticker_interval 10s
}
'';
extraConfig = ''
(proxy-route) {
route {
crowdsec
reverse_proxy {args[0]} {
# Strip intermediary proxies
header_up X-Forwarded-For {client_ip}
header_up X-Real-IP {client_ip}
}
}
}
'';
virtualHosts = {
"*.wekuz.localplayer.dev" = {
logFormat = ''
output stdout
format json
'';
extraConfig = ''
tls {
dns cloudflare {$CF_APIKEY}
}
'';
};
"glance.wekuz.localplayer.dev" = {
logFormat = null;
extraConfig = ''
import proxy-route http://localhost:15835
'';
};
"vw.wekuz.localplayer.dev" = {
logFormat = null;
extraConfig = ''
import proxy-route http://192.168.1.111:15830
'';
};
"lw.wekuz.localplayer.dev" = {
logFormat = null;
extraConfig = ''
import proxy-route http://192.168.1.111:15834
'';
};
"git.wekuz.localplayer.dev" = {
logFormat = null;
extraConfig = ''
import proxy-route http://192.168.1.111:15836
'';
};
"tv.wekuz.localplayer.dev" = {
logFormat = null;
extraConfig = ''
import proxy-route http://localhost:8096
'';
};
"seerr.wekuz.localplayer.dev" = {
logFormat = null;
extraConfig = ''
import proxy-route http://localhost:5055
'';
};
};
};
crowdsec = {
enable = true;
autoUpdateService = true;

View file

@ -2,7 +2,6 @@
server = {
host = "0.0.0.0";
port = 15835;
assets-path = "/var/lib/glance/assets";
};
theme = {
light = false;

View file

@ -1,6 +1,7 @@
vaultwarden.env: ENC[AES256_GCM,data:PLNb5cFoJaOyUo5U/gpXH0RGVwwQxL3kCE/OLw7MaLWazuBGHIPUEhH+kDMP2cfF916D63w8Ddgb/oH+lHGCw235YwgoqZ9yjWYPG4VB2Jdw+17LeCbirdh3zv8nNzFnSZDJmhz5Pj82+iswju6sYO/H7UfZ3aeASWonKW9LGHVltKSY1rAVhZRu4SvhqPiAxNpEzN0/EDTl46RIxrgEoUraN+Ie8fh1wU9SKevExkPU3NXGO1gG2tWRxclMPgc=,iv:es40/5HpBAhOy2xmU/yCUD43fVVsAXk6qJ3OasKjK3U=,tag:bneErU9pPZkQ2VzbQ1NrJA==,type:str]
rsyncd.secrets: ENC[AES256_GCM,data:VjHRoZa6/lDtCheKSJyM,iv:kxygNaKOuK0iH/bFY/uKxcbMcYSR8nWDUx+4aDNqTMk=,tag:uYYPWAPCWtvLLGwmOWyH+A==,type:str]
crowdsec-console-token: ENC[AES256_GCM,data:kW0ztvpScqEDYeD++0StmzWfKuHzPwXnDEk=,iv:jwNBiPdJb4pfQ4cpheNfum0b5U0udvokp919sS7S6T8=,tag:yvGumTuO54rxsWYekn3pqw==,type:str]
caddy.env: ENC[AES256_GCM,data:xzYvGvtu1DDBWvcLmohHUAOTNQfUuLbOJ18UPgLokkWlzf7peNgN3Qt9A/ZCuEm5cg4PLtJy0LYbWk6ykm20vgDW+TmouJ8dxqwSDvJHdmnhoPYCfu0KA1d3iHPL5f8unqXxxhAbcfp0VSzxUo685on9Aw==,iv:E+o8dJ+t4BPuoiEfkTaOO6lVDAZnG9D1btNYN9oX3ek=,tag:oar1at1PkK4tgIDIXCyXrg==,type:str]
crowdsec-console-token: ENC[AES256_GCM,data:0K2kGXAf7uPhSRSRBIQ5cWjtp9l5oEcCSJg=,iv:O11ZhGU3bM+Ao5IUW0/sKT3L0CTeMsRpJTrCya6T674=,tag:R064lQrFBAIi33N4YVB/5Q==,type:str]
sops:
age:
- enc: |
@ -12,7 +13,7 @@ sops:
hkLDjoWK9dkGRX8kqRd028cuMCQRenLpULEECWp6oV+evUdMf7wRtg==
-----END AGE ENCRYPTED FILE-----
recipient: age1sqssntfzzlhcgp0wuf9wmeavg0hmwmq349npsq8vaxj9sxey5s9ssc82sw
lastmodified: "2026-07-06T14:12:01Z"
mac: ENC[AES256_GCM,data:nIyEuWKDcwntAFREXz3Ye5WjRgizR+p/5akCvcF3aR5YSrcrx+BvsilB8bssSeD9IPcFT+MD12nkIlmLH93MtT6qskKkx4h2szmfQRDLnVooNYHa9ZDxm/gvB1wkmNLSM/18f3RsUtUM6VxyzK6PoWo0PdEp3Zt2hMq8g3Awjk4=,iv:I+w4HZxP9lHFDr+Z1nT2txAq32gYnEomymOV//2zQxU=,tag:uept/iFzDCHutrb0JtjWDA==,type:str]
lastmodified: "2026-08-14T15:56:25Z"
mac: ENC[AES256_GCM,data:Y0rf6PzXBXgV4J8Zjs73L3Fvl96o/AMFXAqe/FN3w68yIbKvClDegiF2V5SQwpYchcr7xN9Qxwcl+5/OnF6wIoyOa4b94xmwd1ZKMU4MM2omFaT5mUov0lW26PkAGbB8ioMiCjibdXHnFVJMKHYO2cuMfTo3YH1nOUMuQvCQGyg=,iv:aatrE+/Wa5VGHVswrkh6PBkoCi19FBttVJJXZ/JG2+Q=,tag:KAk6sk5NmdB6nwx493hUQw==,type:str]
unencrypted_suffix: _unencrypted
version: 3.13.2
version: 3.13.3