Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement NixOS configuration for webforge with CI/CD Nix workflow #28

Closed
wants to merge 11 commits into from

Conversation

btlogy
Copy link
Member

@btlogy btlogy commented Jan 27, 2025

Part of #4161 Move off Trac - Execution - Forgejo

This PR is implementing a workflow which we're already using at Least Authority to simplify the management of a few NixOS systems and automatically deploy changed in a pull fashion way (see the README file).

It has been largely inspired from the following projects:

Merging this PR should trigger the automatic deployment of the NixOS configuration of webforge as defined in the nix/hosts/webforge folder.

This should should provide us an empty Forgejo, some blank website and a reverse proxy to expose the legacy (current) Trac and web landing page of the Tahoe-LAFS project.

WARNING

This configuration requires a few DNS records to be published before merging:

  • webforge.tahoe-lafs.org (A + AAAA)
  • forge.tahoe-lafs.org (CNAME)
  • home.tahoe-lafs.org (CNAME)
  • preview.tahoe-lafs.org (CNAME)
  • legacy.tahoe-lafs.org (CNAME)
  • mail.tahoe-lafs.org (CNAME)

In addition to a few more records required to make it fully functional later:

  • _spf.tahoe-lafs.org (TXT)
  • _domainkey.tahoe-lafs.org (TXT)
  • _dmarc.tahoe-lafs.org (TXT)
  • tahoe-lafs.org (A + AAAA + TXT + MX?)
  • www.tahoe-lafs.org (CNAME)

But we might be able to automate the management of those 15 records via pull requests (see #4162 Infrastructure as Code to manage DNS configurations).

Signed-off-by: Benoit Donneaux <benoit@leastauthority.com>
@btlogy btlogy self-assigned this Jan 27, 2025
Signed-off-by: Benoit Donneaux <benoit@leastauthority.com>
Signed-off-by: Benoit Donneaux <benoit@leastauthority.com>
@btlogy
Copy link
Member Author

btlogy commented Jan 27, 2025

@hacklschorsch is not going to like it (1063 lines of code full of place for bugs to hide :-/), but we need to start this workflow somewhere.

I've considered to split this PR in different pieces, but each steps would end up achieving not much until the last one (which would be actually deploying the services we need).

@btlogy btlogy requested a review from hacklschorsch January 27, 2025 13:07
@hacklschorsch hacklschorsch mentioned this pull request Jan 27, 2025
@btlogy btlogy marked this pull request as ready for review January 27, 2025 14:30
btlogy and others added 6 commits January 29, 2025 09:43
Signed-off-by: Benoit Donneaux <benoit@leastauthority.com>
Co-authored-by: Florian Sesser <florian@leastauthority.com>
Signed-off-by: Benoit Donneaux <benoit@leastauthority.com>
Co-authored-by: Florian Sesser <florian@leastauthority.com>
Signed-off-by: Benoit Donneaux <benoit@leastauthority.com>
Co-authored-by: Florian Sesser <florian@leastauthority.com>
Signed-off-by: Benoit Donneaux <benoit@leastauthority.com>
Co-authored-by: Florian Sesser <florian@leastauthority.com>
Signed-off-by: Benoit Donneaux <benoit@leastauthority.com>
Signed-off-by: Benoit Donneaux <benoit@leastauthority.com>
@btlogy
Copy link
Member Author

btlogy commented Jan 29, 2025

I've started to back ported a few improvements from @hacklschorsch in this PR (#23, #24, #25 and #26). But I had to revert #25 because this does not work with flake.

Which lead me to consider if we could switch to the small variants of the nixpkgs...
Though, I'm not sure this will give the same result as proposed in #25.

Signed-off-by: Benoit Donneaux <benoit@leastauthority.com>
@btlogy
Copy link
Member Author

btlogy commented Jan 29, 2025

Too big to be review: let's split it in smaller pieces.

@btlogy
Copy link
Member Author

btlogy commented Feb 7, 2025

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant