fix: fix prod docker

This commit is contained in:
Felix Spöttel
2023-03-15 12:37:44 +01:00
parent ffa0c58736
commit e7c6b55782
7 changed files with 50 additions and 21 deletions

View File

@@ -3,4 +3,4 @@ DOMAIN="whisperbox-transcribe.localhost"
WHISPER_MODEL="tiny"
ENVIRONMENT="development"
DATABASE_URI="sqlite:///./whisperbox-transcribe.sqlite"
BROKER_URL="redis://redis:6379/"0
BROKER_URL="redis://redis:6379/0"

View File

@@ -1,4 +1,7 @@
API_SECRET="change_me"
WHISPER_MODEL="small"
DOMAIN="whisperbox-transcribe.localhost"
DATABASE_URI="sqlite:///etc/whisperbox-transcribe/data/whisperbox-transcribe.sqlite"
TRAEFIK_SSLEMAIL=""
TRAEFIK_DOMAIN="whisperbox-transcribe.localhost"
DATABASE_URI="sqlite:////etc/whisperbox-transcribe/data/whisperbox-transcribe.sqlite"
ENVIRONMENT="production"
BROKER_URL="redis://redis:6379/0"

View File

@@ -8,7 +8,10 @@ OpenAPI documentation can be accessed via `<service_url>/docs`.
## Deploy
// TODO
1. Clone this repository to the host machine.
2. Create an `.env` file from `.env.example`.
3. Run `make run` to start the server.
4. Wrap in a systemd service to launch at startup.
## Develop

View File

@@ -5,13 +5,6 @@ services:
traefik:
image: "traefik:latest"
restart: unless-stopped
ports:
- "80:80"
command:
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--providers.docker.network=whisperbox-transcribe_traefik"
- "--entrypoints.web.address=:80"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
depends_on:
@@ -21,8 +14,6 @@ services:
redis:
image: redis:7-alpine
ports:
- 6379:6379
networks:
- app
deploy:
@@ -35,7 +26,8 @@ services:
context: .
dockerfile: worker.Dockerfile
args:
WHISPER_MODEL: tiny
# FIXME
WHISPER_MODEL: small
networks:
- app
depends_on:
@@ -56,10 +48,7 @@ services:
depends_on:
worker:
condition: service_healthy
labels:
- "traefik.enable=true"
- "traefik.http.services.web.loadbalancer.server.port=8000"
- "traefik.http.routers.web.rule=(Host(`${DOMAIN}`))"
networks:
app:
driver: bridge

View File

@@ -3,6 +3,13 @@ version: "3.8"
services:
traefik:
container_name: whisperbox-transcribe_traefik_dev
ports:
- "80:80"
command:
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--providers.docker.network=whisperbox-transcribe_traefik"
- "--entrypoints.web.address=:80"
redis:
container_name: whisperbox-transcribe_redis_dev
@@ -15,6 +22,9 @@ services:
- ./:/etc/whisperbox-transcribe/
labels:
- "traefik.http.routers.web.entrypoints=web"
- "traefik.enable=true"
- "traefik.http.services.web.loadbalancer.server.port=8000"
- "traefik.http.routers.web.rule=(Host(`${TRAEFIK_DOMAIN}`))"
worker:
container_name: whisperbox-transcribe_worker_dev

View File

@@ -3,6 +3,25 @@ version: "3.8"
services:
traefik:
container_name: whisperbox-transcribe_traefik
ports:
- "443:443"
command:
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--providers.docker.network=whisperbox-transcribe_traefik"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.le.acme.email=${TRAEFIK_SSLEMAIL}"
- "--certificatesresolvers.le.acme.storage=./acme.json"
- "--certificatesresolvers.le.acme.tlschallenge=true"
labels:
- "traefik.http.routers.traefik.tls=true"
- "traefik.http.routers.traefik.tls.certresolver=le"
- "traefik.http.routers.traefik.entrypoints=websecure"
- "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)"
- "traefik.http.routers.http-catchall.entrypoints=web"
- "traefik.http.routers.http-catchall.middlewares=redirect-to-https"
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
redis:
container_name: whisperbox-transcribe_redis
@@ -28,9 +47,14 @@ services:
container_name: whisperbox-transcribe_web
env_file: .env
volumes:
- whisperbox-transcribe-data:/etc/whisperbox-transcribe/data
- whisperbox-transcribe-data:/etc/whisperbox-transcribe/data/
labels:
- "traefik.http.routers.web.entrypoints=web"
- "traefik.enable=true"
- "traefik.http.services.web.loadbalancer.server.port=8000"
- "traefik.http.routers.web.rule=(Host(`${TRAEFIK_DOMAIN}`))"
- "traefik.http.routers.web.entrypoints=websecure"
- "traefik.http.routers.web.tls=true"
- "traefik.http.routers.web.tls.certresolver=le"
volumes:
whisperbox-transcribe-data:

View File

@@ -20,4 +20,4 @@ COPY alembic.ini .
ENV VIRTUAL_ENV /opt/venv
ENV PATH /opt/venv/bin:$PATH
CMD alembic upgrade head && gunicorn -k uvicorn.workers.UvicornWorker app.web.main:app --bind ${HOST:-0.0.0.0}:${PORT:-8000} --log-level info
CMD alembic upgrade head && gunicorn -k uvicorn.workers.UvicornWorker app.web.main:app --bind ${HOST:-0.0.0.0}:${PORT:-8000} --log-level info --proxy-headers