No description
  • Python 21.1%
  • YAML 19.6%
  • MARKDOWN 18.8%
  • Nix 11.6%
  • JSON 11.3%
  • Other 17.5%
Find a file
GitOps + 运维 @ Beacoworks 7e3972fe45
Some checks failed
Check Docs i18n / check-docs-i18n (pull_request) Successful in 6s
Check Secrets / check-secrets (pull_request) Successful in 19s
Nix Validation / nix-evaluation (pull_request) Successful in 58s
policy/merge-gate Approved for main by beacon1096 for this exact commit
Check Docs i18n / check-docs-i18n (push) Successful in 7s
Build NixOS Systems and Push Closures / warm-cache-arm (push) Successful in 11s
Check Secrets / check-secrets (push) Successful in 14s
Build NixOS Systems and Push Closures / build-arm-systems (nixosConfigurations.ms-r1.config.system.build.toplevel, ms-r1) (push) Successful in 30s
Nix Validation / nix-evaluation (push) Successful in 45s
Build NixOS Systems and Push Closures / build-darwin-systems (darwinConfigurations.beacon-mac-mini-m4.system, beacon-mac-mini-m4) (push) Successful in 9s
Build NixOS Systems and Push Closures / warm-cache (push) Failing after 51m3s
Build NixOS Systems and Push Closures / build-systems (nixosConfigurations.m920x.config.system.build.toplevel, m920x) (push) Has been skipped
Build NixOS Systems and Push Closures / build-systems (nixosConfigurations.microserver-gen10plus.config.system.build.toplevel, microserver-gen10plus) (push) Has been skipped
Build NixOS Systems and Push Closures / build-systems (nixosConfigurations.msi-claw.config.system.build.toplevel, msi-claw) (push) Has been skipped
Build NixOS Systems and Push Closures / build-systems (nixosConfigurations.surface-pro-8.config.system.build.toplevel, surface-pro-8) (push) Has been skipped
Build NixOS Systems and Push Closures / build-systems (nixosConfigurations.thinkbook-plus-hybrid.config.system.build.toplevel, thinkbook-plus-hybrid) (push) Has been skipped
Build NixOS Systems and Push Closures / build-installer-iso (push) Has been skipped
Build NixOS Systems and Push Closures / build-and-push-coding-agent-oci (push) Has been skipped
Build NixOS Systems and Push Closures / build-and-push-multica-backend-oci (push) Has been skipped
Build NixOS Systems and Push Closures / build-and-push-coder-server-oci (push) Has been skipped
Build NixOS Systems and Push Closures / build-and-push-nix-collector-oci (push) Has been skipped
Build NixOS Systems and Push Closures / update-prod-branch (push) Has been skipped
test(monitoring): cover Grafana OIDC rollback modes
2026-10-28 15:00:48 +00:00
.forgejo fix(monitoring): harden Grafana OIDC rollback 2026-10-28 10:43:06 +00:00
.githooks fix(ci): preserve runner drain and check secret commits 2026-09-13 00:25:58 +08:00
docs fix(forgejo): mount the infra-private linear-history baseline (BEACO-232) 2026-10-18 04:30:16 +00:00
examples chore(history): establish audited public root 2026-09-09 18:30:00 +08:00
hosts feat(thor): add pinned TensorFold Flash Next service 2026-10-19 03:38:16 +08:00
kubernetes/flux/cluster chore(history): establish audited public root 2026-09-09 18:30:00 +08:00
lib fix(tailscale): unify fleet package and add Darwin userspace backend 2026-10-04 03:16:37 +08:00
modules fix(home): build strata with nixpkgs-unstable rustc on 26.05 2026-10-27 00:29:29 +08:00
packages fix(nchnroutes): refresh delegated-apnic-latest hash 2026-10-27 20:16:45 +08:00
rules feat(agents): inject role context from the public coding-agent image 2026-09-30 22:51:54 +08:00
secrets fix(nix): give serverBase an Attic substituter and a harvester builder pool 2026-10-02 18:41:56 +08:00
taichu docs(taichu): inventory docs 2026-09-24 03:23:37 +08:00
terraform feat(authentik): add run.sh for the authentik-wanxiang stack 2026-10-10 19:10:11 +00:00
utils test(monitoring): cover Grafana OIDC rollback modes 2026-10-28 15:00:48 +00:00
wanxiang feat(monitoring): activate Grafana OIDC for BEACO-248 2026-10-28 14:55:18 +00:00
.gitignore docs(observability): benchmark metrics backends 2026-10-17 07:36:51 +00:00
.sops.yaml fix(nix): give serverBase an Attic substituter and a harvester builder pool 2026-10-02 18:41:56 +08:00
AGENTS.md docs(i18n): migrate README, AGENTS, and TODO to the bilingual convention 2026-09-24 03:23:37 +08:00
AGENTS_en.md docs(i18n): migrate README, AGENTS, and TODO to the bilingual convention 2026-09-24 03:23:37 +08:00
flake.lock fix(home): build strata with nixpkgs-unstable rustc on 26.05 2026-10-27 00:29:29 +08:00
flake.nix feat(home,nchnroutes): consolidate shared desktop and routing package 2026-10-26 15:39:45 +08:00
README.md docs(agentic): consolidate harness and infrastructure operations 2026-09-24 03:23:38 +08:00
README_en.md docs(agentic): consolidate harness and infrastructure operations 2026-09-24 03:23:38 +08:00
renovate.json fix(ci): re-review changed Renovate deltas (#63) 2026-09-17 02:49:05 +00:00
TODO.md docs(ingress): close out spec 009 with ADR 0004 and TODO update 2026-10-03 12:10:56 +00:00
TODO_en.md docs(ingress): close out spec 009 with ADR 0004 and TODO update 2026-10-03 12:10:56 +00:00

中文 | English

Beacoworks infrastructure

This is the public, canonical infrastructure monorepo on Forgejo. GitHub is a one-way showcase mirror of main. Make changes and run CI on Forgejo; GitHub Actions is disabled. Production approval and releases remain in infra-private on Forgejo.

Repository layout

  • flake.nix, hosts/, modules/, packages/, secrets/: public NixOS and nix-darwin fleet configuration.
  • taichu/: Harvester/RKE2 environment inventory.
  • wanxiang/: Talos, Kubernetes, and Flux configuration.
  • kubernetes/flux/: repository-level Flux entrypoint.

The Nix flake stays at the repository root so existing rebuild and Comin flows can change only the repository URL. Existing Attic cache and OCI package names retain the nix-fleet name during migration to avoid breaking consumers.

Public and private boundary

SOPS-encrypted secrets may be committed here. Plaintext credentials, decrypted outputs, kubeconfigs, Talos configs, age keys, and local runtime state may not.

Use the root .sops.yaml for root-level Nix secrets. Run Wanxiang SOPS commands from wanxiang/ or pass --config wanxiang/.sops.yaml explicitly so cluster secrets keep their own recipient set.

Enable the repository's staged-content check in each clone:

git config --local core.hooksPath .githooks

The hook uses Nix to provide Python and PyYAML. It checks staged Git content for private keys, local credential files, and unencrypted protected YAML/JSON values, including Kubernetes Secrets. Supported example and template values are allowed; SOPS metadata alone does not exempt plaintext fields. Diagnostics show file locations without credential values. This is a targeted check, not a general-purpose detector for every token format or proof of valid encryption.

The Check Secrets workflow runs regression tests and scans the checked-out commit on pushes and pull requests. To run the same checks locally:

nix-shell -p python3Packages.pyyaml --run 'python3 utils/test-check-secrets.py'
nix-shell -p python3Packages.pyyaml --run 'python3 utils/check-secrets.py'

The scanner defaults to HEAD; use --staged to check pending staged changes. CI detects committed problems after upload, so it does not replace the local hook or review of recipient changes in .sops.yaml.

Private cloud-host definitions and private edge/proxy topology stay in the separate infrastructure/infra-private repository. It is not a submodule of this repository. Public host baselines may be exported as NixOS modules for a private overlay, but private behavior and its production output are assembled and released only from the private repository.

CI/CD and production delivery

infra/main is the public integration branch. infra-private pins reviewed public revisions and owns production approval, release tags, prod promotion, and Comin rollout. Start with the CI/CD documentation for the complete release flow, dependency-review gate, service accounts, and runner maintenance.