<feed xmlns='http://www.w3.org/2005/Atom'>
<title>luke/ansible-roles/pleroma, 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-04-26T01:04:39+00:00</updated>
<entry>
<title>Only run pleroma migrate on version change or first install</title>
<updated>2026-04-26T01:04:39+00:00</updated>
<author>
<name>Luke Hoersten</name>
<email>luke@hoersten.org</email>
</author>
<published>2026-04-26T01:04:39+00:00</published>
<link rel='alternate' type='text/html' href='https://src.nth.io/luke/ansible-roles/commit/?id=ad2215ee82a87f11c23a7b50c7cc09de9bb7c802'/>
<id>urn:sha1:ad2215ee82a87f11c23a7b50c7cc09de9bb7c802</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Build all roles from source with versioned artifacts</title>
<updated>2026-04-26T00:54:49+00:00</updated>
<author>
<name>Luke Hoersten</name>
<email>luke@hoersten.org</email>
</author>
<published>2026-04-26T00:54:49+00:00</published>
<link rel='alternate' type='text/html' href='https://src.nth.io/luke/ansible-roles/commit/?id=6a8cb5f10557733f1521035d57a191b12832d634'/>
<id>urn:sha1:6a8cb5f10557733f1521035d57a191b12832d634</id>
<content type='text'>
- Add pleroma/build role to compile from source (OTP binaries no longer published)
- Install Elixir 1.18.3 manually on Ubuntu Noble (ships 1.14, needs 1.15+)
- Standardize all build roles to produce versioned .tar.gz artifacts
- Add version defaults to all server roles (bin, dendrite, nostr/relayer)
- Switch server roles from get_url to unarchive for .tar.gz installs
- Add build_srv_dir variable to all build roles
- Deploy pleroma styles.json so custom FE themes appear in picker
- Fix pleroma OTP install: version check, root ownership, auto-cleanup old releases
- Fix pleroma config: log level :warn -&gt; :warning, remove availableStyles
- Add wait_for grafana readiness before dashboard install
- Set minecraft ops changed_when: false
</content>
</entry>
<entry>
<title>Harden role security: file permissions, service binding, no_log, strict defaults</title>
<updated>2026-04-06T02:19:55+00:00</updated>
<author>
<name>Luke Hoersten</name>
<email>luke@hoersten.org</email>
</author>
<published>2026-04-06T02:19:55+00:00</published>
<link rel='alternate' type='text/html' href='https://src.nth.io/luke/ansible-roles/commit/?id=06b69bd8def0aae07d3fb565d19193be1a8dfe20'/>
<id>urn:sha1:06b69bd8def0aae07d3fb565d19193be1a8dfe20</id>
<content type='text'>
- Add no_log: true to tasks that handle passwords/secrets
- Tighten config file permissions (0644 -&gt; 0600/0640 where appropriate)
- Bind pleroma to 127.0.0.1 instead of 0.0.0.0
- Tighten ergo unix socket mode 0777 -&gt; 0770
- Remove weak defaults; roles now fail explicitly if required vars not set
</content>
</entry>
<entry>
<title>Added soju role.</title>
<updated>2026-03-28T18:42:08+00:00</updated>
<author>
<name>Luke Hoersten</name>
<email>luke@hoersten.org</email>
</author>
<published>2026-03-28T18:42:08+00:00</published>
<link rel='alternate' type='text/html' href='https://src.nth.io/luke/ansible-roles/commit/?id=45da5bca82200af63b0ee16479b267eb209386f3'/>
<id>urn:sha1:45da5bca82200af63b0ee16479b267eb209386f3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Version updates and fixed excessive logging on web server.</title>
<updated>2025-01-04T01:36:28+00:00</updated>
<author>
<name>Luke Hoersten</name>
<email>luke@hoersten.org</email>
</author>
<published>2025-01-04T01:36:28+00:00</published>
<link rel='alternate' type='text/html' href='https://src.nth.io/luke/ansible-roles/commit/?id=b180fe427c44da015874dbf86c326f6e6bcd0aa8'/>
<id>urn:sha1:b180fe427c44da015874dbf86c326f6e6bcd0aa8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Lots of updates and fixes for Ubuntu 24.04 Noble.</title>
<updated>2024-10-07T20:25:37+00:00</updated>
<author>
<name>Luke Hoersten</name>
<email>luke@hoersten.org</email>
</author>
<published>2024-10-07T20:25:37+00:00</published>
<link rel='alternate' type='text/html' href='https://src.nth.io/luke/ansible-roles/commit/?id=27739609362360b2bf533f5a59106ce52c8d4b9f'/>
<id>urn:sha1:27739609362360b2bf533f5a59106ce52c8d4b9f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Cleaned up always-changed status tasks.</title>
<updated>2024-07-29T17:41:57+00:00</updated>
<author>
<name>Luke Hoersten</name>
<email>luke@hoersten.org</email>
</author>
<published>2024-07-29T17:41:57+00:00</published>
<link rel='alternate' type='text/html' href='https://src.nth.io/luke/ansible-roles/commit/?id=874be10f6646a66cd0e994963b2746ad48f5b73e'/>
<id>urn:sha1:874be10f6646a66cd0e994963b2746ad48f5b73e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Tons of updates to fix migration to new server.</title>
<updated>2024-02-05T02:27:19+00:00</updated>
<author>
<name>Luke Hoersten</name>
<email>luke@hoersten.org</email>
</author>
<published>2024-02-05T02:27:19+00:00</published>
<link rel='alternate' type='text/html' href='https://src.nth.io/luke/ansible-roles/commit/?id=04edbf561c44e28753cbbaa3870b23b220cc644c'/>
<id>urn:sha1:04edbf561c44e28753cbbaa3870b23b220cc644c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Version update</title>
<updated>2023-04-03T18:20:18+00:00</updated>
<author>
<name>Luke Hoersten</name>
<email>luke@hoersten.org</email>
</author>
<published>2023-04-03T18:20:18+00:00</published>
<link rel='alternate' type='text/html' href='https://src.nth.io/luke/ansible-roles/commit/?id=fecba00f69bf8577d7abe67dcb81a612b3c547e5'/>
<id>urn:sha1:fecba00f69bf8577d7abe67dcb81a612b3c547e5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Version updates</title>
<updated>2023-02-23T23:55:33+00:00</updated>
<author>
<name>Luke Hoersten</name>
<email>luke@hoersten.org</email>
</author>
<published>2023-02-23T23:55:33+00:00</published>
<link rel='alternate' type='text/html' href='https://src.nth.io/luke/ansible-roles/commit/?id=c5343ef2c6830c3f833c65a21ad5e6ea3affc5a0'/>
<id>urn:sha1:c5343ef2c6830c3f833c65a21ad5e6ea3affc5a0</id>
<content type='text'>
</content>
</entry>
</feed>
