<feed xmlns='http://www.w3.org/2005/Atom'>
<title>luke/ansible-roles/mattertimesync, branch main</title>
<subtitle>Ansible roles for nth.io infrastructure
</subtitle>
<id>https://src.nth.io/luke/ansible-roles/atom?h=main</id>
<link rel='self' href='https://src.nth.io/luke/ansible-roles/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://src.nth.io/luke/ansible-roles/'/>
<updated>2026-07-26T21:46:21+00:00</updated>
<entry>
<title>build roles: create build_work_dir and redirect caches per-role</title>
<updated>2026-07-26T21:46:21+00:00</updated>
<author>
<name>Luke Hoersten</name>
<email>luke@hoersten.org</email>
</author>
<published>2026-07-26T21:46:21+00:00</published>
<link rel='alternate' type='text/html' href='https://src.nth.io/luke/ansible-roles/commit/?id=0dfd81ca1696053b366a39cab02e54205a09fb20'/>
<id>urn:sha1:0dfd81ca1696053b366a39cab02e54205a09fb20</id>
<content type='text'>
Each build role now creates build_work_dir itself and sets its own toolchain's
cache env (GOPATH/GOCACHE/GOMODCACHE, CARGO_HOME, npm cache, MIX/HEX) on its
build tasks, so the roles are self-contained instead of relying on a play-level
environment and pre_task.
</content>
</entry>
<entry>
<title>build roles: force real tarballs for single-file artifacts</title>
<updated>2026-07-26T21:31:56+00:00</updated>
<author>
<name>Luke Hoersten</name>
<email>luke@hoersten.org</email>
</author>
<published>2026-07-26T21:31:56+00:00</published>
<link rel='alternate' type='text/html' href='https://src.nth.io/luke/ansible-roles/commit/?id=28c1fc8ea39f0fdb244f08f386ed81a2c68c0f5c'/>
<id>urn:sha1:28c1fc8ea39f0fdb244f08f386ed81a2c68c0f5c</id>
<content type='text'>
community.general.archive (&gt;=10) compresses a lone file into a bare .gz instead
of a tarball, so the mattertimesync/bin/nostr artifacts failed the server-side
unarchive. Set force_archive: true so the archive module emits a real
single-member .tar.gz, consistent with the multi-file dendrite/pleroma builds.
</content>
</entry>
<entry>
<title>build roles: stage checkouts + artifacts under build_work_dir</title>
<updated>2026-07-26T21:05:40+00:00</updated>
<author>
<name>Luke Hoersten</name>
<email>luke@hoersten.org</email>
</author>
<published>2026-07-26T21:05:40+00:00</published>
<link rel='alternate' type='text/html' href='https://src.nth.io/luke/ansible-roles/commit/?id=a173d5c8f149b4dde505fd4ab5257fb4cbc6911e'/>
<id>urn:sha1:a173d5c8f149b4dde505fd4ab5257fb4cbc6911e</id>
<content type='text'>
Move every build role's working dir off /tmp (the SD card) to {{build_work_dir}},
which the playbook points at the SSD on the build host. nostr and pleroma stage
their artifacts inside their own build dirs so the shared work dir can't collide,
while preserving the archive top-level names (relayer, release) that the server
roles depend on.
</content>
</entry>
<entry>
<title>mattertimesync: add build + server roles</title>
<updated>2026-07-26T16:49:11+00:00</updated>
<author>
<name>Luke Hoersten</name>
<email>luke@hoersten.org</email>
</author>
<published>2026-07-26T16:49:11+00:00</published>
<link rel='alternate' type='text/html' href='https://src.nth.io/luke/ansible-roles/commit/?id=1566ed593907c829827237aad924c3f527723218'/>
<id>urn:sha1:1566ed593907c829827237aad924c3f527723218</id>
<content type='text'>
Build role compiles the tagged source on the build host (npm ci + npm run
bundle) into a versioned mattertimesync-&lt;ver&gt;.tar.gz in build_srv_dir. Server
role installs the single bundled .mjs, creates the mattertimesync service user
and a 0700 storage dir for the Matter fabric keys, templates config.json, and
runs a hardened oneshot sync via a systemd timer. Both roles depend on the
nodejs role for Node &gt;=20.
</content>
</entry>
</feed>
