Skip to content

rodrigodeleonv/door-access-mgm

Repository files navigation

Web Door Access Management

Web interface to configure Laboratory door access. This web application is made for Raspberry Pi devices. It use the GPIOs.

Features:

  • Admin interface to manage Users, RFID Tags, ...
  • API to conect with external RDIF Reader service

Diagram 1

Install

# Previous steps

## MANDATORY: generate a secret key
python -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'

## MANDATORY: create .prod.env and modify the values
cp example.env .prod.env
## Recommended edit `.prod.env` and add superuser email and password

## Optional Provisioning: just for the first time
## Provision RFID tags
## folder: ./provision/
cp provision/tags.example.json provision/tags.json
vi provision/tags.json

## Deploy
docker compose --env-file .prod.env up -d

Dev

# Docker

## Build & tag image
poetry export -f requirements.txt --output requirements-prod.txt --without-hashes
docker build -t rodmosh/door-access-mgm:0.2.0 . \
&& docker push rodmosh/door-access-mgm:0.2.0 \
&& docker tag rodmosh/door-access-mgm:0.2.0 rodmosh/door-access-mgm:latest \
&& docker push rodmosh/door-access-mgm:latest \
&& docker tag rodmosh/door-access-mgm:0.2.0 rodmosh/door-access-mgm:production \
&& docker push rodmosh/door-access-mgm:production

# PostreSQL
docker run --rm --name pg \
    -e POSTGRES_PASSWORD=postgres -e POSTGRES_USER=postgres -e POSTGRES_DB=postgres \
    -p 5432:5432 -d \
    postgres:16-alpine

# Django
docker run --privileged --rm -p 8000:8000 \
    --device /dev/gpiomem \
    -e DJANGO_SECRET_KEY='django-insecure-yck2)0pdsmgl=!&l*1t0w5!6h9)*@*&v)$%a8(07@8-+=!gvd9' \
    -e DJANGO_ALLOWED_HOSTS='*' \
    rodmosh/door-access-mgm gunicorn --pythonpath ./proj proj.wsgi --bind 0.0.0.0:8000


# Local Dev

docker compose -f compose.local.yml up -d
python proj/manage.py migrate
python proj/manage.py runserver 0.0.0.0:8000

Notes with Raspberry Pi and GPIO

Docker Access to Raspberry Pi GPIO Pins https://stackoverflow.com/questions/30059784/docker-access-to-raspberry-pi-gpio-pins

(Gnome) Keyring

Some problems can occur with poetry and gnome kerying in development machine. In that case, you should disable kerying python-poetry/poetry#8623

export PYTHON_KEYRING_BACKEND="keyring.backends.fail.Keyring"

# for permanent add this to ~/.bashrc

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published