# DevBox Landing Page Git repository for frontend and backend for the DevBox landing page and email collection service. ## Development Setup ### Set up development environment with Python venv We use pythons built in module, venv, to create an isolated python environment. [Python Documentation for virtual environments][0] #### Initialize the virtual environment The following command initializes the virtual environment in the `.venv/`-dirctory ```shell python3 -m venv .venv ``` Then you use one of the following commands to activate the virtual environment in your current shell session ##### Bash ```shell source .venv/bin/activate ``` ##### Fish ```shell source .venv/bin/activate.fish ``` ##### Install python modules Now you can install the python modules for this project with the following command ```shell pip3 install -r requirements.txt ``` ##### Add a new module to requirements.txt Run the following commands to install a new module and add it to the `requirements.txt`-file. In this example we install the `SQLAlchemy`-module. ```shell pip3 install SQLAlchemy python3 -m pip freeze > requirements.txt ``` ##### Upgrade pip3 modules ###### List outdated modules ```shell pip3 list --outdated ``` ###### Upgrade all outdated modules ```shell pip3 list -o | cut -f1 -d' ' | tr " " "\n" | awk '{if(NR>=3)print}' | cut -d' ' -f1 | xargs -n1 pip3 install -U ``` ###### Save changes to requirements.txt ```shell python3 -m pip freeze > requirements.txt ``` ### Building and running with Docker or Podman #### Docker ```shell docker build -t devbox-back:latest . docker run --rm -it -p "8000:8000" -v './db:/usr/src/app/db' devbox-back:latest ``` #### Podman ```shell podman build -t devbox-back:latest . podman run --rm -it -p "8000:8000" -v './db:/usr/src/app/db' devbox-back:latest ``` [0]: https://docs.python.org/3/library/venv.html