Compare commits

..

383 Commits

Author SHA1 Message Date
yukkop e38c0c499f fix: gitea: now works 2026-05-29 21:27:53 +00:00
snuff 7d254cd8c4 fix(gitea)?: syntax 2026-05-29 20:38:16 +03:00
snuff 2e66319cfc fix(gitea)?: postgres socket peer auth for gitea 2026-05-29 20:17:08 +03:00
snuff e41f0aff7e fix?: +gitea v3 2026-05-29 20:07:27 +03:00
snuff ab4fa3140e fix?: +gitea v2 2026-05-29 18:43:31 +03:00
snuff 3130ae3dd7 fix?: +gitea 2026-05-29 18:37:02 +03:00
snuff fe8ff3d895 feat?: +gitea 2026-05-29 18:29:47 +03:00
yukkop f4ec839241 feat: matrix-cluster: hz 2026-05-27 19:04:56 +00:00
yukkop 5dc83564af Merge branch 'master' of github.com:hectic-lab/util.nix 2026-05-27 18:51:33 +00:00
yukkop a68f3a329a fix!: matrix-cluster: +jitsy 2026-05-27 18:51:18 +00:00
yukkop 74ed204e6b fix: mechabellum: api 2026-05-27 18:48:29 +00:00
yukkop 8625000952 feat: matrix-cluster: shared users 2026-05-27 12:54:15 +00:00
yukkop a8dd82d05f feat: matrix-cluster: shared users 2026-05-27 12:41:51 +00:00
yukkop 92f55320b5 fix: matrix 2026-05-25 23:12:05 +00:00
yukkop 4ce1945abe feat: matrix prepare move to poland 2026-05-25 07:48:16 +00:00
yukkop e29f09a694 feat: matrix: diferent servers one home server 2026-05-25 07:11:43 +00:00
yukkop ecabc0b6c2 fix: some recomendations 2026-05-24 15:08:40 +00:00
yukkop bcf5ae5da7 fix: element 2026-05-24 14:54:01 +00:00
yukkop 0eecea6324 fix: element 2026-05-23 23:11:58 +00:00
yukkop 4c0a178646 some 2026-05-23 22:57:09 +00:00
yukkop 9c6de9d067 fix: hectic-lab: mechabellum 2026-05-23 20:53:30 +00:00
yukkop 934c02609a feat: hectic-lab: mechabellum for lismy 2026-05-23 19:40:36 +00:00
yukkop fb6ee3cb54 chore: devide xrays systems 2026-05-23 18:27:02 +00:00
yukkop bce720fcff chore: hectic-lab: +vismajor in matrix 2026-05-23 18:17:27 +00:00
yukkop 7f39fc2dc3 fix 2026-05-23 17:13:49 +00:00
yukkop 819f1691b4 chore: hecitc-lab: +lvgkcfjl email to hectic-lab 2026-05-23 14:11:27 +00:00
yukkop 0a6e97f456 fix: media-browser: view button 2026-05-23 12:18:05 +00:00
yukkop d220a4588f fix: media-browser: synced files 2026-05-23 12:03:56 +00:00
yukkop 7dc66abc21 feat: media-browser: preview for local files 2026-05-23 11:56:04 +00:00
yukkop e38bf7582d feat: media-browser for matrix 2026-05-23 11:46:58 +00:00
yukkop afd4970cf4 fix: matrix: s3 sync 2026-05-23 11:22:49 +00:00
yukkop ef59f14372 feat: matrix: s3 object storage 2026-05-23 09:59:34 +00:00
yukkop d86eeae4a5 fix?: support bot 2026-05-23 08:50:10 +00:00
yukkop 4d7908de4b chore: hecitc-lab: add lvgkcfjl to matrix 2026-05-23 08:49:51 +00:00
yukkop 20b12d42a8 feat: hectic-lab: matrix 100mb max file 2026-05-23 06:47:34 +00:00
yukkop 51d40841ce feat: hectic-lab: users for matrix 2026-05-22 21:19:52 +00:00
yukkop 09ed045da9 feat: module: ~matrix 2026-05-22 20:13:47 +00:00
yukkop 56881b766a feat: +package merge-archive 2026-05-22 07:45:47 +00:00
yukkop 19b95e707d feat: deploy: 1 no tty option 2026-05-05 20:19:52 +00:00
yukkop e71886c34e feat: lab: +models 2026-05-04 10:19:38 +00:00
yukkop da999fc37b feat: lab: configure olama models 2026-05-04 05:41:25 +00:00
yukkop f9c292643d Merge branch 'master' of github.com:hectic-lab/util.nix 2026-05-03 22:07:13 +00:00
yukkop bcdc8f0836 feat: lab: configure olama 2026-05-03 22:06:57 +00:00
yukkop 66722bd8a4 fix: db-tool: NO_TTY 2026-05-03 15:35:22 +00:00
yukkop 1aaf21e9c0 fix: posix-helpers 2026-05-03 05:23:23 +00:00
yukkop 4204d68eed fix(db-tool): prevent fd leak from logger to long-running daemons
The hectic logger opens fd 3 as a dup of stderr. Child processes inherit
this fd, and daemonized PostgreSQL/PostgREST keeping it open prevents the
terminal from returning to the prompt after the spawning script exits.

- Add with_closed_fds helper that runs commands in a subshell with fds
  3-9 redirected to /dev/null
- Inline the helper into both database and postgres-init builds
- Wrap pg_ctl start and postgrest with the helper
2026-05-03 03:14:15 +00:00
yukkop 4378b13877 feat: windows-devshell 2026-05-02 15:31:26 +00:00
yukkop c041f2e88d fix: linux-devshell for ubuntu 2026-05-01 23:11:23 +00:00
yukkop 61861ff170 fix: linux-devshell from root 2026-05-01 22:56:03 +00:00
yukkop d64314d68b chore: fix nixpkgs 25.05 deprecation warnings 2026-05-01 22:26:29 +00:00
yukkop 35e35980b4 test: fix: . 2026-05-01 22:19:43 +00:00
yukkop 0a54a41670 fix: wsl system 2026-05-01 21:57:41 +00:00
yukkop d5d4d5a5c3 test: arch 2026-05-01 21:40:54 +00:00
yukkop ff0766519c test: linux-devshell 2026-05-01 21:13:15 +00:00
yukkop 87b57d5011 feat: linux-devshell: init 2026-05-01 20:39:38 +00:00
yukkop e46a4bf8a1 fix: db-tool: envcontent 2026-05-01 12:31:44 +00:00
yukkop 8b7a9b5141 fix(db-tool): typo hydate.stdout.log -> hydrate.stdout.log 2026-04-30 23:10:46 +00:00
yukkop d3cdbdf3e2 docs(postgres-hooks): document hectic bundle + responsibility split
Add lib/hook/sql/README.md describing bundle layout, apply order, Nix API
(self.lib.hectic.*), shell helper contract, and the steps for adding a new
SQL file. Rewrite db-tool README's hectic section: drop stale
PG_HECTIC_INHERITANCE / HECTIC_INHERITANCE_SQL env vars, add
HECTIC_DOTENV_FILE, document the postgres-init / migrator init / database
hydrate responsibility split.
2026-04-30 22:12:18 +00:00
yukkop 1a209f6960 test(postgres-hooks): retarget hectic bundle tests to migrator init + db-tool hydrate
Move postgres-init-hectic-inheritance test (13 cases) to
migrator/init-hectic-bundle since the bundle is now applied by `migrator init`
instead of `postgres-init`. Drop init-migrator-with-inherits since
`--inherits` is now a deprecation warning, not an error. Add db-tool
hydrate-hook test (5 cases) covering --no-hook skip, default apply,
idempotency, and HECTIC_DOTENV_FILE. Augment init-migrator with
hectic.version and hectic.secret table assertions.
2026-04-30 22:12:09 +00:00
yukkop 3d5e3fdb36 feat: postgres hooks 2026-04-30 21:59:53 +00:00
yukkop bf7ee34716 feat: start impliment postgres hooks 2026-04-30 21:36:22 +00:00
yukkop 70c44f1fa7 feat: include hectic-landing to hectic 2026-04-30 19:33:21 +00:00
yukkop 2eaa568f5b feat(db-tool): hectic-inheritance: add hectic.immutable + diff coverage
Add a hectic.immutable parent table. Tables inheriting it get auto-attached
BEFORE INSERT/UPDATE/DELETE/TRUNCATE row+statement triggers that block DML
unless the session sets hectic.migration_mode='on' (intended use: SET LOCAL
inside a migration transaction). Same exemptions as the rest of the bundle
apply (hectic schema, partitions, temp tables, GUC-excluded schemas).

database diff now appends an --- IMMUTABLE TABLE DATA --- section to its
output, with per-table unified row diffs of every table inheriting
hectic.immutable, surfacing drift in 'frozen' reference data alongside schema
drift. Subcommand exits non-zero when either schema or data differs.

Test postgres-init-hectic-inheritance extended to 10 cases covering
immutable triggers, DML blocked outside migration_mode, SET LOCAL allowing
DML inside a transaction, GUC not leaking past COMMIT, and TRUNCATE under
migration_mode.
2026-04-30 16:10:38 +00:00
yukkop 31d2994997 feat(db-tool): postgres-init: apply hectic-inheritance by default
Flip PG_HECTIC_INHERITANCE default 0 -> 1. Set PG_HECTIC_INHERITANCE=0 to opt out.
2026-04-30 15:48:33 +00:00
yukkop 58e9aa8fad feat(db-tool): hectic-inheritance: bootstrap hectic.created_at / hectic.updated_at inheritance hook
Adds a SQL bundle plus event triggers that enforce `INHERITS (hectic.created_at)`
on every user CREATE TABLE and auto-attach a BEFORE UPDATE row trigger when a
table inherits `hectic.updated_at`. Always-exempt: `hectic`, `information_schema`,
`pg_*`, declarative partitions, temp tables. Per-DB opt-out via the GUC
`hectic.inheritance_extra_excluded_schemas`.

Exposed three ways:
  * `pkgs.hectic.hectic-inheritance` — derivation with the SQL at
    $out/share/hectic/hectic-inheritance.sql
  * `self.lib.hecticInheritance.{sql,path}` — pkgs-free Nix surface
  * `postgres-init` opt-in via `PG_HECTIC_INHERITANCE=1` (HECTIC_INHERITANCE_SQL
    overrides the default)

Test postgres-init-hectic-inheritance covers all six branches: bootstrap,
non-inheriting reject, accepting inheritance, auto updated_at trigger fires,
GUC exclusion, declarative partition exemption.
2026-04-30 15:16:57 +00:00
yukkop 7d5300853b fix(db-tool): postgres-init: createdb on reuse when target DB missing
Previously when PG_REUSE=1 and PG_VERSION existed but the target database had
never been successfully created (e.g. devshell exited mid-init in a prior run),
postgres-init skipped createdb and the subsequent psql connection failed with
'database "<db>" does not exist'.

Now on reuse path we probe pg_database and create the target DB if missing,
making postgres-init fully idempotent across stale-state recovery.

Adds postgres-init-reuse-missing-db test.
2026-04-30 12:16:09 +00:00
yukkop e732ecb878 feat(db-tool): expose overridable postgresql arg and PG_CONF_FILE env
Wrap db-tool, postgres-init, postgres-cleanup with lib.makeOverridable so
consumers can inject extension-enabled PostgreSQL via .override { postgresql = ...; }.
Add PG_CONF_FILE: when set, replaces script-generated postgresql.conf entirely
(runtime port and unix_socket_directories still appended/overridden).
2026-04-30 12:00:08 +00:00
yukkop 705f5bbd01 fix(db-tool): postgres-init: always invoke main so sourcing exports vars
Previous basename guard only ran the function when invoked as the
postgres-init binary, but consumer shellHooks source the script to
inherit POSTGRESQL_HOST/PGURL/etc. Sourcing left the function defined
but never called, leaving WIPE_PGURL/PGURL unset and breaking devshell
entry in proxydoe and ruststats.
2026-04-30 11:37:19 +00:00
yukkop 06a5d16ee3 fix(package): db-tool: call postgres-init/cleanup binaries instead of local devshell scripts
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-30 10:10:11 +00:00
yukkop 5713eaad14 fix(package): db-tool: default PGURL to empty in dispatch to fix pull_staging exit=3 contract 2026-04-30 09:24:58 +00:00
yukkop b5dcbf08a1 feat(\db-tool\): introduce unified db-tool package with postgres harness and tests (T0-T8) 2026-04-30 09:06:44 +00:00
yukkop 395bddee94 Merge branch 'master' of github.com:hectic-lab/util.nix 2026-04-29 09:57:40 +00:00
snuff d8312b69b8 feat?(neuro): create aeronautics minecraft server 2026-04-28 14:04:14 +03:00
yukkop 62757df384 fix(package): sentinèlla: use dig(1) instead of host(1) which is not in bind.dnsutils 2026-04-27 17:30:01 +00:00
yukkop f2ea372742 debug(package): sentinèlla: surface host(1) and SRV-parse failures in watcher 2026-04-27 17:28:01 +00:00
yukkop f158a80492 fix(package): sentinèlla: use ip(8) for local-IP detection (inetutils hostname lacks -I); harden numeric parsing 2026-04-27 17:21:00 +00:00
yukkop 0c81c0454d feat(package): sentinèlla: switch peer discovery from A records to SRV records 2026-04-27 14:08:23 +00:00
yukkop 7268ec3704 fix(package): sentinèlla: probe — use socat EXEC pipes to avoid pty CR/LF mangling 2026-04-27 13:34:52 +00:00
yukkop 0dfbee6472 feat: sentinella: some 2026-04-27 12:58:36 +00:00
yukkop 50d682d6f7 fix: hectic-lab: email name 2026-04-26 22:22:31 +00:00
yukkop 3ca4d4fb86 feat: sentinella: update 2026-04-26 22:22:15 +00:00
yukkop 4fae68764c feat(hectic-lab): enable sentinèlla watcher service
Enable the p2p watcher alongside the existing probe. Peers are discovered
via DNS name peers.hectic-lab.com. TG credentials are loaded from a SOPS
secret sentinèlla/watcher/environment (to be populated with TG_TOKEN and
TG_CHAT_ID).
2026-04-26 22:04:35 +00:00
yukkop 6035397e9b feat(sentinèlla): p2p topology with DNS peer discovery
- Replace central sentinel with watcher: each node polls peers discovered
  via a single DNS name with multiple A records (e.g. peers.sentinella.com)
- Auto-detect own IPs via hostname -I; SELF env var available as optional
  override for NAT/floating-IP setups
- Fix Basic Auth bug in router.sh: compare tok against AUTH_TOKENS instead
  of unset $USER/$PASS
- Rename sentinel binary to watcher; drop unused shellplot dep
- Add inetutils to watcher runtime deps for hostname -I
- Update NixOS module: replace sentinel options with watcher p2p options
  (peersDns, self, peersPort, peersScheme, pollingIntervalSec)
- Add sentinèlla test suite: probe-status-empty, probe-disk, watcher-state-file
2026-04-26 21:54:07 +00:00
yukkop 249d027f6b docs: +plan 2026-04-26 14:11:37 +00:00
yukkop 3343a8be6e Merge branch 'merge-hectic-lab' 2026-04-26 13:52:17 +00:00
yukkop b8fc0971c6 fix: hectic-lab: something 2026-04-26 13:48:36 +00:00
yukkop 406acf662e feat: hectic-lab: mail server 2026-04-26 10:33:28 +00:00
yukkop 970c1214af chore: config 2026-04-25 15:18:01 +00:00
yukkop 0316d0b535 zalupa 2026-04-18 20:53:44 +00:00
yukkop 305efdbbae feat: work on profinity 2026-04-14 08:43:56 +00:00
yukkop 6e72841337 docs: neuro: router forwarding 2026-03-31 20:09:27 +00:00
yukkop 29acdc9ad6 feat: bfs: add xray package 2026-03-31 19:59:40 +00:00
yukkop 04bc83e004 chore: bfs: add 3 cert 2026-03-23 19:47:54 +00:00
yukkop 2513b76658 some jitsi shit 2026-03-23 19:22:40 +00:00
yukkop 62b7742ef0 some 2026-03-22 06:55:10 +00:00
yukkop f23720e151 feat: wsl: some things 2026-03-15 10:59:19 +00:00
yukkop b9730784ba fix: deploy: logs 2026-03-01 09:36:22 +00:00
yukkop 577c167d5a feat: migrator: +multifiles migrations 2026-02-28 21:19:29 +00:00
yukkop 525c6a220b chore: 2026-02-28 20:25:13 +00:00
yukkop bf41ee6e0a feat: merge own wsl config 2026-02-28 01:57:42 +00:00
yukkop cfcd6647ae feat: init hectic-lab merge 2026-02-27 19:57:44 +00:00
yukkop 4e2264dc03 feat: neuro: some 2026-02-27 12:53:51 +00:00
yukkop 3414edf2a8 fix: some warnings 2026-02-23 18:27:36 +00:00
yukkop 0d7b84e3bc refactor: derustification 2026-02-20 17:36:20 +00:00
yukkop bea9ca602e fix: +fixed nixpkgs 2026-02-20 17:30:36 +00:00
yukkop d8a51cd389 refactor: update to 25.11 2026-02-20 17:18:38 +00:00
yukkop f93e12accd feat: nixvim + zsh, fix: warnings 2026-02-20 16:41:18 +00:00
yukkop 63a7fd716f apply patch from neuro 2026-02-20 12:51:32 +00:00
yukkop 799ad9a15d feat: +neuro devshell 2026-02-20 12:06:55 +00:00
yukkop 9010b2678e refactor: deploy: update logs 2026-02-20 12:04:15 +00:00
yukkop 26bdecb8e0 fix: migrator: more accurate check for hectic.migrator isntalled 2026-02-17 16:50:08 +00:00
yukkop ff87e8c411 chore: something about hemar tree sitter 2026-02-17 16:17:47 +00:00
yukkop d7ada535d4 feat: +pol bfs server 2026-02-17 16:13:58 +00:00
yukkop 7490ef2fe9 fix: nvim-pager close all pages on q 2026-02-17 08:55:41 +00:00
yukkop a7cb54d04c hz 2026-02-14 18:35:04 +00:00
yukkop 0f4f6a6339 hz 2026-02-14 15:59:13 +00:00
yukkop 043b333654 feat: migrator: colorize help in migrator.sh 2026-02-06 08:38:36 +00:00
yukkop 683370a71c feat: stong &2 in log.sh 2026-02-05 06:50:54 +00:00
yukkop 2724295bcf feat(nixos): postgresql: +settings script 2026-01-29 18:56:22 +00:00
yukkop 78a3329271 Merge branch 'master' of github.com:hectic-lab/util.nix 2026-01-16 16:16:43 +00:00
yukkop a61f2cfe5e feat(nixos): +zombro hardware 2026-01-16 16:16:13 +00:00
ISNUFFI ed5c1cc1af chore: removed excess variables 2026-01-13 18:13:52 +03:00
yukkop 8ffe9ad244 iso 2026-01-13 15:04:33 +00:00
yukkop bf72ac7e97 feat(template): +nodejs 2026-01-04 20:40:43 +00:00
yukkop 4a9bb42015 feat(nixos): some moves to nixos server 2025-12-28 19:18:15 +00:00
yukkop 96782b7b51 feat(nixos): +neuro system 2025-12-26 20:04:42 +00:00
yukkop 3d84864382 fix(package): migrator: sqlite transactions 2025-12-23 19:31:44 +00:00
yukkop cb96de6125 fix(package): migrator: handle sqlite posible settings 2025-12-23 18:30:26 +00:00
yukkop 686a794a69 fix(pakcage): migrator: -z -> +x 2025-12-23 18:18:51 +00:00
yukkop 2ffe187b12 fix(package): migrator: awk dependency 2025-12-21 13:19:46 +00:00
yukkop 89ab7d56af feat(pakcage): migrator: add dependency 2025-12-20 01:19:40 +00:00
yukkop 01f13723a8 feat(package): migrator: up to latest 2025-12-18 00:45:09 +00:00
yukkop 9c25e82c79 fix(package): migrator: uncomplite RAISE on sqlite 2025-12-17 03:28:03 +00:00
yukkop 956239ab79 feat(package): migrator: ! sqlite support 2025-12-17 03:24:59 +00:00
yukkop bb2ae34758 feat(package): migrator: mvp 2025-12-16 17:28:36 +00:00
yukkop 13fdfac2ef test(hemar): update parser test to match better paths 2025-12-09 14:21:03 +00:00
yukkop 93a7636c61 fix(package): hemar: paths better handling 2025-12-09 14:13:34 +00:00
yukkop 6fb3ee1af8 test(hemar): many tests but not pass 2025-12-09 13:49:43 +00:00
yukkop 73dc9aee9e feat(package): hemar: json_escape() 2025-12-09 03:47:27 +00:00
yukkop 71082b6414 feat(package): hemar: interpolation 2025-12-08 23:47:33 +00:00
yukkop 65a96c860b feat(package): accord: some cli things 2025-12-08 01:55:33 +00:00
yukkop 9b9254bb93 feat(nixos): bgs: vless 2025-12-07 03:40:07 +00:00
yukkop 1beb980b95 refactor(nixos): bfs: some secrets 2025-12-07 02:25:29 +00:00
yukkop 082b80f252 feate(package): accord: init 2025-12-06 23:49:14 +00:00
yukkop f4a65afb01 Merge branch 'master' of github.com:hectic-lab/util.nix 2025-12-06 04:47:46 +00:00
yukkop 373a3fe3f0 fix(package): migrator: index_of subshell issue 2025-12-06 04:47:31 +00:00
snuff 8bbc0eda8f fix: matrix works with self-hosted element 2025-12-06 00:36:01 +03:00
yukkop 3b506a7888 fix: bfs nixosConfiguration check 2025-12-05 21:01:53 +00:00
yukkop 9a5bfa3f80 feate(nixos) bfs: matrix, element, bla bla bla 2025-12-05 19:36:53 +00:00
yukkop 5177f9a1f6 feat(nixos): bfs: fix: element-rtc 2025-12-05 18:17:41 +00:00
yukkop 49bf4c6d91 feat(nixos): bfs: +matrix, very unsave 2025-12-05 16:30:34 +00:00
yukkop 9d914ed863 feat(nixos): netherlands xray 2025-12-05 00:56:08 +00:00
yukkop 3e6bf6ce7f feat(nixos): xray 2025-12-04 21:03:01 +00:00
yukkop b786098867 feat(package): migrator: something 2025-12-04 21:02:38 +00:00
yukkop dfa76b2a19 feat(package): hemar: more grammar parsing 2025-11-30 13:31:40 +00:00
yukkop 6dad0d95fb fix(nixos): generic postgresql 2025-11-29 13:48:57 +00:00
yukkop 78f4777141 feat(package): hemar: some parser work 2025-11-29 00:30:27 +00:00
yukkop 48077aaccc feat(package): hemar: add indexes to tree-sitter 2025-11-28 10:29:59 +00:00
yukkop 4b4ea7a1d2 feat(package): hemar: add tree sitter hightlights 2025-11-27 19:45:12 +00:00
yukkop d1353d3a36 fix(package): hemar: treesitter language name 2025-11-27 19:15:35 +00:00
yukkop 8048c4adff fix(package): hemar: treesitter language name 2025-11-27 19:13:07 +00:00
yukkop 345f94742e feat(package): hemar: tree sitter grammar 2025-11-27 17:53:49 +00:00
yukkop 777d48bf3d feat(package): hemar: antlr grammar, but still does not work 2025-11-26 14:48:51 +00:00
yukkop 8a08272f68 feat(package): hemar: I think I was wrong 2025-11-25 15:45:02 +00:00
yukkop 4729770b59 feat(package): hemar: some stages of parsing 2025-11-25 13:19:45 +00:00
yukkop f5d412997e feat(package): hemar: conected to nix config 2025-11-24 14:33:45 +00:00
yukkop 783cbe20e8 fix(package): migrator: init migration 2025-11-22 11:50:42 +00:00
yukkop 9a7e7d677a feat(package): migrator: some migrate up works and init 2025-11-17 16:26:25 +00:00
yukkop 5b1f05589d test: fix: migrator: multifile test 2025-11-17 01:57:32 +00:00
yukkop 00f05cc3db feat(legacy): helpers: allow HECTIC_NAMESPACE be empty 2025-11-16 16:56:26 +00:00
yukkop bb99ef9a8a feat(legacy): helpers: update log, unefficient but works 2025-11-16 16:38:38 +00:00
yukkop 33cdebb64a refactor: remove nix warnings 2025-11-14 21:13:32 +00:00
yukkop 88573ea4aa feat(package): nbt2json: pack into nix 2025-11-14 21:12:41 +00:00
yukkop 4ae460f6e3 fix(template): correct hectic utils input 2025-11-14 15:53:12 +00:00
yukkop 5a8fd0a275 feat(package): voronoi: simple voronoi algoritm realization 2025-11-14 15:51:28 +00:00
yukkop 6204ba5abb feat(package): migrator: ! migration up 2025-11-14 15:50:55 +00:00
yukkop 00bbd42cab feat(package): migrator: init migration table 2025-11-04 13:21:15 +00:00
yukkop 111db5a1ca feat(package): migrator: create new migration 2025-11-04 12:15:29 +00:00
yukkop 9d97fd8d87 refactor(package): pull out all realization from default.nix 2025-11-03 20:08:20 +00:00
yukkop 94fbbdf0d9 fix(package): in default.nix migratior -> migrator 2025-11-03 19:15:57 +00:00
yukkop 43dc59a04f feat: +checks flake output 2025-11-03 19:02:50 +00:00
yukkop e3167ce6e5 feat(package): +migrator 2025-11-03 18:55:35 +00:00
yukkop 532f4b0901 feat(legacy): +writeDash +helpers 2025-11-03 18:51:38 +00:00
yukkop ad00891e6b fix(nixos): hardwares 2025-10-30 09:38:58 +00:00
yukkop 60bd185fa4 feat(nixos): cloudzy hardware 2025-10-28 16:16:01 +00:00
yukkop f08bd1e702 feat(template): +avarage 2025-10-28 11:41:26 +00:00
yukkop d01674e6a4 feat(package): sentinella: sqlschema 2025-10-28 11:37:22 +00:00
yukkop 39abe553f5 refactor(package): sentinella: +logging 2025-10-25 09:54:57 +00:00
yukkop af5d46b3f0 fix(nixos): module: wrong separator 2025-10-25 07:21:07 +00:00
yukkop 450ba9229b feat(package): sentinel: some changes 2025-10-25 06:48:48 +00:00
yukkop 9903e83f68 feat(package): deploy: rollback 2025-10-23 14:48:10 +00:00
yukkop 3ee41979bd refactor(nixos): modules: hetzner network config 2025-10-23 11:49:34 +00:00
yukkop b400acd18e some fixes 2025-10-23 11:28:56 +00:00
yukkop dd0d823e36 feat(package): +deploy 2025-10-23 10:22:48 +00:00
yukkop fafc1c4664 refactor(nixos): modules: hetzner hardware 2025-10-22 09:32:41 +00:00
yukkop 3bfc5799c7 feat(nixos): modules: +network configuration to hetzner hardware 2025-10-22 08:20:27 +00:00
yukkop e7423780e8 ruined every thing again 2025-10-21 17:27:09 +00:00
yukkop b3041edbdc ruined every thing 2025-10-20 17:17:08 +00:00
yukkop dbe4dfc2bc feat(package): sentinèlla: sentinel: loging 2025-10-19 15:16:38 +00:00
yukkop abdc808693 feat(nixos): lenovo hardware 2025-10-16 12:22:19 +00:00
yukkop 3139fd1d9f fix: lib systems 2025-10-16 09:52:49 +00:00
yukkop dc6ca7a0a9 fix(nixos): senttinèlla-probe: module args 2025-10-12 08:59:03 +00:00
yukkop 6dd7d112c5 fix: writers & overlays 2025-10-11 14:56:25 +00:00
yukkop 65fa944df8 refactor: legacyPackages 2025-10-10 13:13:03 +00:00
yukkop 7d55064a44 feat(package): onlinepubs: init 2025-10-08 15:58:35 +00:00
yukkop a1b31b1684 fix(package): `sentinèlla one more unset error 2025-10-07 10:55:37 +00:00
yukkop d446b24c47 fix(package): `sentinèlla unset error 2025-10-07 04:02:49 +00:00
yukkop 76e09ce5c3 fix(package): sentinèlla: base64 logic 2025-10-03 19:02:33 +00:00
yukkop 7fd3ba46c9 feat(package): sentinèlla: add auth 2025-10-03 02:30:24 +00:00
yukkop 0eb95197bc feat(package): hemar: continios work 2025-10-01 11:09:09 +00:00
yukkop 38bf9151eb refactor: hemar reboot 2025-09-28 04:44:46 +00:00
yukkop 5dd03a947f feat: appropriate sops dream wrapper 2025-09-12 17:17:29 +00:00
yukkop adbd946f50 fix 2025-09-02 10:33:04 +00:00
yukkop 78dcb215cc fix: stupid error 2025-08-31 16:01:00 +00:00
yukkop 744a8c9cf4 refactor(nixos): module: hectic services config path 2025-08-28 18:17:18 +00:00
yukkop 00e02f328a feat(nixos): module: +support-bot 2025-08-28 15:02:58 +00:00
yukkop 7dadd2290f feat(package): shellplot: created 2025-08-23 16:37:08 +00:00
yukkop 25575a69f3 feat(package): server-health: created 2025-08-23 15:16:15 +00:00
yukkop bb16555d4f feat: add templates 2025-08-05 04:41:27 +00:00
yukkop 492597b7ab fix(package): nix-derivation-hash: purify 2025-07-24 19:33:51 +00:00
yukkop 52cb6b2410 feat(package): nix-derivation-hash 2025-07-23 20:15:53 +00:00
yukkop 6e77853453 feat(lib): shell: local-dir 2025-07-22 21:15:42 +00:00
yukkop 8f4ff74546 feat: service.postgresql module extension 2025-07-22 02:11:32 +00:00
yukkop e74ef30dc6 fix(lib): shell: remove unneccessary ''$ 2025-07-18 03:23:25 +00:00
yukkop 3516d24868 fix(nixos): module: user 2025-07-17 16:53:48 +00:00
yukkop 92def64fea feat(lib): shell: +check-tool 2025-07-17 16:22:31 +00:00
yukkop be3aab9b48 fix(lib): logs: mkdir error work around 2025-07-17 16:17:43 +00:00
yukkop 5cac466f90 feat(nixos): module: +user.yukkop 2025-07-17 16:10:04 +00:00
yukkop 8cbfdcc0ea refactor: consistence 2025-07-17 16:00:59 +00:00
yukkop 3d0fd7a030 refactor: pull out flake devshells 2025-07-17 15:48:20 +00:00
yukkop 33422320a5 refactor: pull out flake packages 2025-07-17 15:28:29 +00:00
yukkop 23d9db27e6 refactor: pull out systems 2025-07-17 15:21:06 +00:00
yukkop 20dcbdfdc4 feat: modules 2025-07-17 13:37:33 +00:00
yukkop 8fb996501c feat: shell modules 2025-07-16 06:36:27 +00:00
yukkop b433fd7ea0 feat: +some python packages 2025-07-06 22:12:14 +00:00
yukkop f0596784a1 feat: remove vmw_pvscsi on aarch64-linux 2025-07-05 23:24:58 +00:00
yukkop 5670f11510 feat(package): slpt: jq dependency 2025-07-03 01:21:44 +00:00
yukkop 0db6ce3dd4 feat(package): update slpt 2025-07-02 16:08:30 +00:00
yukkop 2c16cebf9a feat(package) add slpt 2025-07-01 02:26:34 +00:00
yukkop 497213a2ea fix(package): bolt-unpack update nodejs_22 2025-06-30 23:48:14 +00:00
yukkop c73c887a9c Merge branch 'master' of github.com:hectic-lab/util.nix 2025-06-30 21:00:04 +00:00
yukkop f7fda629f5 refactor: move to nixpkgs 25.05 2025-06-30 20:43:38 +00:00
yukkop 5e112f5df8 fix: plsh 2025-06-30 16:31:04 +00:00
yukkop 510c350b7a fix: remove broken haskell 2025-06-30 16:24:56 +00:00
yukkop 8a13b8c8fd feat: plsh 2025-06-30 16:06:43 +00:00
yukkop 0ab2061776 feat: aliases to system preset 2025-06-11 22:38:54 +00:00
yukkop 8631eac0d4 chore: pager AnsiEsc 2025-06-11 22:25:34 +00:00
yukkop 9c8a3790c5 feat: find a way separate pg extension from overlay 2025-05-22 11:57:09 +00:00
yukkop 70253c9a3a done 2025-05-21 20:00:02 +00:00
yukkop 3b7c4d71e7 checkpoint 2025-05-21 19:50:47 +00:00
yukkop d1b0d7154d test: hemar: fix parse tests according code cahnges 2025-05-19 14:36:37 +00:00
yukkop 7ce48d75f8 fix: hemar: EBUCHIE WHITESPACЫ 2025-05-19 13:59:26 +00:00
yukkop 6c953563d0 fix: hemar: section whitespaces checkpoint 2025-05-19 11:07:10 +00:00
yukkop ef314495ba fix: hemar: include object does not exists 2025-05-18 20:18:54 +00:00
yukkop 1b1deaf721 test: hemar: test all at once 2025-05-18 19:58:04 +00:00
yukkop 746779e952 feat: hemar: included tag 2025-05-18 18:51:21 +00:00
yukkop 5cabf6c04d fix: hemar: section implimentation 2025-05-18 13:20:57 +00:00
yukkop 3493c14686 feat: hemar: section checkpoint 2025-05-18 10:27:38 +00:00
yukkop 19ea8992a0 fix: hemar: jsonb_value_by_path string copy 2025-05-17 17:59:10 +00:00
yukkop a17a20b7d6 chore: hemar: more logs for god of logs 2025-05-17 15:56:46 +00:00
yukkop eabfbbdc95 feat: hemar: separate jsonb_get_by_path form postgresql 2025-05-17 14:30:18 +00:00
yukkop 86d30ea494 chore: forgoten changes 2025-05-17 14:13:11 +00:00
yukkop bcc755d325 test: exec 2025-05-17 13:39:40 +00:00
yukkop 6a2f7cd1fa test: hemar: more tests for god of tests 2025-05-16 01:18:01 +00:00
yukkop 39495115a2 feat: hemar: exec handle the {{ }} inside 2025-05-16 00:37:30 +00:00
yukkop f0d7ca60fe fix: hemar: parser 2025-05-16 00:30:11 +00:00
yukkop 725f6eea30 test: hemar: puh 2025-05-15 23:57:18 +00:00
yukkop 421cc6e870 test: hemar: +20 tests for parsing 2025-05-15 18:54:56 +00:00
yukkop 653330dd48 test: hemar: +10 complex tests 2025-05-15 17:53:45 +00:00
yukkop 54684c0f78 feat: find element in jsonb by path is works!!! 2025-05-15 17:48:28 +00:00
yukkop c28e7fcfd5 feat!: vpizdu 2025-05-15 15:33:53 +00:00
yukkop a770215f0c feat: hemar: handling [] in path 2025-05-14 21:52:01 +00:00
yukkop b3172edbd7 feat: something 2025-05-14 21:30:16 +00:00
yukkop 83029b52ea feat: array with objects 2025-05-14 18:56:42 +00:00
yukkop 56fa799d53 fix: more parsing errors handling, section body fix 2025-05-14 14:09:48 +00:00
yukkop e9ba38f4eb feat!: to the moon 2025-05-14 12:15:45 +00:00
yukkop bcb8afbbf4 feat!: one more checkpoint 2025-05-13 21:56:27 +00:00
yukkop 598eae7e71 feat!: better? 2025-05-13 21:41:37 +00:00
yukkop e260e8f7cc feat!: some section parse issue 2025-05-13 15:44:55 +00:00
yukkop 7f58985c41 refactor: gemar grand rework 2025-05-13 12:12:57 +00:00
yukkop 88327be038 fix: hemar & hectic: nothing 2025-05-13 02:30:15 +00:00
yukkop 609bae352f fix: hemar: unbeliveble, without memmory error? not true 2025-05-13 01:15:43 +00:00
yukkop 5f52fc42af feat!: many work useles with hemar 2025-05-10 11:00:36 +00:00
yukkop 4db5cc171b fix: hectic C: template parse sections 2025-05-04 19:33:52 +00:00
yukkop 9b045b71f9 fix: hectic C: template parse 2025-05-04 13:49:29 +00:00
yukkop e800f11103 refactor: hemar: logs 2025-04-24 00:37:03 +00:00
yukkop e55437b856 feat: hel -> hemar--amend 2025-04-23 12:47:28 +00:00
yukkop cda46a7e13 feat: static page for fun 2025-04-23 12:37:32 +00:00
yukkop cc7de6c0dd feat hectic C: logger log in file 2025-04-23 01:04:49 +00:00
yukkop e25190422b feat hectic C: no asan option 2025-04-22 15:09:47 +00:00
zerosummed 016db3d06a feat(package): +support-bot 2025-04-22 10:00:33 +03:00
yukkop 286555e026 feat: wrapper for pg_dump 2025-04-22 01:13:23 +00:00
yukkop dc93bada89 feat: wrapper for pg_dumpall 2025-04-22 00:44:52 +00:00
yukkop 8857835409 refactor: hectic C: static-asan 2025-04-20 13:38:16 +00:00
yukkop 30778b1955 refactor: hectic C: perfavor 2025-04-20 13:32:22 +00:00
yukkop 791ff77e14 refactor: hectic C: libhectic.so -> hectic.so 2025-04-20 09:57:32 +00:00
yukkop 17acafd50a fix: hel: anus linking 2025-04-20 00:33:34 +00:00
yukkop 7ddceab11c build: hectic C: shared library in build 2025-04-19 23:44:39 +00:00
yukkop 0abd4fc70e fix: hectic: lib building 2025-04-19 23:23:09 +00:00
yukkop f97e451af1 fix: hel: Makefile LIBS 2025-04-19 23:10:13 +00:00
yukkop a9d64fe059 feat: hel: c89... 2025-04-19 23:04:29 +00:00
yukkop 62abe7b846 feat: hel: "" -> <> 2025-04-19 22:38:58 +00:00
yukkop 0c58befc43 feat: hecitc C: add hectic-config 2025-04-19 22:05:56 +00:00
yukkop 2229cf072b feat: hel: render without execute 2025-04-19 20:30:00 +00:00
yukkop 10a0a08dcd fix: overlay postgres extensions 2025-04-19 02:39:10 +00:00
zerosummed 60d977110c fix?(package): postgreact: ~stir the stupid shit till it works [3] 2025-04-18 21:37:23 +03:00
zerosummed aec4876832 fix?(package): postgreact: ~stir the stupid shit till it works [2] 2025-04-17 07:06:34 +03:00
zerosummed 90f588843a fix?(package): postgreact: ~stir the stupid shit till it works [1] 2025-04-17 07:06:31 +03:00
zerosummed fb8fa34ff2 fix?(package): postgreact 2025-04-17 06:22:21 +03:00
zerosummed 29ff6989e5 style: ~apply alejandra 2025-04-17 03:57:54 +03:00
zerosummed 3dfe3d61f6 refactor: postgreact: ~file modes, control file 2025-04-17 03:46:53 +03:00
yukkop e607bf09fa feat: postgreact: hello world 2025-04-15 20:05:53 +00:00
yukkop 1612799fb7 Merge branch 'master' of github.com:hectic-lab/util.nix 2025-04-15 17:04:12 +00:00
yukkop 5055983881 test: hectic C!: templater sectin 2025-04-15 17:03:15 +00:00
yukkop 1da02a7ad6 test: hectic C: templater interpolation 2025-04-15 16:33:49 +00:00
yukkop 6b8e825a4b feat: hectic C: prettify debug strings 2025-04-15 15:53:39 +00:00
yukkop ba6ec7a113 feat: +plhaskell package 2025-04-15 05:51:37 +00:00
yukkop 8697b00cfc feat: hectic C: some sigfault 2025-04-15 04:54:31 +00:00
yukkop d45307336a feat: hectic C: debug to json parser 2025-04-14 19:43:57 +00:00
yukkop 1dcb165abf fix: hectic C: union debug string constructor 2025-04-14 17:27:32 +00:00
yukkop abf1e706b7 feat: hectic C: union in debug string constructor 2025-04-14 16:28:16 +00:00
yukkop 807ea83892 fix: hectic C: impruve cycle detection for debug strig constructor 2025-04-13 23:13:28 +00:00
yukkop 267d0ec464 refactor: hectic C: logger rules and results 2025-04-13 19:38:11 +00:00
yukkop 2f6806185d feat: hectic C: template node debug, but union issue in debug string constructor 2025-04-12 18:25:25 +00:00
yukkop 8981af315c test: hectic C: fix logger test 2025-04-12 15:38:06 +00:00
yukkop 1f25c4fcad feat: hectic C: generic result 2025-04-12 15:21:33 +00:00
yukkop db5b88388e test: hectic C: debug constructor 2025-04-12 01:38:40 +00:00
yukkop 2cb814f054 feat: hectic C: debug constructor impruve 2025-04-12 01:07:20 +00:00
yukkop d7bdc0722f feat: hectic C: debug constructor wroks!!! 2025-04-11 22:34:43 +00:00
yukkop 80eac39b90 feat: hectic C: debug string constructor init 2025-04-11 10:33:20 +00:00
yukkop de08900297 fix: hectic C: template parser config 2025-04-10 14:26:21 +00:00
yukkop b3d040d6fd feat: hectic C: template parser, template to json 2025-04-09 19:52:43 +00:00
yukkop 7c82a5a866 docs: hectic C: macro for reduse boilerplane with code position 2025-04-07 22:55:37 +00:00
yukkop cda65a56eb docs: hectic C: types for template parser 2025-04-07 22:44:05 +00:00
yukkop d04a78de23 feat: hectic C: logging settings 2025-04-07 16:54:26 +00:00
yukkop 98a26f1f61 fix: hectic C: impruve logging guidelines 2025-04-07 05:26:30 +00:00
yukkop 11150151f9 fix: hectic C: impruve logging 2025-04-06 19:18:14 +00:00
yukkop bfb69b06ea fix: hmpl: section blocks 2025-04-06 15:51:21 +00:00
yukkop f151438969 feat: hectic C: debug print 2025-04-06 15:17:26 +00:00
yukkop 14c246de3e feat: hmpl: section test passeeed 2025-04-05 21:31:35 +00:00
yukkop 42f8e839d1 refactor: change packages names 2025-04-05 19:09:13 +00:00
yukkop 686344e356 feat: some python packages 2025-04-05 17:04:29 +00:00
yukkop 34c798b222 fix: c: log colorized with terminal mode 2025-04-04 14:13:54 +00:00
yukkop d5ef2bf551 feat: c: log colorized 2025-04-04 14:07:17 +00:00
yukkop 7258adbcc2 fix: hectic C: func definitions 2025-04-04 02:26:55 +00:00
yukkop c5e9d9c8cb feat: watch: try pager mode.. 2025-04-04 02:09:43 +00:00
yukkop d800266fe0 feat: some nix shit 2025-04-04 01:59:57 +00:00
yukkop 5ab0833d78 feat: watch: paterns 2025-04-03 22:57:55 +00:00
yukkop d680e080ad feat: watch: init 2025-04-03 22:34:50 +00:00
yukkop 35db5e4bf6 test(hectic C): slice 2025-03-27 21:07:00 +00:00
yukkop 3bb2b23be5 refactor(hmpl): fix warnings 2025-03-24 19:27:11 +00:00
yukkop 4280f0df95 refactor(hectic C): fix warnings 2025-03-24 14:21:00 +00:00
yukkop d39ed7f9fe refactor(hmpl,hectic): warnings 2025-03-24 13:36:31 +00:00
yukkop 972e2d2968 refactor(hmpl): eval 2025-03-22 19:45:17 +00:00
yukkop f64636fe9e test(hmpl): render interpolation tags with prefix 2025-03-22 15:08:48 +00:00
yukkop 546a35f1d2 test(hmpl): render interpolation tags 2025-03-22 14:56:03 +00:00
yukkop aeea41b0e1 fix: json eval 2025-03-22 04:15:58 +00:00
yukkop 27e42e9010 fix: segfalt in json_get_object_item 2025-03-22 03:18:34 +00:00
yukkop bcaca5038d feat(hectic C): json api 2025-03-22 01:22:36 +00:00
yukkop aff923d470 refactor(hmpl): rewrite via arenas 2025-03-21 15:29:00 +00:00
yukkop 06e5fdf1ab fix(hmpl): memory leak 2025-03-21 13:33:01 +00:00
yukkop c4d14e5aa2 feat(hmpl): render simple placeholder with memory leak of course 2025-03-21 04:00:23 +00:00
yukkop 9438280750 fix(libhectic): arena allocators 2025-03-21 02:54:47 +00:00
yukkop 4f2391e9b5 feat(libhectic): arenas 2025-03-21 01:53:02 +00:00
yukkop 647155f859 test: fix: test raise generic 2025-03-20 18:47:44 +00:00
yukkop c91b52b448 Merge branch 'master' of github.com:hectic-lab/util.nix 2025-03-20 18:16:04 +00:00
yukkop 18b36e43b7 test: libhectic 2025-03-20 18:15:52 +00:00
zerosummed c22a769e50 feat!: makeEnvironment: +strip prefix, ~rename to readEnvironment 2025-03-20 14:00:10 +03:00
yukkop a7e754f48d feat: min C writer 2025-03-19 01:44:19 +00:00
yukkop 1f1f3c7211 Merge branch 'feat/pg-neo-migration' of github.com:hectic-lab/util.nix into feat/pg-neo-migration 2025-03-19 01:43:46 +00:00
yukkop 3f9d8902d5 feat: C writer 2025-03-19 01:09:47 +00:00
yukkop 58fc204f46 feat(c): extrude lib c 2025-03-12 23:19:45 +01:00
yukkop cbba9016cd refactor: stir some shit around again 2025-03-07 00:40:00 +00:00
yukkop 0bd5bb65f6 refector(pg-neo-migration): stir some shit around trust me it's fine 2025-03-06 16:07:53 +01:00
yukkop cc7bd6b1a2 feat(pg-neo-migration): init 2025-03-05 19:13:00 +00:00
yukkop e8e2890171 feat(pg-schema): init 2025-03-02 10:48:52 +00:00
yukkop 4d1c210986 fix(pg-migration): db_url fetch 2025-02-16 17:21:02 +00:00
yukkop 3e790cd18a fix(pg-migration): postgres build inputs 2025-02-16 17:03:59 +00:00
yukkop d02f559635 feat(pg-migration): variable providing for migrations 2025-02-16 15:58:31 +00:00
yukkop f3bbbeb12d feat: inheritance for migration table 2025-02-16 14:21:20 +00:00
yukkop c3cdf9858a feat: postgres extension pg_smtp_client 2025-02-16 10:32:37 +00:00
zerosummed 7cc4c6292b fix: nix check errors 2025-02-14 21:27:48 +03:00
zerosummed e1c484b1c0 style: format (alejandra) 2025-02-14 21:06:51 +03:00
7 changed files with 80 additions and 105 deletions
+20 -24
View File
@@ -18,30 +18,26 @@
];
adminNames = [ "yukkop" ];
cfg = config.hectic.generic.matrix-cluster;
in {
config = lib.mkIf cfg.enable {
hectic.generic.matrix-cluster.users = builtins.listToAttrs (
map (name: {
inherit name;
value = {
passwordFile = config.sops.secrets."matrix/users/${name}/password".path;
} // lib.optionalAttrs (builtins.elem name adminNames) {
admin = true;
};
}) userNames
);
hectic.generic.matrix-cluster.users = builtins.listToAttrs (
map (name: {
inherit name;
value = {
passwordFile = config.sops.secrets."matrix/users/${name}/password".path;
} // lib.optionalAttrs (builtins.elem name adminNames) {
admin = true;
};
}) userNames
);
sops.secrets = builtins.listToAttrs (
map (name: {
name = "matrix/users/${name}/password";
value = {
key = "matrix/users/${name}/password";
owner = "matrix-synapse";
sopsFile = "${flake}/sus/matrix-cluster.yaml";
};
}) userNames
);
}
sops.secrets = builtins.listToAttrs (
map (name: {
name = "matrix/users/${name}/password";
value = {
key = "matrix/users/${name}/password";
owner = "matrix-synapse";
sopsFile = "${flake}/sus/matrix-cluster.yaml";
};
}) userNames
);
}
+3 -16
View File
@@ -10,21 +10,9 @@
...
}: let
cfg = config.hectic.hardware.hetzner-cloud;
isNewer = cfg.generation == "newer";
in {
options.hectic.hardware.hetzner-cloud = {
enable = lib.mkEnableOption "Enable hetzner-cloud hardware configurations";
generation = lib.mkOption {
type = lib.types.enum [ "classic" "newer" ];
default = "classic";
description = ''
Hetzner server generation profile.
`classic` keeps the historical `/dev/sda` assumption.
`newer` is for ccx/NVMe-era servers and defaults the disk device to
`/dev/nvme0n1`.
'';
};
#bootParUuid = lib.mkOption {
# type = with lib.types; nullOr oneOf [
# (lib.types.strMatching "^[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}$")
@@ -53,23 +41,22 @@ in {
};
device = lib.mkOption {
type = lib.types.str;
default = if isNewer then "/dev/nvme0n1" else "/dev/sda";
default = "/dev/sda";
example = "/dev/disk/by-uuid/f184a16b-6eca-41cb-b48a-ff37cdce1d79";
description = ''
boot device uuid
if it is null then will use "/dev/sda"
/dev/sda - default hetzner cloud device
/dev/nvme0n1 - default for newer Hetzner generations
!! But can changes on reboot if server have volumes
!! So use IDs
'';
};
networkMatchConfigName = lib.mkOption {
type = lib.types.strMatching "^(enp1s0|ens3|eth0)$";
type = lib.types.strMatching "^(enp1s0|ens3)$";
example = "enp1s0";
description = ''
type of network conection,
on older hetzner servers may be `ens3` or else
on older hetzner servers may be `ens3`
on newer probably `enp1s0`
you can use `networkctl list` on server to know it
@@ -9,10 +9,10 @@
config,
...
}: let
cfg = config.hectic.hardware.zomro;
cfg = config.hectic.hardware.zombro;
in {
options.hectic.hardware.zomro = {
enable = lib.mkEnableOption "Enable zomro hardware configurations";
options.hectic.hardware.zombro = {
enable = lib.mkEnableOption "Enable zombro hardware configurations";
device = lib.mkOption {
type = lib.types.str;
default = "/dev/vda";
@@ -20,7 +20,7 @@ in {
description = ''
boot device uuid
if it is null then will use "/dev/vda"
/dev/vda - default zomro device
/dev/vda - default zombro device
!! But can changes on reboot if server have volumes
!! So use IDs
'';
+4 -7
View File
@@ -10,15 +10,12 @@
...
}: let
legacyCfg = config.hectic.services.matrix;
hasClusterCfg = config.hectic ? generic && config.hectic.generic ? matrix-cluster;
clusterCfg = if hasClusterCfg then config.hectic.generic.matrix-cluster else null;
clusterCfg = config.hectic.generic.matrix-cluster;
clusterSynapseEnabled =
if hasClusterCfg
then clusterCfg.enable
&& (if clusterCfg.overrideEnableSynapse != null then clusterCfg.overrideEnableSynapse else clusterCfg.role == "primary")
else false;
clusterCfg.enable
&& (if clusterCfg.overrideEnableSynapse != null then clusterCfg.overrideEnableSynapse else clusterCfg.role == "primary");
enabled = legacyCfg.enable || clusterSynapseEnabled;
matrixDomain = if legacyCfg.enable then legacyCfg.matrixDomain else if hasClusterCfg then clusterCfg.matrixDomain else "";
matrixDomain = if legacyCfg.enable then legacyCfg.matrixDomain else clusterCfg.matrixDomain;
in {
config = lib.mkIf enabled (let
keyFile = "/run/livekit.key";
+5 -8
View File
@@ -10,19 +10,16 @@
...
}: let
legacyCfg = config.hectic.services.matrix;
hasClusterCfg = config.hectic ? generic && config.hectic.generic ? matrix-cluster;
clusterCfg = if hasClusterCfg then config.hectic.generic.matrix-cluster else null;
clusterCfg = config.hectic.generic.matrix-cluster;
clusterSynapseEnabled =
if hasClusterCfg
then clusterCfg.enable
&& (if clusterCfg.overrideEnableSynapse != null then clusterCfg.overrideEnableSynapse else clusterCfg.role == "primary")
else false;
clusterCfg.enable
&& (if clusterCfg.overrideEnableSynapse != null then clusterCfg.overrideEnableSynapse else clusterCfg.role == "primary");
enabled = legacyCfg.enable || clusterSynapseEnabled;
matrixDomain = if legacyCfg.enable then legacyCfg.matrixDomain else if hasClusterCfg then clusterCfg.matrixDomain else "";
matrixDomain = if legacyCfg.enable then legacyCfg.matrixDomain else clusterCfg.matrixDomain;
jitsiPreferredDomain =
if legacyCfg.enable && config.hectic.services.jitsi.enable
then config.hectic.services.jitsi.hostName
else if hasClusterCfg then clusterCfg.jitsi.preferredDomain else null;
else clusterCfg.jitsi.preferredDomain;
in {
config = lib.mkIf enabled {
services.nginx.virtualHosts."element.${matrixDomain}" = {
+42 -42
View File
@@ -16,26 +16,6 @@ with lib;
let
domain = "hectic-lab.com";
matrixDomain = "accord.tube";
mailUserNames = [
"security"
"founders"
"lvgkcfjl"
"yukkop"
"daniil-perlyk"
"iana-perlyk"
"snuff"
"antoshka"
];
mkMailPasswordSecret = name: {
name = "mailserver/${name}/hashedPassword";
value = {};
};
mkMailLoginAccount = name: {
inherit name;
value = {
hashedPasswordFile = config.sops.secrets."mailserver/${name}/hashedPassword".path;
};
};
sslOpts = {
sslCertificate = config.sops.secrets."ssl/porkbun/${domain}/domain.cert.pem".path;
sslCertificateKey = config.sops.secrets."ssl/porkbun/${domain}/private.key.pem".path;
@@ -111,24 +91,6 @@ in {
gnupg.sshKeyPaths = [ ];
age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
defaultSopsFile = "${flake}/sus/hectic-lab.yaml";
secrets = builtins.listToAttrs (map mkMailPasswordSecret mailUserNames) // {
"init-postgresql" = {
key = "init-postgresql";
};
"ssl/porkbun/${domain}/domain.cert.pem" = {
group = "nginx";
mode = "0440";
};
"ssl/porkbun/${domain}/private.key.pem" = {
group = "nginx";
mode = "0440";
};
"ssl/porkbun/${domain}/public.key.pem" = {
group = "nginx";
mode = "0440";
};
"wg-bfs/private-key" = {};
};
};
users.users.root.openssh.authorizedKeys.keys = [
@@ -158,10 +120,43 @@ in {
];
};
sops.secrets."mailserver/security/hashedPassword" = {};
sops.secrets."mailserver/yukkop/hashedPassword" = {};
sops.secrets."mailserver/daniil-perlyk/hashedPassword" = {};
sops.secrets."mailserver/snuff/hashedPassword" = {};
sops.secrets."mailserver/antoshka/hashedPassword" = {};
sops.secrets."mailserver/founders/hashedPassword" = {};
sops.secrets."mailserver/lvgkcfjl/hashedPassword" = {};
sops.secrets."init-postgresql" = {
key = "init-postgresql";
};
services.mailserver = {
enable = true;
domain = domain;
loginAccounts = builtins.listToAttrs (map mkMailLoginAccount mailUserNames);
loginAccounts = {
"security" = {
hashedPasswordFile = config.sops.secrets."mailserver/security/hashedPassword".path;
};
"founders" = {
hashedPasswordFile = config.sops.secrets."mailserver/founders/hashedPassword".path;
};
"lvgkcfjl" = {
hashedPasswordFile = config.sops.secrets."mailserver/lvgkcfjl/hashedPassword".path;
};
"yukkop" = {
hashedPasswordFile = config.sops.secrets."mailserver/yukkop/hashedPassword".path;
};
"daniil-perlyk" = {
hashedPasswordFile = config.sops.secrets."mailserver/daniil-perlyk/hashedPassword".path;
};
"snuff" = {
hashedPasswordFile = config.sops.secrets."mailserver/snuff/hashedPassword".path;
};
"antoshka" = {
hashedPasswordFile = config.sops.secrets."mailserver/antoshka/hashedPassword".path;
};
};
};
mailserver.stateVersion = 3;
@@ -201,6 +196,10 @@ in {
"d /var/www/store 0755 nginx nginx -"
];
sops.secrets."ssl/porkbun/${domain}/domain.cert.pem" = { group = "nginx"; mode = "0440"; };
sops.secrets."ssl/porkbun/${domain}/private.key.pem" = { group = "nginx"; mode = "0440"; };
sops.secrets."ssl/porkbun/${domain}/public.key.pem" = { group = "nginx"; mode = "0440"; };
services.nginx = {
enable = true;
# NOTE(yukkop): virtualHosts.${domain} is owned by the hectic-landing module
@@ -258,9 +257,8 @@ in {
enable = true;
settings.service.DISABLE_REGISTRATION = false;
settings.server = {
HTTP_PORT = 11011;
#SSH_PORT = 11012;
SSH_DOMAIN = "hectic-lab.com";
HTTP_PORT = 11011;
SSH_PORT = 11012;
};
database = {
createDatabase = true;
@@ -274,6 +272,8 @@ in {
# === WireGuard (disabled) ===
sops.secrets."wg-bfs/private-key" = {};
# networking.wireguard.interfaces = let
# subnet = "10.13.37";
# externalInterface = "eth0";
+2 -4
View File
@@ -5,8 +5,6 @@ mailserver:
hashedPassword: ENC[AES256_GCM,data:zjhCFkmmMzQHn09uRz1S4NTNU8hVRY5ZSYRHn6Gd0u09Fc7inNVSPrO+Br41UagPmv526w9MMQoIbV3RiJq6E/mfhAouqybYbQ==,iv:aVjn+/X2ESgZU7p7jETONaqtsD2/NAFOd7IIbunTRaI=,tag:kueml9QdQYVBceFMCgWoGA==,type:str]
daniil-perlyk:
hashedPassword: ENC[AES256_GCM,data:vlmz39OxJ0iavBYW1ij2pn/1wFOx+yBWR16ZCDlnGvc9/BNwd8vhAPJw7D+bujA89UMAvIC7ERiSNzR2uamp0+aH8gKyzchEXg==,iv:H1NVynfp5X18PcyR2/R4mNZ69KpcbzAc+D2akl3aAmE=,tag:YjYh/y5o3bkajWDsyctJUw==,type:str]
iana-perlyk:
hashedPassword: ENC[AES256_GCM,data:RkMAMTIBvI84nccOU69GZsx3iblDPm11SnTGjTqVBFWES24bXH4bcU3Xq7lszY5xcH0W93uFULqGI3wom+szA1XefiGcpKhR9Q==,iv:DjahflSSkOoJyjBAC19AMu+OqOkD3H9PwenE4ylI9W4=,tag:qbcNFnKo7nipC3POsAxtdQ==,type:str]
founders:
hashedPassword: ENC[AES256_GCM,data:E+Xu/Ul3rFLlYDD0LGGRnc6RADlWmXpOM2OfkZFSzAf5thm8leRi9x5sroP25cO8CcSyBcOiUCBv3RC5ooXklm4cmpOx8LA8ug==,iv:RLbU6SBHKOBRCNZ6naxQMaNjWZOlNui6OaaVM2QkdZs=,tag:sO7CD+PVkdtvPvlUrpzW+g==,type:str]
snuff:
@@ -77,7 +75,7 @@ sops:
Yk43ZmlTc09aNFV1VjdjN2RWQlFWTDQKcYSvA2lHP8GS0lkYY19Tm8RXmFHQX5Ck
qV2Fn22Fic4M5FVKDEMfaO6WmeXgki9a8dGeO9LlC+Phf16SOq7eLw==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2026-05-31T17:04:00Z"
mac: ENC[AES256_GCM,data:wkOHWvNXw3Cfh5ettROAstBdqNj2q5vna4LyOrhkyko4x4U+RhMDghUhtVy/AS48hX2yf5w13eIub/+10jm+HGxw70KA9LK9JuqsjdX8/IpJgWD52/ueZu+iO+dGGCXHLtu2ufWXwuqYAF0ea2sfQygChfhBclgNXYdmnJeOycQ=,iv:/i/0OGCziRYZodT0+dP72wzPV6lsKjieJavp/9LQXj0=,tag:OsM0Qy9o0wzmcgCNr6Bo0Q==,type:str]
lastmodified: "2026-05-27T12:36:35Z"
mac: ENC[AES256_GCM,data:dqVqDqMRJFVhT78mO8q+X+Mf4TUqxY4ApOdkMAF9bvyvPAPW7kxbKEvn9H5LBDev9CNxfNF9siqaa7aEdATM6ylhrcWPdzPN04LorojdMNRQy/WFQ0rB1Lz1RrIvwltQD5K8RSPFCWWtF8rhqVTGdFafwCWpdmuKTx0HEPNXsPY=,iv:cWHx326j4aycz17N+q2NNqq0VwfeupmOiPdAtZRz7ws=,tag:LOKuvivMogAGQoVlSTu/vg==,type:str]
unencrypted_suffix: _unencrypted
version: 3.10.2