zerobyte/app/server
James Brink 5cb092f130 feat: add pure NixOS flake with bun2nix
Adds a complete Nix flake for NixOS integration:

Package:
- Pure reproducible builds using bun2nix (no network during build)
- Bundles restic, rclone, shoutrrr, and other runtime dependencies
- Supports x86_64-linux, aarch64-linux, x86_64-darwin, aarch64-darwin
- Version read from package.json to avoid drift

NixOS Module:
- Systemd service with security hardening
- FUSE support for remote mounts (NFS, SMB, WebDAV)
- Configurable options: port, dataDir, user/group, timezone, etc.
- protectHome option for backing up home directories
- CAP_DAC_READ_SEARCH capability when protectHome=false
- PORT env var properly passed to server

Development:
- devShell with bun, node, biome, typescript, and runtime tools
- bun2nix CLI for regenerating bun.nix after dependency changes

Also includes:
- Overlay exposing zerobyte and shoutrrr packages
- NixOS VM integration tests
- Experimental darwin module (requires TCC permissions for home dirs)
- Configurable MIGRATIONS_PATH and PORT for Nix store compatibility

Note: package.json includes additional peer dependencies (@standard-community/*,
@standard-schema/spec, openapi-types, quansync, react-is) required by bun2nix
for pure builds - bun requires all transitive peer deps to be satisfied.
2025-12-27 00:01:46 -07:00
..
cli feat: reset password cli command (#220) 2025-12-22 19:20:37 +01:00
core feat: add pure NixOS flake with bun2nix 2025-12-27 00:01:46 -07:00
db feat: add pure NixOS flake with bun2nix 2025-12-27 00:01:46 -07:00
jobs chore(deps-dev): bump @types/node from 24.10.4 to 25.0.3 (#209) 2025-12-21 19:51:03 +01:00
modules refactor: import local repositories use path only and not name 2025-12-26 17:29:42 +01:00
utils feat: allow changing the hostname (restic host) (#240) 2025-12-26 21:02:16 +01:00
app.ts feat: server timeout env (#219) 2025-12-22 17:34:27 +01:00
index.ts feat: add pure NixOS flake with bun2nix 2025-12-27 00:01:46 -07:00