mirror of
https://github.com/bellingcat/whisperbox-transcribe.git
synced 2026-06-12 13:38:34 +03:00
fix: fix prod docker
This commit is contained in:
2
.env.dev
2
.env.dev
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user