45 lines
2.1 KiB
Markdown
45 lines
2.1 KiB
Markdown
# OpenNeo Code
|
|
|
|
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, we
|
|
just use them as idempotent command-line scripts!)
|
|
|
|
- `setup-machine.yml`: Sets up the hostname config and 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. This is mostly a 1:1 port
|
|
of [Forgejo's "Installation from binary" guide][fj-install]!
|
|
|
|
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-machine.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/
|
|
[fj-install]: https://forgejo.org/docs/latest/admin/installation-binary/
|