diff --git a/README.md b/README.md index f28cbed..f0ba03d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,43 @@ # OpenNeo Code -TODO: Write this! <3 +This is the deployment code we use to set up and manage code.openneo.net, +a self-hosted copy of [Forgejo][fj]! It's a very GitHub-like service, but we +control the data. (Microsoft's recent approach to AI has me feeling real +anxious about continuing to develop on there!) + +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-forgejo.yml`: Sets up the Forgejo server itself, as a `systemd` + service running Forgejo's official Linux binary. + +You can run them individually, or all at once, with `run.sh`: + + run.sh setup-all.yml + +If you're interested in setting up your own Forgejo 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!) +- `files/app.ini` includes some custom config you'll need to replace, like our + domain name. (We also opt to use Forgejo's built-in HTTPS support, via + Let's Encrypt!) +- You'll need to create your own copy of the secret token files in + `files/secrets`. See the `README` in there for more details! +- We used the latest version of Forgejo available at the time we deployed, + but it's possible you're reading this later. It's worth checking out + Forgejo's own self-hosting instructions, and making sure you download the + latest version. +- This code is distributed under the GPLv3 license; see the `LICENSE` file for + more details. + +Hope this helps! + +[fj]: https://forgejo.org/ diff --git a/setup-all.yml b/setup-all.yml new file mode 100644 index 0000000..96cce9f --- /dev/null +++ b/setup-all.yml @@ -0,0 +1,4 @@ +--- +- import_playbook: setup-users.yml +- import_playbook: setup-security.yml +- import_playbook: setup-forgejo.yml