51e937c02f
fix(adguard): add empty clients list when no clients configured
...
AdGuard Home fails with empty persistent list.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 19:27:21 +01:00
7b9b1e1909
fix(adguard): add newline before filtering section
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 19:26:40 +01:00
a5d1f3e136
fix(adguard): fix YAML structure - clients at correct level
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 19:24:37 +01:00
ce152ba2b3
fix(adguard): fix template string concatenation
...
Properly concatenate optionalString with content.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 19:23:51 +01:00
294b556542
fix(adguard): handle empty clients list
...
Only render clients section when clients are configured.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 19:22:58 +01:00
23696e7e79
fix(adguard): remove --cap-drop=ALL flag
...
AdGuard Home needs capabilities to run.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 19:20:41 +01:00
9b1d5ede54
fix(adguard): remove --read-only flag
...
AdGuard Home needs write access to working directory.
Config file remains read-only via :ro mount.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 19:19:30 +01:00
8b3df01823
chore(secrets): add AdGuard ClientID secrets
2026-03-18 18:14:48 +00:00
9189a9c49d
feat(config): enable AdGuard Home module with two clients
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 19:09:59 +01:00
d413d5ec1b
feat(modules): register adguard module in default.nix
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 19:09:04 +01:00
1ed9acdcda
feat(modules): add AdGuard Home module with DoH and ClientID support
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 19:07:59 +01:00
30d5ce8134
docs: add AdGuard Home implementation plan
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 19:06:42 +01:00
4eeeef121e
docs: add explicit podman dependency in implementation
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 19:03:57 +01:00
fd5d3f3a7c
docs: fix remaining spec issues
...
- Remove unused tmpfiles rule (using named volume)
- Remove redundant firewall config (nginx module handles 443)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 19:03:00 +01:00
70016fe9c4
docs: fix spec review issues
...
- Fix YAML indentation in SOPS template
- Add myModules.podman.enable dependency
- Remove unused tmpfiles rule (using named volume)
- Remove redundant firewall config (nginx module handles 443)
- Fix lib.types.listOf parentheses
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 19:01:39 +01:00
51e723ddad
docs: address spec review feedback for AdGuard module
...
- Add complete container definition with security options
- Add SOPS template code with ClientID interpolation
- Fix nginx location to use regex for /dns-query/{clientId}
- Add volume persistence for stats/logs
- Add proxy_http_version for DoH
- Document security considerations
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 19:00:15 +01:00
053198d013
docs: add AdGuard Home module design spec
...
Design for private DoH server with ClientID-based access control.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 18:57:54 +01:00
638d588d81
fix(backup): use new B2 bucket for restic repository
...
Switch to nixos-vps-backup2 bucket to resolve password mismatch
with existing repository.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 18:10:54 +01:00
d2d02f8a60
chore: add backup secrets
2026-03-18 13:19:46 +00:00
8030657042
chore: add backup secrets
2026-03-18 13:18:53 +00:00
70ef850994
feat: enable B2 backups
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 14:17:10 +01:00
fd056367d2
feat: add backup module with Restic + Backblaze B2
...
- Encrypted backups to B2
- Configurable retention (daily/weekly/monthly)
- SOPS-managed credentials
- Automatic pruning
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 14:11:11 +01:00
f82b822d16
feat: add firewall bouncer to CrowdSec module
...
- Enable crowdsec-firewall-bouncer by default
- Auto-registers bouncer with local CrowdSec API
- Blocks malicious IPs at iptables/nftables level
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 13:58:13 +01:00
8a933fd9de
fix: enable CrowdSec Local API for cscli
...
Add LAPI server configuration with credentials file path.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 13:53:15 +01:00
e0de37b15f
fix: simplify CrowdSec module
...
Remove LAPI server config causing null coercion error.
Detection-only mode for now; bouncer can be added later.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 13:50:44 +01:00
9a57a2c511
.
2026-03-18 12:49:08 +00:00
211693ef3b
feat: add CrowdSec security module
...
- Wraps native NixOS CrowdSec service
- Configures SSH and nginx log acquisition
- Installs linux/nginx/sshd hub collections
- Supports IP whitelisting and ban duration config
- Optional nginx bouncer integration (requires manual API key setup)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 13:44:36 +01:00
db4f0f8f61
fix: remove duplicate SOPS declaration, clean up unused param
...
- Remove redundant vaultwarden_admin_token from configuration.nix
(already declared in module)
- Remove unused pkgs parameter from vaultwarden module
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 12:37:09 +01:00
45b6997fac
chore: disable Vaultwarden signup
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 12:12:19 +01:00
ea7ca739ba
feat: enable Vaultwarden in configuration
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 12:08:22 +01:00
e2facd1fa9
feat: add Vaultwarden module
...
- Add native NixOS Vaultwarden service module
- Supports WebSocket for real-time sync notifications
- Integrates with nginx via extraLocations for /notifications/hub
- Configurable signup, invitations, and SMTP settings
- Uses SOPS for admin token secret management
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 12:07:26 +01:00
cbce4aa228
feat(nginx): add extraLocations option for WebSocket support
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 03:19:31 +01:00
a2a0dfaa58
docs: update Vaultwarden plan with nginx extraLocations fix
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 03:15:34 +01:00
5b584cdb11
Update Vaultwarden spec with review feedback
...
- Add module header comment pattern
- Clarify Nginx WebSocket integration with concrete example
- Add SOPS secrets and templates declarations
- Update Files to Modify table
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 03:06:55 +01:00
2304648927
Add Vaultwarden module design spec
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 03:04:01 +01:00
2bfcc7c2ff
update
2026-03-18 01:51:16 +00:00
a87fd37489
Add Brave Search web search to OpenClaw
...
- Enable web_search tool with Brave provider
- Add openclaw_brave_api_key secret to SOPS configuration
- Add BRAVE_API_KEY to openclaw.env template
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 02:50:09 +01:00
2d7a67bac9
Add CLAUDE.md for future Claude Code instances
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 02:42:21 +01:00
4d9c61da10
Fix exec config: use valid options (security: full, ask: off)
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 02:36:59 +01:00
3ef4234d07
Enable elevated tools with auto-approve (no permission prompts)
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 02:36:04 +01:00
a91e6ac883
Add Discord token to config with env variable substitution
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 02:29:15 +01:00
9f734de29e
Add allowFrom for Discord dmPolicy=open
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 02:26:40 +01:00
b5901efde8
Fix JSON syntax: add missing closing brace in openclaw-config.json
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 02:24:55 +01:00
99a424aa34
Add channels.discord config to Openclaw
2026-03-18 01:58:51 +01:00
19bcc4c5fc
Use loopback binding for OpenClaw (no auth required)
2026-03-18 01:54:55 +01:00
636fbd0597
Fix gateway.bind to use 'lan' mode instead of legacy format
2026-03-18 01:52:26 +01:00
175c0acf22
Fix OpenClaw config volume path to /home/node
2026-03-18 01:47:37 +01:00
ae5e61cb6e
Fix openclaw config syntax - use external json file
...
- Move openclaw config to separate json file
- Reference file directly in podman module
- Remove problematic builtins.toJSON with nested arrays
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 01:37:46 +01:00
a595445bd2
Convert Openclaw to Podman container
...
- Use official ghcr.io/openclaw/openclaw image
- configure via JSON config file
- containerized for better isolation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 01:35:02 +01:00
11a588a4d9
Fix api type to openai-completions
2026-03-17 21:38:46 +01:00