Browse Source

Rajout de docker

v0.2
glorf 4 months ago
parent
commit
6456ec74f4
  1. 15
      Dockerfile
  2. 28
      README.md
  3. 13
      docker-compose.dev.yml
  4. 19
      docker-compose.yml
  5. 8
      settings.toml.example

15
Dockerfile

@ -0,0 +1,15 @@
FROM python:3.10-bullseye
RUN apt update && apt install xz-utils
WORKDIR /scribe
# Copy doesn't copy directory, only files, so we do it ourself
COPY scribe/ /scribe/scribe/
COPY requirements.txt /scribe/
RUN pip install -r requirements.txt
# COPY settings.toml.example /scribe/settings.toml
# install the correct ffmpeg version
RUN cd /tmp && wget https://github.com/yt-dlp/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-linux64-gpl.tar.xz && tar xf ffmpeg-master-latest-linux64-gpl.tar.xz && mv ffmpeg-master-latest-linux64-gpl/bin/ffmpeg /usr/bin && chmod +x /usr/bin/ffmpeg && rm -Rf /tmp/ffmpeg*
EXPOSE 8080
CMD ["/usr/local/bin/gunicorn", "scribe:create_app()", "--worker-tmp-dir", "/dev/shm", "--bind", "0.0.0.0:8080", "--access-logfile", "-", "--error-logfile", "-", "--capture-output"]

28
README.md

@ -7,6 +7,34 @@ Les fichiers audio/vidéo envoyés, ainsi que leur transcription, sont supprimé
{"total_time": 45.309041, "download_time": 0.006695, "convert_time": 0.377968, "transcribe_time": 44.924378, "audio_duration": 235.78125, "ratio": 0.19216558144466533}
```
# Installation avec Docker
## Production
Pour lancer Scribe, ainsi qu'un vosk server pour le modèle français et anglais (attention, cela prendra environ 8 go de ram), lancez simplement :
```
cp settings.toml.example settings.toml
docker-compose up -d
```
Ensuite, rendez-vous sur `http://localhost:8080` et voilà.
Pour modifier la configuration, modifiez le `settings.toml` puis relancez scribe avec `docker-compose restart scribe`.
En mode production, scribe tourne derrière gunicorn (pour le détail de la configuration, voir `Dockerfile`)
## Développement
Pour lancer un serveur flask de développement, avec juste le modèle français :
```
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up
```
Scribe reste accessible à l'adresse `http://localhost:8080`, et le mode dev de flask (avec l'auto-reload, etc) est fonctionnel.
# Installation manuelle
## Pré-requis
* Un système pouvant faire tourner docker

13
docker-compose.dev.yml

@ -0,0 +1,13 @@
services:
scribe:
environment:
- FLASK_APP=scribe
- FLASK_ENV=development
- FLASK_RUN_PORT=8080
- FLASK_RUN_HOST=0.0.0.0
command: "flask run"
volumes:
- ./scribe/:/scribe/scribe/ # Bind local code folder for easier dev
vosk-en:
image: alpine

19
docker-compose.yml

@ -0,0 +1,19 @@
volumes:
scribe_data:
name: scribe_data
services:
scribe:
image: gloorf/scribe:latest
volumes:
- ./settings.toml:/scribe/settings.toml
- scribe_data:/scribe/instance/
ports:
- 8080:8080
depends_on:
- vosk-fr
- vosk-en
vosk-fr:
image: alphacep/kaldi-fr:latest
vosk-en:
image: alphacep/kaldi-en:latest

8
settings.toml.example

@ -18,13 +18,13 @@ mail_from = "Scribe Admin <scribe@example.com>"
[MODELS]
[MODELS.FR]
uri = "ws://localhost:2700"
uri = "ws://vosk-fr:2700"
display_name = "Français"
[MODELS.EN]
uri = "ws://localhost:2701"
uri = "ws://vosk-en:2701"
display_name = "Anglais"
[TRANSLATION]
url_translation = "http://localhost:2699/translate"
url_languages = "http://localhost:2699/languages"
url_translation = "http://libretranslate:5000/translate"
url_languages = "http://libretranslate:5000/languages"

Loading…
Cancel
Save