Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gfarrell/infra
Personal infrastructure setup
https://github.com/gfarrell/infra
Last synced: 2 months ago
JSON representation
Personal infrastructure setup
- Host: GitHub
- URL: https://github.com/gfarrell/infra
- Owner: gfarrell
- Created: 2019-07-19T23:04:39.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-09-16T22:26:02.000Z (4 months ago)
- Last Synced: 2024-09-17T03:25:43.137Z (4 months ago)
- Language: Nix
- Size: 69.3 KB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Gideon's Personal Infrastructure
My infrastructure is setup as a nix flake, with each host configured as a separate `nixosConfiguration` using `flake-parts`. A `justfile` contains common commands like building and deploying.
## What's in here?
### Pharos
Pharos, named after the lighthouse at Alexandria, hosts public-facing services, currently just the gtf.io website while I work out how to do other things.
* [gtf-io](https://github.com/gfarrell/gtf-io)
* a [prometheus](https://prometheus.io) server to collect metrics## Usage
### Creating a new host droplet on digitalocean
1. Build the virtual image for the host: `just make-image HOST`
2. Upload the image from `./result/nixos.qcow.gz` to digitalocean cloud.digitalocean.com/images
3. Create a new droplet with this image
4. Point HOST.gtf.io at that droplet### Building the host configuration
just make-config HOST
### Update the service dependencies
Things like the gtf.io website need to be explicitly updated in the flake.lock file before you will be able to deploy changes. To do that, just run:
just update-my-deps
This is to avoid accidentally updating the whole flake lockfile (`nix flake update`) which will result in _everything_ in the host configuration being updated, and therefore a very, very long deployment time.