Development Environment

This document assumes a windows based development environment.

Required Software

Required account access

Development System Configuration

  • create config directory

    • get examples from Lou

    • create <app>.cfg

    • create users.cfg

  • create and populate python virtual env (

    python3 -m venv venv
    venv\scripts\activate # or on linux source venv/bin/activate
    pip install -r requirements.txt
  • create and populate databases (MySQL Database Management)

    • get sql import files from Lou

Shell file permissions

If a shell file is created in a Windows development environment, it won’t have execute permission when pushed to a Linux target. See

After creating and committing the file, change its permissions in git

git update-index --chmod=+x .\app\src\

then commit as normal

Docker files

Example docker files can be found at, with the latest docker-skeleton-vx.x tag

vscode launch.json

For debugging, you’ll need the following in vscode’s launch.json

    "name": "Python: Remote Attach",
    "type": "python",
    "request": "attach",
    "port": 5678,
    "host": "localhost",
    "pathMappings": [
            "localRoot": "${workspaceFolder}/app/src",
            "remoteRoot": "/app"
    "justMyCode": false

Development vs Production via docker compose

Build and start app in development, no debugging

docker compose -f docker-compose.yml -f up --build -d

Build and start app in development, with debugging


docker compose -f docker-compose.yml -f -f docker-compose.debug.yml up --build -d

then start debugger with vscode

Build and start app in Production

docker compose -f docker-compose.yml -f up --build -d

Development Workflow



  • fork repository on GitHub

  • clone fork on development workstation

  • create a branch for a given change

  • test change in development environment

  • push change to forked repository

  • generate a pull request