forked from Fediversity/Fediversity
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.
1 KiB
1 KiB
Fediversity Panel
The Fediversity Panel is a web service for managing Fediversity deployments with a graphical user interface, written in Django.
Development
-
To obtain all tools related to this project, enter the development environment with
nix-shell
.If you want to do that automatically on entering this directory:
-
Run
direnv allow
in the directory where repository is stored on your machineNote
This is a security boundary, and allows automatically running code from this repository on your machine.
-
Run NixOS integration tests and Django unit tests:
nix-build -A tests
-
List all available Django management commands with:
manage
-
Run the server locally
manage runserver
-
Whenever you add a field in the database schema, run:
manage makemigrations
Then before starting the server again, run:
manage migrate