summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-08-11Add some extra statistics modulesHEADmasterMatthew Fennell
While looking through the list of available prosody-modules, these seemed useful.
2025-08-11Add some extra antispam modulesMatthew Fennell
While looking through the list of available prosody-modules, these two seemed useful.
2025-08-11Add spam checkingMatthew Fennell
Thankfully the servers I manage have not seen any spam, nevertheless, I'd rather set up some kind of mitigation now, before it becomes a problem.
2025-08-11Do not explicitly load component moduleMatthew Fennell
Whoops! mod_component is not supposed to be loaded directly, instead it gets indirectly loaded as a result of the relevant component definitions.
2025-08-11Enable extra modules available in prosody 13Matthew Fennell
I took the opportunity to look through the module list and add some extra ones that were missing before.
2025-08-11Enable sasl2 modulesMatthew Fennell
These are newly available in Trixie. I believe Monal will start loudly warning if they are not used in the near future.
2025-08-11Remove unused mod_posixMatthew Fennell
According to prosodyctl check, this module is no longer used or needed.
2025-08-11Remove deprecated vcard_muc moduleMatthew Fennell
This is not available in prosody-modules 0.0~hg20250402.f315edc39f3d+dfsg-2.
2025-08-11Document domain_with_ds and ds_subnameMatthew Fennell
I found these variables a bit confusing after having to interact with them again. It is useful to have some context now I have forgotten all about the DS record setup!
2025-08-11Add whitespace between variable definitionsMatthew Fennell
It is useful to jump to diferent variables using the {} keys in vim, and the rest of the playbook has similar whitespace.
2025-08-11Set domain_with_ds to "" if no parent domainMatthew Fennell
domain_with_ds is checked against the empty string when checking whether we should define ds_subname. When no parent_domain was found, we setting domain_with_ds to None, which in Ansible 10 was (correctly) failing the domain_with_ds != "" check. However, in Ansible 12, it now fails that check, meaning that Ansible tried to evaluate ds_subname even when domain_with_ds was None, resulting in a type conversion failure. Therefore, make sure that domain_with_ds is always a string, even if parent_domain is undefined, and use the empty string to represent this, as expected in the playbook itself.
2025-08-10Set hostname in playbookMatthew Fennell
Some services, such as munin, read the hostname from the system, and don't allow "virtual host" configuration like prosody. For such services, we want to make sure the hostname is set correctly.
2025-08-10Disable cloud-initMatthew Fennell
I want ansible to take full control of managing /etc/hosts, hostname etc. I think it is most convenient to disable cloud-init entirely, to prevent contention between ansible and cloud-init.
2025-08-10Replace deprecated postgres parametersMatthew Fennell
db and database have been deprecated, and replaced with login_db.
2025-08-10Use discovered python interpreter without warningMatthew Fennell
I don't need to specify the exact interpreter through ansible, as I can do this from the host itself.
2025-08-10Set pipefail when retrieving DANE hashMatthew Fennell
This is now enforced by ansible-lint.
2025-07-19Bump per-upload limit to 300 MiBMatthew Fennell
There's no need to jump back to 2 GiB yet, but I was finding 10 MiB too restrictive.
2025-07-06Remove debug logging optionMatthew Fennell
Debug logging was historically enabled in nonprod. This would let me test interactions between the client and the server by checking exactly what was sent and received. However, this will shortly not be needed as prosody 13 supports prosodyctl shell watch log, allowing me to "dip in" to debug logs whenver needed.
2025-07-06Remove anonymous login supportMatthew Fennell
This was originally intended for motoristic, but is no longer needed by any domain.
2025-07-06Remove roster group supportMatthew Fennell
This was only ever enabled for testing purposes, and is no longer needed.
2025-07-06Share turnserver between vhosts on same machineMatthew Fennell
I made a mistake in the original configuration - I tried to give each virtual host a separate turnserver on its own subdomain. However, since koyo.haus and fennell.dev (and likewise in nonprod) share a virtual machine, they can only have one turnserver between them (in the turnserver.conf, there can only be a single realm). Therefore, always point to koyo.haus for the turnserver in each environment.
2025-07-06Add 5GB fileshare limit to each virtual hostMatthew Fennell
2025-07-05Manage certificates on localhostMatthew Fennell
I used to have a dedicated server for cert renewals; now I just run it from my laptop, with an increased cron frequency. This is simpler, especially when there is a powercut, and I'll certainly use my laptop every 30 days.
2025-07-05Do not deploy to staging on pre-commitMatthew Fennell
It's too time-consuming, especially when making multiple commits in one go, and having tested those changes by manually running make staging already.
2025-07-05Do not register users on runMatthew Fennell
These steps where not idempotent, because there was no way to check if the password was correct. So, they would again each time. The playbook gets run infrequently enough, and it is simple enough, to add users manually.
2025-07-05Remove no longer used on_renew scriptMatthew Fennell
2025-07-05Use --diff flag in MakefileMatthew Fennell
This makes it easier to debug why a step is unexpectedly not idempotent.
2025-07-05Remove borgmaticMatthew Fennell
Backups are now handled outside of the playbook.
2025-07-05Reset http_file_share_size_limit to defaultMatthew Fennell
This was quite generous, and if everyone used it at the same time, the host would fall over!
2025-07-05Only show clients with a good UX for new usersMatthew Fennell
2025-07-05Accept SSL connections on IPv6Matthew Fennell
2024-09-05Install custom unattended-upgrades configMatthew Fennell
The main way the config varies from Debian's default, is that we make sure to reboot after each upgrade.
2024-08-19Enable roster groupsMatthew Fennell
This is useful for two reasons: * To test clients that render roster groups provided by the server * To evaluate whether it is worth enabling this flag in production
2024-08-19Allow prosody's debug logging to be enabledMatthew Fennell
This lets us log each individual stanza from a server perspective, which can be useful when debugging client behaviour.
2024-08-19Bump max file size to 2 GBMatthew Fennell
This is to test how clients handle downloading large files.
2024-08-19Ensure systmed-timesyncd is installedMatthew Fennell
This is not always installed by default on all hosts. We encountered an issue where this package was not installed, and it was causing the system time to gradually drift.
2024-07-27Do not manage CAA records in the playbookMatthew Fennell
These vary significantly from deployment to deployment, and running this playbook previously caused issues on fennell.dev deployments, where I need to be able to deploy certificates by other means.
2024-07-27Explicitly add muc plugin to conference componentMatthew Fennell
This is in order to debug an issue I was seeing with group chats previously. I don't believe it actually had an impact, but I can't remember for sure now. I should debug this at some point and remove if necessary.
2024-07-27Increase file upload limitMatthew Fennell
This is so that I can test sending a relatively large APK in order to debug an issue in Dino.
2024-06-01Correct CAA record reference in documentationMatthew Fennell
In the README section for acme account information, I had incorrectly referred to the CAA records as TLSA records (which do not need this information at all). This commit fixes that mistake.
2024-05-29Bring README example config up-to-dateMatthew Fennell
This commit updates the README to include config lines that are being used as of previous commits.
2024-05-29Add invites_api moduleMatthew Fennell
I am rolling out a Matrix bot that will auto-reply to contacts in bridged conversations, encouraging people to reach out to me on XMPP. The bot will send them an invite link, retrieved from this API.
2024-05-23Add anonymous subdomain when requestedMatthew Fennell
This will primiarly be used for motoristic.
2024-05-15Delegate certificate management to acme projectMatthew Fennell
Although this playbook originally installed certificates to the server, this turned out to be a bad idea, because the playbook could in some circumstances (if the acme project had already renewed the certs) have installed a different certificate to the remote server. By delgating responsibility to the acme server fully, this should prevent any such issues, as well as potential DANE misconfigurations.
2024-04-04Bring repo up-to-date with current prod configMatthew Fennell
2024-03-03Update example virtual hosts used in the READMEMatthew Fennell
The naming scheme I'm using for prod and nonprod environments have changed, therefore this commit also updates the documentation to match this.
2024-03-03Update vars.yml references in the READMEMatthew Fennell
These references were out of date with what was needed from the playbook.
2024-03-03Do not create AAAA record during the playbookMatthew Fennell
The AAAA record should be created by the libcloud bootstrap process instead, so that the playbook can ssh using the hostname as normal.
2024-03-03Do not delete public keys from root accountMatthew Fennell
The playbook initially deleted the public keys from root's authorized_keys after copying them to admin, but this prevents the playbook from running the "Ensure admin account is created" commands in subsequent runs. Therefore, we shouldn't delete them. In the long term, I would like to find a way to only attempt to run the root commands if it's not possible to ssh as admin. This is as I don't like the idea of root having direct ssh access.
2024-03-03Ensure non-root admin account is createdMatthew Fennell
Initially, I used AWS Lightsail for deployment. However, I am now using Vultr via libcloud, which does not create a user named "admin" by default. Therefore, this commit aims to ensure that such an account is created, even on providers that don't create it by default.