Giter VIP home page Giter VIP logo

Comments (3)

mbnoimi avatar mbnoimi commented on September 28, 2024 1

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.

mbnoimi avatar mbnoimi commented on September 28, 2024

.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.

jonra1993 avatar jonra1993 commented on September 28, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.