Skip to content
This repository was archived by the owner on Feb 19, 2023. It is now read-only.

Commit 279d578

Browse files
committed
first commit
0 parents  commit 279d578

File tree

13 files changed

+132
-0
lines changed

13 files changed

+132
-0
lines changed

.env_example

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
ENV=dev
2+
3+
POSTGRES_DB=
4+
POSTGRES_USER=
5+
POSTGRES_PASSWORD=
6+
POSTGRES_HOST=db
7+
8+
UPSTREAMS=/:backend:8000

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.env
2+
3+
__pycache__

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# fastapi-backend-base

backend/.flake8

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[flake8]
2+
max-line-length=100
3+
exclude=__init__.py
4+
ignore=F403,F405,W605,W503,E203,E231

backend/Dockerfile

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
FROM python:3.8-slim-buster
2+
3+
ARG env
4+
ARG requirements_file
5+
ENV REQUIREMENTS_FILE ${requirements_file:-dev.txt}
6+
7+
RUN apt-get update &&\
8+
apt-get install --yes --no-install-recommends \
9+
gcc \
10+
musl-dev \
11+
postgresql-client \
12+
postgresql-contrib \
13+
python3-dev \
14+
python3-pip &&\
15+
apt-get clean &&\
16+
rm -rf /var/lib/apt/lists/*
17+
18+
RUN pip3 install --no-cache-dir --upgrade pip
19+
20+
ADD /requirements/base.txt /requirements/$REQUIREMENTS_FILE /tmp/
21+
RUN pip3 install --no-cache-dir -r /tmp/$REQUIREMENTS_FILE
22+
23+
ADD . /code/
24+
WORKDIR /code/

backend/requirements/base.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# api
2+
fastapi==0.65.1
3+
uvicorn==0.13.4
4+
5+
# database
6+
databases[postgresql]==0.4.3
7+
psycopg2-binary==2.8.6
8+
SQLAlchemy==1.4.15
9+
asyncpg==0.23.0

backend/requirements/dev.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
-r base.txt
2+
3+
pytest==6.2.3
4+
black==21.5b1
5+
flake8==3.9.2

backend/src/__init__.py

Whitespace-only changes.

backend/src/api/__init__.py

Whitespace-only changes.

backend/src/api/health.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from fastapi import APIRouter
2+
3+
4+
router = APIRouter()
5+
6+
7+
@router.get("/ping")
8+
async def pong():
9+
# some async operation could happen here
10+
# example: `data = await get_all_datas()`
11+
return {"ping": "pong!"}

0 commit comments

Comments
 (0)