Commit graph

82 commits

Author SHA1 Message Date
9fb72e762b
docs(age): improve readability with structured comments
Add section headers and explanatory comments to clarify the purpose of each configuration block, with emphasis on the critical persistent path requirement for early boot secret decryption.
2025-10-12 10:19:42 +08:00
8874c88fbc
fix(ssh): enable key-based root login and use FQDNs for system services
Fixes backup system authentication and hostname resolution issues.

Changes:
- Change PermitRootLogin from "no" to "prohibit-password" in global SSH config
  (allows key-based root login for host-to-host backups while blocking passwords)
- Update fuchsia onsite backup to use viridian.home.arpa FQDN instead of shortname
- Update SSH knownHosts to use FQDNs (fuchsia.home.arpa, viridian.home.arpa)
  (system-level config uses FQDNs, user shortcuts remain in home-manager)

This enables the complete 3-2-1 backup strategy with automated backups working
correctly between fuchsia and viridian, and fuchsia to BorgBase.
2025-10-07 23:11:31 +08:00
6723c0e0b6
chore(secrets): rekey agenix secrets for new configuration
- Add rekeyed borgbackup passphrase for fuchsia offsite backups
- Remove unused projectsend secret from viridian
2025-10-07 22:37:26 +08:00
85dc419349
refactor(ssh): decentralize SSH configuration to per-host services
Restructures SSH trust relationships from global to host-specific configuration
for better locality of concern and principle of least privilege.

Changes:
- Collapse nixos/common/global/ssh/ back to ssh.nix (single-file module)
- Move internal host trust (fuchsia/viridian) to per-host services/ssh/
- Split BorgBase known hosts by repository (li9kg944 for fuchsia, r7ag7x1w for viridian)
- Add viridian SSH server config to accept backup connections from fuchsia
- Add fuchsia borgbackup passphrase for offsite backups
- Configure viridian to create /srv/borg-repo/fuchsia for remote backups

This enables the 3-2-1 backup strategy with fuchsia backing up to both viridian
(onsite) and BorgBase (offsite) with proper SSH authentication.
2025-10-07 22:33:20 +08:00
acab920858
WIP: SSH configuration restructure
Backup of SSH reorganization changes for future reference.
2025-10-07 20:58:09 +08:00
b0bfb37d3c
refactor(viridian): migrate service data to dedicated BTRFS subvolumes
Migrate from path-based persistence (/persist/var/lib/*) to dedicated
BTRFS subvolumes for better data isolation and snapshot capabilities.

- Move valuable user-facing services to /srv/* with srv-* subvolumes:
  - forgejo: git repositories and database
  - opengist: paste data
  - minecraft: game world data
  - lighttpd: static web content
  - containers: OCI container volumes

- Update home directory to use hm-sajenim subvolume on viridian disk
- Remove jupyterhub service (no longer in use)
- Update borgbackup paths to match new service locations
- Follow upstream service defaults where possible for maintainability

Services kept on /persist (disposable state):
- traefik, crowdsec, murmur
2025-10-06 13:07:46 +08:00
28ba8186bb
refactor(global): reorganize system packages by category
Restructured systemPackages list with alphabetically sorted categories to improve
maintainability and reduce vertical space. Added descriptive comments for all
environment configuration sections.
2025-10-05 22:37:48 +08:00
341d8ecf45
docs: add explanatory comments to global configurations
Add comprehensive inline documentation to both NixOS and Home Manager
global configuration files, explaining the purpose of each section,
overlay usage, unfree package policy, and configuration settings.
2025-10-05 16:40:48 +08:00
591346600f
refactor: centralize unfree package allowlists
Move all allowUnfreePredicate declarations to global configs to prevent
the "last definition wins" merging issue. Unfree packages are now managed
in two central locations:
- NixOS system packages: nixos/common/global/default.nix
- Home Manager packages: home-manager/sajenim/global/default.nix
2025-10-01 10:23:20 +08:00
b0be0f9042
refactor 2025-09-26 19:04:48 +08:00
dc87a6ebe0
persiste /var/lib/private 2025-09-26 18:06:42 +08:00
1b857236ee
reduce time to keep garbage 2025-09-26 18:06:08 +08:00
03a597ae6d
feat: setup projectsend docker containers 2025-08-07 21:41:33 +08:00
f2d9cfc350
remove redundant secrets 2025-06-30 11:28:53 +08:00
92f35bf09d
refactor 2025-06-23 23:16:41 +08:00
0535f68752
fix unused imports, install dmenu 2025-05-12 09:58:09 +08:00
82231ab120
move direnv to nvim, install devenv 2025-05-04 20:53:55 +08:00
e73e614016
chore: refactor 2025-05-01 19:13:56 +08:00
c38f58067a
opt in unfree 2025-04-30 12:18:32 +08:00
8a6878a034
chore: we no longer need this 2025-03-23 23:14:46 +08:00
0c4507616f
enable ssh support in gnupg agent 2025-03-17 23:43:07 +08:00
413d6aa28b
install lmodern font 2025-03-17 23:41:47 +08:00
d7e2a0ce40
chore: fix dconf for xfce/gtk 2025-03-14 21:45:41 +08:00
abacbb57d7
chore: fix pinentry 2025-03-14 21:41:17 +08:00
f06011e890
chore: refactor 2025-03-08 12:02:30 +08:00
3dcfac6d31
delete older 28d 2025-03-07 21:01:58 +08:00
9ff256061a
chore: refactor 2025-02-26 00:23:03 +08:00
fe95e44a07
feat: add support for flatpak in NixOS configuration
Added the necessary configurations and dependencies to enable Flatpak in the Fuchsia module.
This includes enabling the xdg portal for default settings and adding the flatpak service.
2025-02-23 18:26:58 +08:00
9cf14b2a8c
Remove deprecated protonup-ng and add missing proton-ge-bin compatibility
- Removed `protonup-ng` from home-manager configuration for games, as it is no longer used.
- Added `unstable.proton-ge-bin` to Steam's compatibility packages in the NixOS user configuration.
2025-02-18 14:13:01 +08:00
b777814ff4
update ssh 2025-02-16 23:23:19 +08:00
9d447646b7
remove flatpaks 2025-02-16 09:34:00 +08:00
2e37cefe3e
persist /var/private globally 2024-12-21 21:55:23 +08:00
d348fb8032
setup scanner 2024-11-30 21:38:35 +08:00
cd7f0eb21d
install p7zip 2024-11-28 22:21:16 +08:00
3df22f9eb0
fix crowdsec/traefik 2024-11-24 09:36:36 +08:00
9b13797b9b
install wiki-js 2024-10-16 04:59:02 +08:00
2e7fefa7b9
migrate backups to borgbase 2024-10-15 06:46:10 +08:00
253cdf8ede
remove some unused services/refactor 2024-10-15 06:27:48 +08:00
d5c0320eee
install sshfs + add zsh alias 2024-10-01 11:58:33 +08:00
7efce0a4ee
add biometric key 2024-10-01 11:57:53 +08:00
0423359e16
remove samba shares 2024-09-30 21:00:01 +08:00
a98bb5989d
setup immich 2024-09-30 09:22:07 +08:00
7203fc1ed9
refactor 2024-09-20 20:24:55 +08:00
482462c8ba
fix: samba 2024-09-07 18:44:01 +08:00
c1a5ed1d4f
migrate impermanent home to subvolumes 2024-09-07 15:48:27 +08:00
6704bab226
limit garbage collection and boot configurations 2024-08-30 21:59:52 +08:00
3350d19a45
fmt: alejandra 2024-08-08 09:02:42 +08:00
6081d1c293
Install some tools 2024-08-07 20:58:06 +08:00
a9b70d6e04
Use local storage 2024-07-26 14:40:05 +08:00
ed05ea6964
Persist flatpaks 2024-07-26 09:25:43 +08:00