From 9153239c79935b2d935aceaee1fd51e145f5f4da Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Tue, 18 Jul 2023 20:21:55 +0200 Subject: [PATCH] Extend README --- README.md | 64 +++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 50 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 4574a13..2515946 100644 --- a/README.md +++ b/README.md @@ -14,26 +14,62 @@ inventory over my various servers and other network equipment. ## Development Setup -There are two ways to work on this project. -For the first one you will need to install the Nix package manager[^1]. -Afterwards you can enter the development environment with `nix develop`. +There is currently only one supported way to work with this repository. You +will need a Linux system (WSL might work) onto wich you install the Nix package +manager with Flakes enabled[^1] and direnv[^3]. Afterwards you can enter the development +environment with `direnv allow`. -For the other way you have to install poetry[^2] and then run `poetry shell` to -enter the virtual environment. +[^1]: https://nixos.org/download.html +[^3]: https://direnv.net/ + +After you've entered the development environment with either method you can +start the development server with `dev run`. This will start a PostgreSQL +database running and start the Django development server. + +_It will prompt you for your sudo password because it opens port 8000 in your +firewall. This is because I sometimes develope from my iPad on my notebook and +with this tweak I can access the dev server running on my notebook._ + +You can then access the project in the browser under the FQDN of your +computer. E.g. `http://mypc.domain.local:8000`. + +In case you want a fresh start or remove the project you can just remove the +`.direnv` directory at the root of the project. All the data of the PostgreSQL +database is stored there together with the symlinks to the Nix store. + +In case you want to tweak something these are the applications use do build the +development environment: + +- Nix package manager +- direnv +- overmind[^4] + +The `dev` command is a simple BASH script called `dev.sh` at the root of the +project. + +[^4]: https://github.com/DarthSim/overmind + +Run the `dev` command without an argument to see all options. + +> Why aren't you using Docker/containers for development. + +_I think containers have their uses but developing with them is in my opinion a +pain in the ass. You just can't easily interact with the tools inside the +container and you have to hack around to get your editor working with it. +In addition they aren't fully reproducable. Nix solves all of these +problems. Overmind then comes into play to orchestrate the few tasks that are +required to get a development environment up an running._ + +**Manual way** + +The manual way you have to install poetry[^2] and then run `poetry shell` to +enter the virtual environment. You will then need a local PostgreSQL server or +modify the settings so that you can use your prefered database. Please note that I will only use and test the first method. -[^1]: https://nixos.org/download.html [^2]: https://python-poetry.org -After you've entered the development environment with either method you can -start the server. With the nix version you can start it with `dev run`. With -poetry `./dev.sh run`. This will start a PostgreSQL database running inside a -docker container and start the Django development server. You can then access -it in the browser under the FQDN of your computer. E.g. -`http://mypc.domain.local:8000`. Run the `dev` command without an argument to -see all options. - ## Environment Variables To customise the application in the Docker container you can use environment