summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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.
2024-03-03Remove extraneous MUC configurationMatthew Fennell
We remove some extra MUC configuration here that should not be needed, as these settings should be handled by the defaults anyway.
2024-03-03Remove DNS and firewall sections from the READMEMatthew Fennell
These are now fully automated, thanks to the libcloud setup, which is currently sitting in a separate repository, that will be merged with this one. Therefore, there is no longer any need to configure these manually.
2024-02-28Remove 10 year archival of messagesMatthew Fennell
I misunderstood how MAM works, and thought that storing messages long-term would allow new clients to retrieve long-term history. This commit moves the server's configuration back to the default of one week.
2024-02-28Register DNS records via deSECMatthew Fennell
I have moved DNS configuration for all of my servers to deSEC, thanks to its easy-to-use REST interface. This allows me to configure DNS records as part of the playbook, instead of having to add them manually for each new server I'd like to create. The consequence of this is that the playbook now has a hard dependency on deSEC.
2024-02-28Add reload_modules community moduleMatthew Fennell
My ACME scripts currently reload (instead of restarting) prosody after installing new certificates. Therefore, I would like to make sure that these new certificates are picked up on such an action.
2024-02-28Add whitespace between playbook tasksMatthew Fennell
This makes it easier to navigate through the playbook, and jump to the part that you're interested in editing, using the { and } keys in vim.
2024-02-28Remove certificate renewal steps from playbookMatthew Fennell
I would like certificate renewal to be handled centrally across all of my deployed services. Therefore, responsibility for certificate renewal no longer belongs in this playbook.
2024-02-08Use apt module instead of packageMatthew Fennell
I tried to create a fresh nonprod deployment today on continuous.staging.nonprod.chat.fennell.dev. However, the first step failed because the apt command could not find borgmatic. The solution was to run apt update before running apt install. Unfortunately, ansible's package module does not have an option for this. Therefore, although I would have liked to stick with "package" (to keep it general and away from the specific of using "apt" as a package manager), I have switched back to using the apt module so that the step can succeed without any manual intervention on fresh install.
2024-02-08Add notes.md to .gitignoreMatthew Fennell
I'll use this file to store notes about the specific deployments I have.
2024-02-05Bulk update with all changes currently in prodMatthew Fennell
2024-01-26Add support for file uploadMatthew Fennell
This commit adds support for XEPS 0065 and 0365 - i.e. sending files from one account to another.
2024-01-12Increase smacks hibernation time to 1 dayMatthew Fennell
This is based on the recommendation of Monal's "Considerations for XMPP server admins" document.
2024-01-12Enable mod_external_servicesMatthew Fennell
This commit adds support for XEP-0215, or the discovery of external services.
2024-01-12Enable mod_cloud_notifyMatthew Fennell
This commit adds support for XEP-0357, or cloud push notifications, and lets notifications be reliably delivered on iOS and Android.
2024-01-12Replace csi_simple with csi_battery_saverMatthew Fennell
This should help reduce XMPP clients' battery consumption on mobile devices.
2024-01-12Increase archive expiry to 10 yearsMatthew Fennell
I would like the message expiry to be very long, so that there is very little chance of users not being able to retrieve messages.
2024-01-08Enable XEP-0065Matthew Fennell
This commit enabled SOCKS5 Bytestreams, allowing users to send and receive files.
2024-01-08Become root during package installationMatthew Fennell
Previously, the playbook would fail if it needed to install packages, as this (in the case of apt) requires sudo.
2024-01-08Add borgmatic init instructionsMatthew Fennell
At present, these are not automated by the runbook and need to be manually run as part of setup for each new managed host the playbook is run against.
2024-01-08Ensure borgmatic config directory existsMatthew Fennell
This directory is created by a user command, not as part of the package installation process. Therefore, it may not exist if the user has not yet configured borgmatic on the host.
2024-01-08Simplify validation of borgmatic fileMatthew Fennell
This commit uses the simpler, more standard validate feature of template instead of triggering a handler. The feature is there - may as well use it!
2024-01-08Install borgmatic in the playbookMatthew Fennell
This commit adds borgmatic, to provide automated backups.
2024-01-08Encourage use of host_var yaml filesMatthew Fennell
For now, there are not too many variables to set per host. However, this will likely change in future commits, with a greater number of variables needing to be configured. Therefore, this commit encourages the user to define these variables in a yaml file, which will be more cleanly scalable.
2024-01-08Run yamllint on template filesMatthew Fennell
I may in the future introduce yaml config file templates, since this is a relatively common format for configuring services. If I do so, I should ensure that yamllint gets run on these too.
2024-01-07Add (simple case) DNS instructions to the readmeMatthew Fennell
This commit adds some basic DNS instructions for the initial setup of the host, which can be used when the domain of the JID matches the domain of the host.
2024-01-07Assign prosody config files to prosody groupMatthew Fennell
The playbook previosuly assigned the prosody config files to the root group. With root as the owner, and permissions as 0640, this meant that prosody was not able to read the files. This commit fixes this.
2024-01-07Ensure certificates are installedMatthew Fennell
This commit ensures certificates are installed, via Lets Encrypt.
2024-01-07Only reload prosody if its configuration changesMatthew Fennell
There is no sense reloading prosody if none of its configuration files have changed. Therefore, this commit moves the reload to a handler that only gets triggered in this situation.
2024-01-07Re-introduct yamllintMatthew Fennell
There are some checks that are enabled by default in yamllint, that are not caught by default by ansible-lint. For instance, ansible-lint does not check for line lengths in its default configuration. Therefore, we would like to re-introduce yamllint to make sure we do not miss any checks.
2024-01-07Replace yamllint with ansible-lintMatthew Fennell
ansible-lint uses yamllint under the hood, and also checks for many more "logical" errors in the ansible config.
2024-01-07Add vim .swp files to .gitignoreMatthew Fennell
I would like to avoid accidentally committing one of these files.
2024-01-07Add virtual host specific configMatthew Fennell
This commit uses the new per-host virtual_host variable to create the necessary prosody host-specific cfg files.
2024-01-07Install prosody config fileMatthew Fennell
This commit adds a prosody configuration file that can be installed on the remote hosts. This lets me make the configuration locally, deploy it to staging environments, and then to prod, without having to directly login to the hosts.
2024-01-07Open ports for OpenSSH, WWW and XMPPMatthew Fennell
This commit enables the necessary ports for XMPP, web hosting (to allow certbot to renew automatically) and SSH.
2024-01-07Add initial playbookMatthew Fennell
At present, the playbook simply ensures that all required packages are installed.
2024-01-07Add project licenseMatthew Fennell
This project is licensed under AGPL-3.0-only. I would like to use reuse across this project, therefore the license is placed in the LICENSES directory.