Emi Matchu
72aba0d579
I've learned some more about Ansible, and how to use `ansible.cfg` to set up `ansible-playbook` to do the same thing as our `run.sh` was doing! Same number of files, less overhead for the workflow's weirdness.
43 lines
2.1 KiB
Markdown
43 lines
2.1 KiB
Markdown
# OpenNeo Analytics
|
|
|
|
This is the deployment code we use to set up and manage analytics.openneo.net,
|
|
a self-hosted copy of [Plausible][pl]! It's an analytics service that's
|
|
unusually privacy-oriented, keeping as little data as possible to give us an
|
|
impression of trends in usage and what features people do and don't use.
|
|
|
|
We like to use Ansible playbooks to keep track of how we set up our servers,
|
|
here's how we've structured them! (We don't use very fancy Ansible features:
|
|
these are all very basic commands, captured in script form for convenience!)
|
|
|
|
- `setup-users.yml`: Sets up the user accounts for the system, with their SSH
|
|
keys for login.
|
|
- `setup-security.yml`: Sets up firewall rules and automatic system updates.
|
|
(This is a standard playbook I use for all my servers!)
|
|
- `setup-nginx.yml`: Sets up the nginx reverse-proxy to sit in front of
|
|
Plausible, including `certbot` for auto-renewing SSL certificates.
|
|
- `setup-plausible.yml`: Sets up the Plausible server itself, as a `systemd`
|
|
service running Plausible's official Docker container.
|
|
|
|
You can run them individually, or all at once, with `ansible-playbook`:
|
|
|
|
ansible-playbook setup-all.yml
|
|
|
|
If you're interested in setting up your own Plausible service, this could be
|
|
useful as a starting point, there's not much custom here! Just a couple things
|
|
to note:
|
|
|
|
- `setup-users.yml` contains my own username and my own SSH public keys—you'll
|
|
want to replace those! (Public SSH keys aren't secret, don't worry, I'm fine!)
|
|
- You'll need to create your own copy of `files/plausible-conf.env`, with your
|
|
own random secret key. We've omitted ours from the repo for security reasons,
|
|
but `files/plausible-conf.example.env` is similar!
|
|
- We used the latest version of Plausible available at the time we deployed,
|
|
but it's possible you're reading this later. It's worth checking out
|
|
Plausible's own self-hosting instructions, and making sure your copy of
|
|
`files/docker-compose.yml` references the latest versions.
|
|
- This code is distributed under the GPLv3 license; see the `LICENSE` file for
|
|
more details.
|
|
|
|
Hope this helps!
|
|
|
|
[pl]: https://plausible.io/
|