Fooder API in fastapi
Find a file
2024-05-20 12:29:27 +02:00
.github/workflows [actions] bump name and on 2024-05-20 12:29:27 +02:00
fooder [tests] migrate to tests without docker containers 2024-05-20 12:10:17 +02:00
.dockerignore add fiber and new pydantic 2023-07-30 20:18:42 +02:00
.gitignore initial push 2023-04-01 16:19:12 +02:00
.pre-commit-config.yaml [pre-commit] black 2023-04-17 23:35:11 +02:00
docker-compose.yml [image] build update 2023-09-03 16:04:13 +02:00
Dockerfile [image] build update 2023-09-03 16:04:13 +02:00
env.template [tests] migrate to tests without docker containers 2024-05-20 12:10:17 +02:00
Makefile [flake8] fix all the issues and include config 2024-05-17 15:23:35 +02:00
Readme.md readme bump 2023-04-15 12:55:33 +02:00
requirements.txt [barcode] add supports 2024-03-25 18:22:18 +01:00
requirements_local.txt [tests] add github hook 2024-05-20 12:13:09 +02:00
setup.cfg [flake8] fix all the issues and include config 2024-05-17 15:23:35 +02:00
setup.py [image] build update 2023-09-03 16:04:13 +02:00
test.sh [tests] preserve pytest status code 2024-05-20 12:20:30 +02:00

FOODER

Simple API for food diary application. It uses FastAPI and async postgres for faster operation.

I plan on developing a few clients for the API, for now only one is available:

Usage

Simply build docker images with:

docker-compose build

And then start them up with:

docker-compose up -d

Create .env file with configuration by copying template env.template. You have to generate secret keys! They are stored under SECRET_KEY and REFRESH_SECRET_KEY in .env file and both could be generated with openssl rand -hex 32.

To initialize database exec:

docker-compose exec api bash -c python -m fooder --create-tables

Deployment

For deployment delete:

    volumes:
      - ./fooder:/opt/fooder/fooder

and

    command: "uvicorn fooder.app:app --host 0.0.0.0 --port 8000 --reload"

lines from docker-compose.yml. This line makes app reload everytime code changes and is only recommended for development purposes.

I highly recommend using reverse proxy like nginx for HTTPS.

Documentation

When api is started using docker, by default it runs on 8000 port on local machine (it can be changed within docker-compose.yml file). Swagger documentation is available on http://0.0.0.0:8000/docs when you start the app.

Alternatively you can visit my own instance of the API docs.