Skip to content

bernieke/recipes

Repository files navigation

recipes

This is a Django application for keeping recipes and creating shopping lists which can be sent to OurGroceries.

It can be easily deployed using docker (against an existing PostgreSQL database or using an internal SQLite database) or as a full stack with PostgreSQL and nginx using docker-compose.

screenshots

recipe

index

quantity

shopping list

menu

admin

deploy using docker-compose

docker-compose up -d && \
docker exec -it recipes_recipes_1 /opt/recipes/manage.py createsuperuser

When upgrading you will need to capture the Django SECRET_KEY to avoid having all your existing sessions invalidated.

docker pull bernieke/recipes && \
DJANGO_SECRET_KEY="`docker exec recipes_recipes_1 cat /opt/recipes/secret.key`" docker-compose up -d && \
docker image prune -f

configuration

Gunicorn can be configured by adding additional environment variables to the recipes container prefixed by GUNICORN_ (so GUNICORN_WORKERS will become the setting WORKERS in gunicorn).

The nginx.conf file can be modified to change the nginx config.

Configuration of the docker image is done by following environment variables (these are already configured in docker-compose.yml):

  • GUNICORN: set to 1 to use Gunicorn instead of runserver (Django DEBUG will also be set to False)
  • SQL_ENGINE: the Django database engine to use (defaults to django.db.backends.sqlite3; set to django.db.backends.postgresql for PostgreSQL)
  • SQL_DATABASE: the database name (or path for sqlite; defaults to /var/lib/recipes/db.sqlite3 if /var/lib/recipes exists, otherwise ./db.sqlite3)
  • SQL_USER: the database user (only for PostgreSQL)
  • SQL_PASSWORD: the database password (only for PostgreSQL)
  • SQL_HOST: the database hostname (only for PostgreSQL)
  • SQL_PORT: the database port (only for PostgreSQL)

build and run development container

docker rm -vf recipes; \
docker image rm recipes; \
docker image prune -f; \
docker build . -t recipes --force-rm && \
docker create --name recipes -p 8000:8000 recipes && \
docker start recipes && \
docker logs recipes -f

run directly

Note that with DEBUG activate no ingredients will actually be sent to OurGroceries.

pip install -r requirements.txt
GUNICORN=0 DEBUG=1 ./manage.py runserver

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages