Commit Graph
100 Commits
Author SHA1 Message Date
kurogeek 2d13588f77 vars: update via generator zerotier-identity-almach (shared) 2026-10-09 14:44:41 +07:00
kurogeek 46ad94c4b9 vars: update via generator zerotier-identity-adhil (shared) 2026-10-09 14:44:40 +07:00
kurogeek c915103634 phonebox: open port 80 on the yggdrasil interface so the ATA web UI proxy is reachable over ygg too 2026-10-09 07:02:35 +00:00
kurogeek 597f0df6b3 phonebox: move hello-world test extension from 999 to 99 so it is reachable cross-node (e.g. 2099 → rigel) 2026-10-09 03:27:17 +00:00
kurogeek 7f3457859e machines/stellio: stop deprecating a PD prefix the ISP re-delegates (sync with cnx-network 45643d6)
The ISP modem restart at 08:19 re-delegated the same /64 five seconds
after the PPPoE drop. networkd re-announced it at once, but the fixed
7 s radvd run kept sending preferred-lifetime-0 RAs for it, so clients
sat on a deprecated prefix until networkd's next periodic RA and IPv6
stayed broken for minutes.

Send one RA per radvd start, up to three 3 s apart, and skip each one if
the /64 is already back on the interface. Verified on stellio with the
rendered script: a prefix gone for good -> three RAs; the PD address
removed and re-added 4 s later -> two RAs, then "is back, leaving it
announced", client preferred again and pinging over v6.
2026-10-08 08:36:59 +00:00
kurogeek 31ebf2d081 machines/stellio: deprecate withdrawn DHCPv6-PD prefixes (interim copy of cnx-network fa11327)
After the reboot vlan-lan got its /64 at boot, but IPv6 still failed for
clients: the first PPPoE session lands on another AIS BNG, is torn down
minutes later, and the reconnect brings a different /64 (07:53
2405:9800:b911:91e3 -> 07:57 b910:1f5d). networkd announces the new
prefix at once but never deprecates the old one (systemd#29651), so
clients keep it preferred for up to 30 minutes and source selection
sends every connection from a dead address.

router-radv-deprecate.service watches vlan-* for networkd removing a
dynamic address and sends RAs with that /64 at preferred lifetime 0 via
a short-lived radvd (SIGKILLed: no shutdown RA). Identical script to the
upstream commit; drop once the cnx-network input is bumped past it.

Verified on stellio: the stale prefix flipped to deprecated on the
client at the first RA and pings resumed; a synthetic dynamic address
removed from vlan-lan produced the same RA end to end.
2026-10-08 08:13:23 +00:00
kurogeek b5077983ea machines/stellio: give the AIS /64 to vlan-lan, not whichever VLAN came up first
Clients on stellio's lan had no global IPv6. AIS delegates a single /64
over PPPoE; cnx-network's router service carves the VLAN prefixes with
SubnetId=auto, so vlan-mgmt took the whole prefix and vlan-lan logged
"Couldn't find a suitable prefix. Ran out of address space" -- no RA
prefix on lan.

Pin SubnetId: 0x0 on vlan-lan (the whole /64), 0x1 on vlan-mgmt (out of
range on a /64, harmless; works unchanged if AIS ever delegates wider).
Verified live via runtime drop-ins: vlan-lan got 2405:9800:b910:1f5d::/64
and a LAN client pinged 2606:4700:4700::1111 over v6.

Drop once cnx-network carries the per-VLAN `ipv6SubnetId` option
(cnx-network-clan commit 27c697a) and the input is bumped.
2026-10-08 07:54:39 +00:00
kurogeek 0a87664afd default_thai_company: bump version 2026-10-05 15:49:34 +07:00
kurogeek 7469976750 stellio: allow ssh over yggdrasil
The router service only opens SSH to the mgmt VLAN, the staging port
and the ZeroTier mesh. Also admit it on the yggdrasil interface (`ygg`,
as named by clan-core's service) so the box stays reachable when
ZeroTier is down. Interface-scoped, so a spoofed 200::/7 source on the
WAN never matches.
2026-10-02 07:53:47 +00:00
kurogeek c95f74be25 default_thai_company: e7d0a54 -> c6e6c12
Default Standard Sales Order as Sales Order default print format;
position line under signatures on print formats.
2026-10-01 04:51:37 +00:00
kurogeek 2e56bfc54c default_thai_company: 68f0817 -> e7d0a54
Picks up print formats for Purchase Invoice/Order and Sales Order,
Withholding Tax Certificate print format and button, DRAFT watermark
on unsubmitted certificates, Type of Income Paid on Tax Withholding
Category.
2026-10-01 04:19:20 +00:00
kurogeek b4c197e64c w-inventory: allow phone to access 2026-09-30 13:56:52 +07:00
kurogeek 0dc7595f43 poy-inventory -> w-inventory 2026-09-29 18:25:07 +07:00
kurogeek 92a3676b83 remove break 2026-09-29 15:42:11 +07:00
kurogeek 6039edfac6 phonebox: stop dnsmasq trying to write leases to /dev/null
dhcp-leasefile=/dev/null logs 'failed to write /dev/null: Invalid argument'
every lease; leasefile-ro is the supported way to run without a lease file.
2026-09-29 07:46:41 +00:00
kurogeek 5066d4ee46 phonebox: arm hardware watchdog and auto-reboot on panic
mirach and almach have each hung at least twice since July with nothing in
the journal or pstore, and stayed down until someone power-cycled the board.
RuntimeWatchdogSec was 0 and kernel.panic was 0, so a hung kernel/PID1 or a
panic could never self-recover.

Arm the systemd hardware watchdog (30s) and reboot 10s after a panic on all
phonebox nodes. Watchdog resets will show up as extra entries in
journalctl --list-boots.
2026-09-29 07:46:41 +00:00
kurogeek a80202e419 flake.lock: cnx-network (ppp0 KeepConfiguration=yes) 2026-09-28 15:17:32 +07:00
kurogeek 9b0368edc6 machines/stellio: backport mt7530 .get_stats64 atomic-context fix
The MT7531 on the Flint 2 is MDIO-attached and shares the SoC MDIO bus
with the 2.5G WAN PHY. On 6.18.49 mt7530_get_stats64 takes the MDIO
mutex under the RCU read lock that /proc/net/dev readers hold; when the
WAN PHY is renegotiating (PPPoE flap) the mutex is contended, the read
sleeps in atomic context and the box oopses:

  BUG: scheduling while atomic: zerotier-one/1748/0x00000002
  mt7530_get_stats64 -> dsa_user_get_stats64 -> dev_seq_show
  Unable to handle kernel paging request at 0000afa547cef5f0

Vendor upstream 07d99587396024932e02474c3a5bede71d108454 (mainline
2026-05-04, absent from linux-6.18.y). Applies to v6.18.49 with one
fuzz-1 hunk (6.18 still exports mt7530_switch_ops).
2026-09-24 09:21:59 +00:00
kurogeek d525e63050 machines/stellio: persist the journal
Storage=volatile left nothing behind for the 2026-09-23/24 reboots: the
last persisted entry is journald stopping during the 2026-09-22 switch,
and /sys/fs/pstore is empty too. Keep the eMMC-wear intent with a 256M
cap and a 1 min sync interval matching the ext4 commit=60.
2026-09-24 09:21:46 +00:00
kurogeek 9b8d15d583 machines/stellio: a new whitehouse router that uses clanService/router from cnx-network 2026-09-23 15:31:57 +07:00
kurogeek fa95098b7e frappix: bump default_thai_company to 68f0817 (main) 2026-09-17 10:55:54 +00:00
kurogeek 0906700ad6 deneb: add default_thai_company frappe app to poyerp
Package git.b4l.co.th/newedge/default_thai_company as a frappix app
    (pkgs/frappix/default-thai-company.nix) and expose it through a new
    frappixAppsOverlay that extends the pkgs.frappix scope. Install it on
    the poyerp.newedge.house site on deneb.
2026-09-15 16:18:30 +07:00
kurogeek b9302e6192 clanService/prometheus: add mirach and almach 2026-09-11 10:53:00 +07:00
kurogeek 5cb262857e inventory/wifi: retry autoconnect and auth indefinitely
Set connection.autoconnect-retries=0 and connection.auth-retries=0 on the
NetworkManager profiles generated by the clan wifi module for buna, so a
flaky AP or slow auth never leaves the connection permanently blocked.
2026-09-09 04:15:18 +00:00
kurogeek 47e536540f flake: bump nixpkgs to fix broken prettier build
prettier 3.9.6 in nixpkgs e8be781 failed to build (stale pnpm lockfile in
binding-wasm32-wasi), breaking nix fmt. Fixed upstream in 58973d7.
2026-09-08 08:35:21 +00:00
kurogeek 282a8f8287 clanService/personal-computer: supportedFilesystems ntfs 2026-09-04 14:06:30 +07:00
kurogeek a9254c424d machines/sirius: buildPlatform.system = x86_64-linux 2026-09-04 13:43:04 +07:00
kurogeek 5961254878 machines/sirius: rm common module 2026-09-04 13:42:10 +07:00
kurogeek 9403ddbf08 clanService/headscale: adjust magic dns settings 2026-09-03 17:17:36 +07:00
kurogeek 37ff958560 inventory/auto-pull-update: limited to selected machines until a build machine is present 2026-09-03 13:58:29 +07:00
kurogeek efa4b39782 libreoffice-fresh -> libreoffice-stable 2026-09-03 12:22:15 +07:00
kurogeek e2341b7c79 inputs/nixpkgs,home-manager,clan-core,frappix, bump version 2026-09-03 12:21:00 +07:00
kurogeek dc1c94796a machines/sirius: reduce write on disk 2026-09-02 11:34:40 +07:00
kurogeek 5b07b98f40 inventory/prometheus: add buna to monitored machines 2026-08-21 12:03:34 +07:00
kurogeek 88ac5cbd83 machines/buna: use wifi 2026-08-19 14:34:34 +07:00
kurogeek 969c006f97 machines/deneb: support Thai characters 2026-08-16 14:02:41 +07:00
kurogeek 1c7d0bb388 hm/emmie: librewolf -> firefox 2026-08-05 09:07:15 +07:00
kurogeek 84c3bd92bb hm/emmie: enable librewolf 2026-08-03 13:51:12 +07:00
kurogeek 3340731c8d flake/packages/installer: init 2026-07-30 17:55:41 +07:00
kurogeek cd979fb771 inventory/borgbackup: init 2026-07-29 12:38:12 +07:00
kurogeek 7f6abc1d04 clanService/apple-network: init 2026-07-23 17:33:04 +07:00
kurogeek 0946de0e46 vars: update prometheus/matrix-alertmanager-token for machine cursa 2026-07-23 15:12:16 +07:00
kurogeek a29e4611b2 inventory/auto-pull-update: init 2026-07-23 14:12:34 +07:00
kurogeek 7246ab1437 vars: secret rotation 2026-07-21 18:15:45 +07:00
kurogeek f8193425af drop vi 2026-07-20 10:31:42 +07:00
kurogeek 3c54e8d6ef inventory/internet: add tangra machine 2026-07-17 15:41:59 +07:00
kurogeek 4a7d5340f3 inventory/internet: add ramus machine 2026-07-17 15:41:44 +07:00
kurogeek 458265f96b inventory/yggdrasil-global-network: allow kurogeek laptop as extra ip 2026-07-17 15:01:09 +07:00
kurogeek 702ef6ab86 inventory/yggdrasil-global-network: enable on all machines 2026-07-17 14:55:06 +07:00
kurogeek ea4e2f03a7 nix fmt 2026-07-16 16:34:46 +07:00
kurogeek e738692558 clanService/phonebox: allow multi-clients to exist on one node 2026-07-16 16:25:51 +07:00
kurogeek ef698f8ad3 inventory/prometheus: add sirius to monitor machines 2026-07-13 10:28:47 +07:00
kurogeek 824b099ad6 Merge pull request 'clanService/wordpress: allow mutable at wp-content/ai1wm-backups' (#2) from mooyai/infra:mooyai-patch-1 into main
Reviewed-on: #2
2026-07-08 16:41:27 +07:00
kurogeek 3b8c11b096 inputs/frappix: bump version 2026-07-02 11:19:35 +07:00
kurogeek 982c6c23ca machines/deneb: frappe add posprinter app 2026-07-01 17:05:40 +07:00
kurogeek e55bbaaa6b inputs/frappix: bump version 2026-07-01 17:05:11 +07:00
kurogeek 53c98dcba8 Merge pull request 'Update modules/clan/wordpress/default.nix' (#1) from mooyai/infra:main into main
Reviewed-on: #1
2026-06-23 16:59:11 +07:00
kurogeek dbb3e55cad init cursa as a prometheus server, vega and rigel are monitored 2026-06-23 15:28:35 +07:00
kurogeek d09f67a757 clanService/prometheus: init monitoring system 2026-06-23 15:27:31 +07:00
kurogeek 77b487a709 clancore bumped, zerotier migration 2026-06-16 15:01:21 +07:00
kurogeek 2b239eb162 hm/emmie: use hunspell dictionary with systemd user session variables, libreoffice -> libreoffice-qt 2026-06-16 11:20:05 +07:00
kurogeek 8e64e88d8f inputs: bump home-manager 2026-06-16 11:18:34 +07:00
kurogeek 6276d9aee0 inputs: bump nixpkgs, frappix. migrate inventree 2026-06-15 16:36:18 +07:00
kurogeek 9471d1a4e6 machines/bosona: nix fmt 2026-06-15 15:55:04 +07:00
kurogeek 77d8e42ec2 hm/emmie: add hunspellDicts en and th 2026-06-15 13:28:58 +07:00
kurogeek 0dafb8cd52 clanService/wordpress: nginx clientMaxBodySize is 128m 2026-06-12 12:22:27 +07:00
kurogeek 8b12656149 clanService/wordpress: phpfpm options and wp-config.php are configurable from inventory interface 2026-06-12 12:09:56 +07:00
kurogeek d622040d30 hm/emmie: rm DnsOverHttpsMode and DnsOverHttpsTemplates 2026-06-11 13:54:17 +07:00
kurogeek 2bc05c2d6d clanService/wordpress: test vars 2026-06-10 18:59:30 +07:00
kurogeek 5fa8444112 clanService/wordpress: security.acme.acceptTerms = true and nginx is in acme group 2026-06-10 18:59:01 +07:00
kurogeek 8874b33a5d greaterchiangmai: nodejs_20 -> nodejs 2026-06-10 18:56:48 +07:00
kurogeek 521ccdc886 clanService/personal-computer: rm services.displayManager.gdm.wayland 2026-06-10 18:53:46 +07:00
kurogeek 07b648db9a clanService/headscale: magic_dns is disabled 2026-06-10 15:11:26 +07:00
kurogeek da6be4946f machines/tangra: poyfestival.com website 2026-06-01 10:42:03 +07:00
kurogeek bc16c72707 machines/canopus: localhost -> sitename 2026-05-25 14:20:44 +07:00
kurogeek 3a26403590 inventory/tags: add alasia to b4l and global-network tags 2026-05-20 14:05:29 +07:00
kurogeek 5681a65c6f Update vars via generator zerotier (machine: alasia) 2026-05-20 12:49:31 +07:00
kurogeek 175087e9fd Update vars via generator zerotier (machine: alasia) 2026-05-20 12:49:17 +07:00
kurogeek 0b82ffa913 Update vars via generator yggdrasil (machine: alasia) 2026-05-20 12:48:43 +07:00
kurogeek 5d216dd56f Update vars via generator yggdrasil (machine: alasia) 2026-05-20 12:48:27 +07:00
kurogeek 48ea7cb6ea machines/deneb: unauthorized dbe44c0287 and e3d6559697 2026-05-20 10:45:13 +07:00
kurogeek 0f79022907 machines/bosona: ERPNext machine for Tempo 2026-05-19 17:11:55 +07:00
kurogeek c15ac6fca5 inputs/frappix: bump version 2026-05-19 14:41:52 +07:00
kurogeek e9ae808a7d machines/deneb: frappe add module crm 2026-05-18 12:22:27 +07:00
kurogeek 8e085211f7 machines/alasia: headscale server 2026-05-15 18:00:31 +07:00
kurogeek 47c4f3143e rm b4l 2026-05-12 17:21:37 +07:00
kurogeek f1e914b927 Revert "rm b4l"
This reverts commit 06f1f990f0.
2026-05-12 17:16:23 +07:00
kurogeek 210a3101de specify boot.zfs.forceImportRoot 2026-05-12 16:49:03 +07:00
kurogeek 06f1f990f0 rm b4l 2026-05-12 16:48:30 +07:00
kurogeek 781e70287d inputs: bump nixpkgs, frappix, treefmt-nix 2026-05-12 16:46:07 +07:00
kurogeek c030b045a2 routers/whitehouse-2: init whitehouse-2 as an AP 2026-05-07 10:52:05 +07:00
kurogeek 6a29794575 vars/canopus: rm zerotier/zerotier-network-id 2026-05-06 16:32:12 +07:00
kurogeek da9ad2523c Update vars via generator zerotier (machine: canopus) 2026-05-06 15:47:51 +07:00
kurogeek 052082d631 revert: clan-core and zerotier update 2026-05-06 15:42:44 +07:00
kurogeek 1aab77c302 machines/deneb: localhost -> poyerp.newedge.house 2026-05-04 16:59:31 +07:00
kurogeek f146eaf0a5 machines/deneb: allow Alex gateway 2026-05-04 16:59:02 +07:00
kurogeek 0aabd4f527 inventory/poy-network: add 2026-05-04 15:05:09 +07:00
kurogeek a22582502b vars: update via generator zerotier (machine: deneb) 2026-05-04 14:29:27 +07:00
kurogeek 0c7c791f19 vars: update via generator zerotier (machine: canopus) 2026-05-04 14:13:25 +07:00
kurogeek 87a1ebba2c machines/canopus: rm netbird service, disconnect from the internet 2026-05-04 11:42:40 +07:00