# kompass [![Build Status](https://jenkins.merten.dev/buildStatus/icon?job=gitea%2Fkompass%2Fmain)](https://jenkins.merten.dev/job/gitea/job/kompass/job/main/) This repository has the purpose to develop a webapplication that can be used by JDAV to send newsletters, manage user lists and keep material lists up to date. As this repository is also meant to be a base for exchange during development, feel free to contribute ideas in form of edits to this README, issues, landmarks, projects, wiki entries, ... # Documentation The first raw version of the documentation can be found in [. > documentation > README.md](./documentation/README.md). # Docker In the `docker` subfolder, there are `docker-compose.yaml`s for development and production use. For the development version, no further setup is needed. # Production In production, the docker setup needs an external database. The exact access credentials are configured in the respective docker.env files. # Useful stuff ## Reset database for certain app The following can be useful in case that automatic migrations throw errors. 1. delete everything in the migrations folder except for `__init__.py`. 2. drop into my MySQL console and do: `DELETE FROM django_migrations WHERE app='my_app'`` 3. while at the MySQL console, drop all of the tables associated with my_app. 4. re-run `./manage.py makemigrations my_app` - this generates a 0001_initial.py file in my migrations folder. 5. run `./manage migrate my_app` - I expect this command to re-build all my tables, but instead it says: "No migrations to apply." # Development Notes ## Information - default user as defined in step 3 [Development Setup > docker](#docker) ## Development Setup ### docker ```bash # 1. Clone repository (see above) # 1.2 Load Submodules git submodule update --init # 2. Install dependencies (docker, docker compose) # 3. Create default (super)user docker compose exec master bash -c "cd jdav_web && python3 manage.py createsuperuser" # 4. Setup development environment export GID=${GID} export UID=${UID} # 5. Start docker compose cd docker/development docker compose up -d ``` Description: - to 2.: The docker container should habe the same Userrights as the developing machine ### Known Issues - When excuting `docker compose up -d` from development [docker-compose.yaml](docker/development/docker-compose.yaml) ```bash => ERROR [master 6/7] RUN groupadd -g kasimir && useradd -g -u -m -d /app kasimir 0.2s ------ > [master 6/7] RUN groupadd -g kasimir && useradd -g -u -m -d /app kasimir: 0.141 groupadd: invalid group ID 'kasimir' ------ failed to solve: process "/bin/sh -c groupadd -g $GID $USER && useradd -g $GID -u $UID -m -d /app $USER" did not complete successfully: exit code: 3 ``` - This error gets raised if step 2 [Development Setup > docker](#docker) is skipped