Commit graph

354 commits

Author SHA1 Message Date
19e2743c3b feat(mx): add ntfy push notifications for disk alerts and service failures
- Disk check scripts now send ntfy alerts in addition to email
- New ntfy-failure@ template service notifies on any systemd service failure
- Uses sops-managed token for ntfy authentication

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 16:31:39 +01:00
507fc67d60 feat(mx): add ntfy-sh push notification service
Self-hosted at ntfy.hoyer.xyz with deny-all default access.
After deploying, create a user with: ntfy user add --role=admin harald

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 16:21:04 +01:00
616c57874c feat(mx): enable daily PostgreSQL backup via pg_dumpall
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 16:13:10 +01:00
35b1f0218d feat(mx): upgrade PostgreSQL 14 → 16 and remove migration script
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 15:23:13 +01:00
a854caaf19 feat(mx): add pg_upgrade script for PostgreSQL 14 → 16 migration
Temporary upgrade script following the official NixOS procedure.
Run `upgrade-pg-cluster --jobs 4 --link` on the server, then switch
the package to postgresql_16 and remove the script.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 15:20:26 +01:00
dc4594333f fix(mx): fix check_root email subject and consolidate systemd attrsets
The check_root service incorrectly used '/boot Disk Space Alert' as
the email subject instead of '/ Disk Space Alert'. Also merged the
duplicate systemd.services and systemd.timers attribute sets.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 15:09:32 +01:00
d11199da10 fix(mx): update stale comment in Roundcube config to reflect SSL/TLS
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 15:08:55 +01:00
f6a76ad5e5 fix(mx): use SSL/TLS on port 465 for Roundcube SMTP
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 12:36:40 +01:00
9a926472f9 feat(mx): configure Roundcube SMTP to use STARTTLS on port 587
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 12:34:03 +01:00
2c70ee0a0a feat(mx): configure Roundcube IMAP to use SSL/TLS on port 993
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 12:24:52 +01:00
9feb16efe1 feat(mx): nextcloud33 2026-03-24 12:00:38 +01:00
108b3cb96f feat(mx): enable ManageSieve for server-side email filtering
Enable ManageSieve in Dovecot (port 4190) and add the managesieve
plugin to Roundcube for managing Sieve filter rules via webmail.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 11:57:38 +01:00
866bc090ca feat(halo): add llama-cpp-rocm and real docker 2026-03-17 10:03:54 +01:00
3db2e2a226 fix: halo 2026-03-17 10:03:54 +01:00
6029a6908b feat(halo): add user to audio group 2026-03-10 14:21:35 +01:00
d82ac6915c feat(halo): add linger 2026-03-10 14:21:35 +01:00
0e4f847145 feat(halo): add sound 2026-03-10 13:35:24 +01:00
7a019aff8e feat: add qwen-code 2026-03-02 09:06:08 +01:00
e4ff822a88 feat(halo): open more ports 2026-02-26 11:48:26 +01:00
04150f10d4 nix fmt 2026-02-24 13:25:42 +01:00
27343e49bd feat(halo): add wyoming whisper-cpp 2026-02-24 13:16:28 +01:00
b5e7d5031a feat(halo): add wyoming 2026-02-24 10:56:58 +01:00
d405190f0d feat(amd): add USB rules for ATTINY85 2026-02-19 14:58:35 +01:00
4722d5ef88 fix(halo): remove rocm patches 2026-02-17 16:45:23 +01:00
14670bb0fa fix(halo): patch rocm-runtime 2026-02-17 13:05:35 +01:00
211daf3dc9 feat(halo): enable podman 2026-02-17 10:48:22 +01:00
c24572c318 feat(halo): enable hw graphics 2026-02-17 10:40:56 +01:00
00f66d7fd8 feat(amd): add oversteer 2026-02-17 10:40:27 +01:00
fd2c7e1867 feat(amd): add Logitech racing wheel udev rules from oversteer
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 10:40:27 +01:00
61cb051f44 feat(halo): verbose boot 2026-02-17 09:17:24 +01:00
91ffb24bc6 feat(halo): more mem headroom 2026-02-17 09:05:43 +01:00
fbc78bdbb6 feat(halo): optimize 2026-02-17 09:03:00 +01:00
170189e56e fix(halo): kernel command line parameters 2026-02-12 13:37:27 +01:00
9d2275ddf7 fix(halo): open port 8000 2026-02-12 13:37:06 +01:00
58a0abf24d feat(nix): add opencode to HALO and AMD system packages
- Included `opencode` in the `packages` list for both HALO and AMD system configurations.
- Improves development environment by providing additional tooling.
2026-02-11 16:54:41 +01:00
f9e621eaae feat(nix): add firewall rule for HALO system
- Allowed inbound TCP traffic on port 1234 by updating firewall rules.
- Enhances connectivity for the HALO system without altering existing configurations.
2026-02-11 16:53:18 +01:00
e5615c85bf feat(nix): update secure boot and HALO system configuration
- Set `pkiBundle` in `secureboot` to use `mkDefault` for better configurability.
- Added kernel parameters for HALO, improving performance and boot customization.
- Configured ROCm symlink and switched HALO to `linuxPackages_latest`.
2026-02-11 16:33:50 +01:00
52e1276115 feat(nix): add HALO system configuration and user setup
- Added system configuration for the HALO machine, including hardware, sound, and remapping settings.
- Configured user-specific settings like session paths, favorite apps, and terminal customization.
- Introduced zram swap, SSD TRIM, and PipeWire priority tuning for performance optimization.
2026-02-11 14:24:08 +01:00
d5cb9658be feat(nix): add sound configuration for PipeWire priorities
- Introduced `sound.nix` to manage audio device priorities using PipeWire's WirePlumber configuration.
- Linked `sound.nix` to `default.nix` for streamlined system audio customization.
- Ensures defined priority levels for HDMI, USB microphones, and SPDIF outputs.
2026-02-09 15:45:14 +01:00
5075593ce0 feat(nix): add supported search formats to Searx config
- Added `html`, `json`, and `rss` to the `search.formats` list in `searx.nix`.
- Enhances flexibility by allowing multiple output formats for search results.
2026-02-06 13:45:18 +01:00
7f802aaca6 feat(nix): refactor Searx configuration into separate module
- Moved Searx-related settings from `default.nix` and `nginx.nix` to a dedicated `searx.nix` module for improved modularity and maintainability.
- Updated references and ACME certificate configuration to align with the new structure.
- Simplifies management of Searx service and its associated secrets.
2026-02-06 13:27:29 +01:00
ba985dc3fd feat(nix): add Sops secret and update Searx configuration
- Added a new Sops secret for `searx/secret_key` with a corresponding configuration path.
- Updated Searx settings to include the `secret_key` reference.
- Ensures secure integration of secret management with Searx service.
2026-02-06 13:09:38 +01:00
6597561ec4 feat(nix): add uwsgi configuration for search.hoyer.world
- Introduced `uwsgiConfig` section in the Searx configuration for `search.hoyer.world`.
- Configures uWSGI to listen on port `8081` for HTTP requests.
2026-02-06 12:55:36 +01:00
437cb4b606 feat(nginx): add new search.hoyer.world virtual host
- Introduced Nginx configuration for the `search.hoyer.world` domain.
- Ensures SSL enforcement and proper proxy settings for the new subdomain.
2026-02-06 12:51:24 +01:00
14c9a4f084 feat(nix): add new domain to ACME certificate
- Added `search.hoyer.world` to the `extraDomainNames` list for the `internal.hoyer.world` ACME certificate.
- Ensures proper SSL configuration for the new subdomain.
2026-02-06 11:43:37 +01:00
958175fb01 feat(nix): enable Searx and configure Nginx for domain
- Added Searx service with Nginx configuration for the domain `search.hoyer.world`.
2026-02-06 11:40:10 +01:00
9b42e808d3 feat(bot): refactor system prompt and enhance CLI command
- Replaced `DEFAULT_SYSTEM_PROMPT` with `BOT_SYSTEM_PROMPT` for clarity and modularity.
- Introduced a `build_system_prompt` function to dynamically compose prompts.
- Enhanced `call_claude` CLI with new tool options and appendable prompts.
2026-02-04 09:11:08 +01:00
f25aab2441 feat(bot): improve prompt-building and help command handling
- Added a default system prompt and adjusted the structure to use XML for clarity.
- Improved help command handling by simplifying triggers and updating responses.
- Enhanced NixOS configuration with support for optional custom instructions.
2026-02-03 17:39:31 +01:00
9342933987 feat(bot): switch to in-memory conversation history
- Replaced Nextcloud chat history fetching with in-memory storage for conversation history.
- Added limits to history length based on an environment variable (`CONTEXT_MESSAGES`).
- Simplified prompt-building logic by removing async history fetching.
2026-02-03 17:26:46 +01:00
b35373b0ec feat(bot): replace maxTokens with contextMessages option
- Switched `maxTokens` to `contextMessages` to set chat history length instead of token limit.
- Updated environment variables, NixOS module, and prompt building logic for consistency.
- Removed in-memory conversation history, now fetching from Nextcloud for better scalability.
2026-02-03 17:00:50 +01:00