2.4 KiB
Development
git clone https://github.com/gr4yj3d1/toolshed.git
or
git clone https://git.neulandlabor.de/j3d1/toolshed.git
Native
To a certain extent, the frontend and backend can be developed independently. The frontend is a Vue.js project and the backend is a DRF (Django-Rest-Framework) project. If you want to develop the frontend, you can do so without the backend and vice versa. However, especially for the frontend, it is recommended to use the backend as well, as the frontend does not have a lot of 'offline' functionality. If you want to run the fullstack application, it is recommended to use the docker-compose method.
Frontend
install node.js
and npm
on Debian* for example: sudo apt install npm
cd toolshed/frontend
npm install
npm run dev
Backend
Install python3
, pip
and virtualenv
on Debian* for example: sudo apt install python3 python3-pip python3-venv
Prepare backend environment
cd toolshed/backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Run the test suite:
python manage.py test
optionally with coverage:
coverage run manage.py test
coverage report
Start the backend in development mode:
python manage.py migrate
cp .env.dist .env
echo "DEBUG = True" >> .env
python manage.py runserver 0.0.0.0:8000
provides the api docs at http://localhost:8000/docs/
Docs (Wiki)
Install mkdocs
on Debian* for example: sudo apt install mkdocs
Start the docs server:
cd toolshed/docs
mkdocs serve -a 0.0.0.0:8080
Docker
Fullstack
Install docker
and docker-compose
on Debian* for example: sudo apt install docker.io docker-compose
Start the fullstack application:
docker-compose -f deploy/docker-compose.override.yml up --build
This will start an instance of the frontend and wiki, a limited DoH (DNS over HTTPS) server and two instances of the backend.
The two backend instances are set up to use the domains a.localhost
and b.localhost
, the local DoH
server is used to direct the frontend to the correct backend instance.
The frontend is configured to act as if it was served from the domain a.localhost
.
Access the frontend at http://localhost:8080/
, backend at http://localhost:8080/api/
, api docs
at http://localhost:8080/docs/
and the wiki at http://localhost:8080/wiki/
.