No description
Find a file
Valentin Gagarin 7c33e8aaf3 scaffold Django web service
This setup is greatly inspired by the one used for [0], although with
notable modifications, such as:
- a SASS preprocessor and CSS compressor
- more streamlined NixOS integration tests
- cleaned up service configuration
- a few notes on how to do things better in the future

[0]: https://github.com/Nix-Security-WG/nix-security-tracker/

Apart from cloning the Nix setup, there were additional steps:
- Create an empty `src` directory, since the package requires it
- In the development shell, run `django-admin startproject panel src`

Note that while you can already do

```bash
manage migrate
manage runserver
```

the NixOS integration tests will fail, since `settings.py` needs
careful massaging to expose knobs that can be turned from our systemd
wrapper. The required changes are introduced in the next commit to make
them observable.

Noteworthy related work:

- https://github.com/sephii/django.nix

  Rather mature setup with a clean interface, uses Caddy as reverse proxy.

- https://git.dgnum.eu/mdebray/djangonix

  A work-in-progress attempt to capture more moving parts through the
  module system, in particular secrets.

- https://github.com/DavHau/django-nixos

  Out of date and somewhat simplistic, but serves as a reasonable
  example for what can be done

I chose the variant I'm intimately familiar with in order to be able to
pass on knowledge or help with maintenance. But for the future
I strongly recommend picking the good bits from the other
implementations that control complexity in static configuration parts
through Nix expressions.
2025-02-13 00:26:28 +01:00
.forgejo/workflows Enable CI for Peertube test 2024-12-17 17:15:16 +01:00
deployment Remove ISOs after provisioning 2025-01-29 15:35:49 +01:00
infra Document adding a contributor 2025-02-04 12:45:47 +01:00
keys docs: fix broken links 2025-02-10 15:05:21 +01:00
matrix Added nginx configuration for Element Web. 2025-01-08 19:31:34 +01:00
npins re-use global pins 2025-02-13 00:26:28 +01:00
panel scaffold Django web service 2025-02-13 00:26:28 +01:00
secrets docs: fix broken link 2025-02-10 15:03:49 +01:00
services Add Peertube test 2024-12-17 17:15:11 +01:00
website re-use global pins 2025-02-13 00:26:28 +01:00
.gitignore Move some gitignore at toplevel 2024-11-14 17:50:03 +01:00
flake.lock Bump other flake inputs 2025-01-31 14:39:28 +01:00
flake.nix scaffold Django web service 2025-02-13 00:26:28 +01:00
LICENSE Initial commit 2024-10-02 12:13:02 +02:00
README.md Move web server definition to infra 2025-01-29 15:34:48 +01:00

The Fediversity project

This repository contains all the code and code-related files having to do with the Fediversity project, with the notable exception of NixOps4 that is hosted on GitHub.

Content of this repository

Most of the directories in this repository have their own README going into more details as to what they are for. As an overview:

  • deployment/ contains bits and pieces having to do with auto-deployment of test VMs on a private Proxmox.

  • infra/ contains the configurations for the various VMs that are in production for the project, for instance the Git instances or the Wiki.

  • keys/ contains the public keys of the contributors to this project as well as the systems that we administrate.

  • matrix/ contains everything having to do with setting up a fully-featured Matrix server.

  • secrets/ contains the secrets that need to get injected into machine configurations.

  • services/ contains our effort to make Fediverse applications work seemlessly together in our specific setting.

  • website/ contains the framework and the content of the Fediversity website