Comments (3)
Works like a charm.
Thanks a lot @jonra1993 I was looking for this template since a while. Its tech stack is perfect.
from fastapi-alembic-sqlmodel-async.
.env
#############################################
# FastAPI environment variables
#############################################
PROJECT_NAME=fastapi-sqlmodel-alembic
FIRST_SUPERUSER_PASSWORD=admin
FIRST_SUPERUSER_EMAIL=[email protected]
ENCRYPT_KEY=TshgGacKPYrm35m89UqbRg46JAbUm2yRtxOCQFdqa3w=
SECRET_KEY=09d25e0sas4faa6c52gf6c818166b7a9563b93f7sdsdef6f0f4caa6cf63b88e8d3e7
BACKEND_CORS_ORIGINS=["*"]
#############################################
# PostgreSQL database environment variables
#############################################
DATABASE_HOST=database
DATABASE_USER=postgres
DATABASE_PASSWORD=postgres
DATABASE_NAME=foo
DATABASE_PORT=5432
#############################################
# Traefik variables
#############################################
EXT_ENDPOINT1=mycustomwebsite.com
LOCAL_1=localhost
LOCAL_2=127.0.0.1
#############################################
# Redis variables
#############################################
REDIS_HOST=redis_server
REDIS_HOST_PORT=6359
docker-compose.yml
version: '3.8'
services:
fastapi_server:
container_name: fastapi_server
build: ./project
restart: always
command: "sh -c 'alembic upgrade head && uvicorn app.main:app --reload --workers 1 --host 0.0.0.0 --port 8000'"
volumes:
- ./project:/code
expose:
- "8000"
env_file: ".env"
depends_on:
- database
labels:
- "traefik.enable=true"
- "traefik.http.routers.fastapi_local.entrypoints=web"
- "traefik.http.routers.fastapi_local.rule=Host(`fastapi.${LOCAL_1}`, `fastapi.${LOCAL_2}`, `fastapi.${EXT_ENDPOINT1}`)"
- traefik.http.services.fastapi_localservice.loadbalancer.server.port=8000
database:
image: bitnami/postgresql:13.3.0
restart: always
container_name: database
env_file: ".env"
user: root
volumes:
- ./db_docker:/bitnami/postgresql
ports:
- 5454:5432 # Remove this on production
expose:
- 5432
environment:
- POSTGRES_USERNAME=${DATABASE_USER}
- POSTGRES_PASSWORD=${DATABASE_PASSWORD}
- POSTGRES_DATABASE=${DATABASE_NAME}
- POSTGRES_HOST_AUTH_METHOD= "trust"
- POSTGRESQL_POSTGRES_PASSWORD= ${DATABASE_PASSWORD}
redis_server:
container_name: redis_server
image: "redis:alpine"
restart: always
expose:
- "6359"
env_file: .env
traefik-proxy:
container_name: traefik-proxy
restart: always
image: "traefik:latest"
command:
- "--providers.docker=true"
expose:
- 80
depends_on:
- fastapi_server
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- ./traefik/traefik.yml:/traefik.yml:ro
- ./traefik/.htpasswd:/.htpasswd
- "${EB_LOG_BASE_DIR:-./traefik}/traefik-proxy:/logs"
labels:
- "traefik.enable=true"
- "traefik.http.routers.dashboard.rule=Host(`traefik.${LOCAL_1}`, `traefik.${LOCAL_2}`, `traefik.${EXT_ENDPOINT1}`)"
- "traefik.http.routers.dashboard.service=api@internal"
- "traefik.http.routers.dashboard.middlewares=auth"
- "traefik.http.middlewares.auth.basicauth.usersfile=/.htpasswd"
nginx:
container_name: nginx
restart: unless-stopped
logging:
driver: none
image: "nginx:latest"
ports:
- "80:8080"
volumes:
- ./static:/code/static
- ./nginx-config-files/nginx.conf:/etc/nginx/nginx.conf
- ./nginx-config-files/app.nginx.template:/etc/nginx/templates/app.nginx.template
- "${EB_LOG_BASE_DIR:-./nginx-config-files}/nginx-proxy:/var/log/nginx"
from fastapi-alembic-sqlmodel-async.
Hello, @mbnoimi thanks for opening this issue I have updated .env.example file there was I mistake I did. Please change the REDIS_HOST_PORT
variable by REDIS_PORT
on .env file
Please let me know if it worked in your case.
from fastapi-alembic-sqlmodel-async.
Related Issues (20)
- AuthZ with supertokens HOT 6
- Migration from Sqlmodel to SQLAlchemy 2.0 HOT 3
- Function get_multi_paginated_ordered in base_crud.py HOT 2
- make run-pgadmin fails to run. HOT 1
- How to update many-to-many, and where celery_schedule_jobs table HOT 4
- celery beat is not going in correct table HOT 1
- Mypy Integration HOT 1
- New routes not reflecting in docs
- SQLAlchemy models with circular references update RecursionError
- Many to many data insert HOT 3
- Stuck in filters HOT 2
- How to pass token for protected routes in Swagger? HOT 2
- Task completed but still shows pending HOT 3
- Few issues getting set up (DB, pgadmin, fastAPI reloading, websockets) HOT 4
- Sqlmodel, pydantic update HOT 2
- Where or how to obtain a database session for a task HOT 1
- Exception "got Future <Future pending> attached to a different loop" HOT 2
- Replace Celery to Prefect HOT 1
- joined unique() question HOT 3
- Cannot connect to Redis error HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fastapi-alembic-sqlmodel-async.