feat(youko): replace MinIO with RustFS S3

Deploy RustFS in place of the retired MinIO and move the S3 consumers over.

- flake.nix / flake.lock / outputs/default.nix: add a nixpkgs-small
  (nixos-unstable-small) input for the rustfs 1.0.0 package (with the web
  console), instantiated as pkgs-small in genSpecialArgs alongside the other
  nixpkgs instances; drop the rustfs flake input. The rest of the system stays
  on the default nixpkgs.
- hosts/12kingdoms-youko/homelab-services/rustfs.nix: use nixpkgs' own
  services.rustfs module, with package = pkgs-small.rustfs and
  environmentFile = the agenix rustfs.env secret.
- caddy.nix: s3.writefor.fun (S3 API) and s3-console.writefor.fun (console,
  redirects / to /rustfs/console/).
- secrets/nixos.nix: declare a single rustfs.env (dotenv) secret holding
  RUSTFS_ACCESS_KEY / RUSTFS_SECRET_KEY, replacing the separate key files.
- infra/minio -> infra/rustfs: buckets are managed with the hashicorp/aws
  provider against the RustFS S3 endpoint; IAM/ILM are applied with rc.
This commit is contained in:
Ryan Yin committed 2026-09-25 15:23:50 +08:00
1 parent e401a75ca5
commit 7e0e4aa566
28 files changed
+454 -288

No files matched your search

+4
View File
@@ -49,6 +49,10 @@
nixpkgs-patched.url = "github:ryan4yin/nixpkgs/nixos-unstable-patched";
# get some latest packages from the master branch
nixpkgs-master.url = "github:nixos/nixpkgs/master";
# only for rustfs: nixos-unstable-small ships 1.0.0 (with the web console),
# while the default unstable nixpkgs is still on 1.0.0-rc.6. Using a separate
# input keeps rustfs current without bumping the whole system nixpkgs.
nixpkgs-small.url = "github:nixos/nixpkgs/nixos-unstable-small";
# NixOS MicroVMs -- run the VMs directly on the hosts, replacing the former KubeVirt
microvm = {