Skip to content

Commit

Permalink
🔧 Add script for generating env files
Browse files Browse the repository at this point in the history
  • Loading branch information
JulianKropp committed Dec 9, 2024
1 parent 2ec4cbe commit 776a22d
Show file tree
Hide file tree
Showing 8 changed files with 210 additions and 23 deletions.
3 changes: 1 addition & 2 deletions .env_example
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,4 @@ TRANSCRIPTION_CONFIRM_WORDS_MAX_WORDS="50"
TRANSCRIPTION_CONFIRM_WORDS_CONFIRM_IF_OLDER_THEN="1.0"


TRANSLATION_SERVER_URL="http://localhost:8000/translate"
TRANSLATION_SERVER_SECRET="your_secret_token"
TRANSLATION_SERVER_URL="http://localhost:8000/translate"
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
.vscode
.vscode/*
.env
.env*
*.log
*.tar.gz
*.deb
1 change: 0 additions & 1 deletion bot/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,6 @@ func LoadSettings() (*Settings, error) {
cfg.TranscriptionServer.HealthCheckPort = mustInt("TRANSCRIPTION_SERVER_HEALTH_CHECK_PORT")

cfg.TranslationServer.URL = mustString("TRANSLATION_SERVER_URL")
cfg.TranslationServer.Secret = mustString("TRANSLATION_SERVER_SECRET")


// If any errors were recorded, return them as a single error
Expand Down
6 changes: 3 additions & 3 deletions docker-compose-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ services:
context: .
dockerfile: Dockerfile-bot
env_file:
- .env
- .env-dev-docker
networks:
- bbb-translation-bot
depends_on:
Expand All @@ -24,7 +24,7 @@ services:
networks:
- bbb-translation-bot
# ports:
# - "5051:5051"
# - "50051:50051"

transcription-service:
container_name: transcription-service
Expand All @@ -37,7 +37,7 @@ services:
# ports:
# - 8042:8042
env_file:
- .env
- .env-dev-docker
volumes:
- ./.models/whisper:/app/.models
# - ./logs:/app/logs
Expand Down
10 changes: 2 additions & 8 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@ services:
dockerfile: Dockerfile
networks:
- bbb-translation-bot
# ports:
# - "5051:5051"

transcription-service:
container_name: transcription-service
Expand All @@ -34,8 +32,6 @@ services:
dockerfile: Dockerfile
networks:
- bbb-translation-bot
# ports:
# - 8042:8042
env_file:
- .env
volumes:
Expand All @@ -54,8 +50,6 @@ services:
hostname: translation-service
image: libretranslate/libretranslate:latest-cuda
restart: unless-stopped
# ports:
# - "8000:5000"
tty: true
healthcheck:
test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
Expand All @@ -77,8 +71,8 @@ services:
container_name: prometheus
hostname: prometheus
restart: always
# ports:
# - 1000:9090
ports:
- 1000:9090
volumes:
- ./config/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
networks:
Expand Down
190 changes: 190 additions & 0 deletions generate-env.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,190 @@
#!/bin/bash

# if all the files exist, then skip the creation
if [ -f ".env" ] && [ -f ".env-dev" ] && [ -f ".env-dev-docker" ]; then
exit 0
fi

# Prompt the user for the BBB server domain
read -p "Enter the domain where your BBB server is hosted (e.g., example.com): " DOMAIN

# Prompt the user for the BBB secret
read -p "Enter the BBB secret: " SECRET

# Whisper model size (tiny, tiny.en, small, small.en, base, base.en, medium, medium.en, large-v1, large-v2, large-v3)
read -p "Enter the whisper model size (tiny, tiny.en, small, small.en, base, base.en, medium, medium.en, large-v1, large-v2, large-v3): " WHISPER_MODEL_SIZE

create_file_if_not_exists() {
local file_name="$1"
local content="$2"

if [ -f "$file_name" ]; then
echo "File '$file_name' already exists. Skipping creation."
else
echo "$content" > "$file_name"
echo "File '$file_name' created."
fi
}

# Generate the .env file. This will be used by docker (docker-compose.yaml)
ENV_CONTENT=$(cat <<EOF
BBB_API_URL="https://$DOMAIN/bigbluebutton/api/"
BBB_API_SECRET="$SECRET"
BBB_API_SHA="SHA256"
BBB_CLIENT_URL="https://$DOMAIN/html5client/"
BBB_CLIENT_WS="wss://$DOMAIN/html5client/websocket"
BBB_PAD_URL="https://$DOMAIN/pad/"
BBB_PAD_WS="wss://$DOMAIN/pad/"
BBB_WEBRTC_WS="wss://$DOMAIN/bbb-webrtc-sfu"
CHANGESET_EXTERNAL="true"
CHANGESET_HOST="changeset-service"
CHANGESET_PORT="50051"
TRANSCRIPTION_SERVER_HOST="0.0.0.0"
TRANSCRIPTION_SERVER_EXTERNAL_HOST="transcription-service"
TRANSCRIPTION_SERVER_PORT_TCP="5000"
TRANSCRIPTION_SERVER_PORT_UDP="5001"
TRANSCRIPTION_SERVER_SECRET="your_secret_token"
TRANSCRIPTION_SERVER_HEALTH_CHECK_PORT="8001"
TRANSCRIPTION_SERVER_PROMETHEUS_PORT="2112"
TRANSCRIPTION_AUDIO_BUFFER_LAST_N_SECONDS="30"
TRANSCRIPTION_AUDIO_BUFFER_MIN_N_SECONDS="1"
TRANSCRIPTION_RATE_LIMITER_FLOWRATE_PER_SECOND="2.0"
TRANSCRIPTION_CONVERT_AUDIO_CONVERT_SAMPLE_RATE="16000"
TRANSCRIPTION_VAD_DEVICE="cuda"
TRANSCRIPTION_VAD_MODEL_PATH="/app/.models/vad-whisperx"
TRANSCRIPTION_VAD_MAX_CHUNK_SIZE="30.0"
TRANSCRIPTION_VAD_LAST_TIME_SPOKEN_OFFSET="3"
TRANSCRIPTION_VAD_ONSET="0.500"
TRANSCRIPTION_VAD_OFFSET="0.363"
TRANSCRIPTION_VAD_USE_AUTH_TOKEN=""
TRANSCRIPTION_VAD_MODEL_FP=""
TRANSCRIPTION_VAD_SEGMENTATION_URL="https://whisperx.s3.eu-west-2.amazonaws.com/model_weights/segmentation/0b5b3216d60a2d32fc086b47ea8c67589aaeb26b7e07fcbe620d6d0b83e209ea/pytorch_model.bin"
TRANSCRIPTION_FASTER_WHISPER_MODEL_PATH="/app/.models/faster-whisper"
TRANSCRIPTION_FASTER_WHISPER_MODEL_SIZE="$WHISPER_MODEL_SIZE"
TRANSCRIPTION_FASTER_WHISPER_TASK="transcribe"
TRANSCRIPTION_FASTER_WHISPER_COMPUTE_TYPE="float16"
TRANSCRIPTION_FASTER_WHISPER_BATCHING="True"
TRANSCRIPTION_FASTER_WHISPER_BATCH_SIZE="32"
TRANSCRIPTION_FASTER_WHISPER_DEVICE="cuda"
TRANSCRIPTION_CONFIRM_WORDS_OFFSET="0.3"
TRANSCRIPTION_CONFIRM_WORDS_MAX_WORDS="50"
TRANSCRIPTION_CONFIRM_WORDS_CONFIRM_IF_OLDER_THEN="1.0"
TRANSLATION_SERVER_URL="http://translation-service:5000/translate"
EOF
)

# Generate the dev environment file
ENV_CONTENT_DEV=$(cat <<EOF
BBB_API_URL="https://$DOMAIN/bigbluebutton/api/"
BBB_API_SECRET="$SECRET"
BBB_API_SHA="SHA256"
BBB_CLIENT_URL="https://$DOMAIN/html5client/"
BBB_CLIENT_WS="wss://$DOMAIN/html5client/websocket"
BBB_PAD_URL="https://$DOMAIN/pad/"
BBB_PAD_WS="wss://$DOMAIN/pad/"
BBB_WEBRTC_WS="wss://$DOMAIN/bbb-webrtc-sfu"
CHANGESET_EXTERNAL="true"
CHANGESET_HOST="localhost"
CHANGESET_PORT="50051"
TRANSCRIPTION_SERVER_HOST="0.0.0.0"
TRANSCRIPTION_SERVER_EXTERNAL_HOST="localhost"
TRANSCRIPTION_SERVER_PORT_TCP="5000"
TRANSCRIPTION_SERVER_PORT_UDP="5001"
TRANSCRIPTION_SERVER_SECRET="your_secret_token"
TRANSCRIPTION_SERVER_HEALTH_CHECK_PORT="8001"
TRANSCRIPTION_SERVER_PROMETHEUS_PORT="2112"
TRANSCRIPTION_AUDIO_BUFFER_LAST_N_SECONDS="30"
TRANSCRIPTION_AUDIO_BUFFER_MIN_N_SECONDS="1"
TRANSCRIPTION_RATE_LIMITER_FLOWRATE_PER_SECOND="2.0"
TRANSCRIPTION_CONVERT_AUDIO_CONVERT_SAMPLE_RATE="16000"
TRANSCRIPTION_VAD_DEVICE="cuda"
TRANSCRIPTION_VAD_MODEL_PATH="../.models/vad-whisperx"
TRANSCRIPTION_VAD_MAX_CHUNK_SIZE="30.0"
TRANSCRIPTION_VAD_LAST_TIME_SPOKEN_OFFSET="3"
TRANSCRIPTION_VAD_ONSET="0.500"
TRANSCRIPTION_VAD_OFFSET="0.363"
TRANSCRIPTION_VAD_USE_AUTH_TOKEN=""
TRANSCRIPTION_VAD_MODEL_FP=""
TRANSCRIPTION_VAD_SEGMENTATION_URL="https://whisperx.s3.eu-west-2.amazonaws.com/model_weights/segmentation/0b5b3216d60a2d32fc086b47ea8c67589aaeb26b7e07fcbe620d6d0b83e209ea/pytorch_model.bin"
TRANSCRIPTION_FASTER_WHISPER_MODEL_PATH="../.models/faster-whisper"
TRANSCRIPTION_FASTER_WHISPER_MODEL_SIZE="$WHISPER_MODEL_SIZE"
TRANSCRIPTION_FASTER_WHISPER_TASK="transcribe"
TRANSCRIPTION_FASTER_WHISPER_COMPUTE_TYPE="float16"
TRANSCRIPTION_FASTER_WHISPER_BATCHING="True"
TRANSCRIPTION_FASTER_WHISPER_BATCH_SIZE="32"
TRANSCRIPTION_FASTER_WHISPER_DEVICE="cuda"
TRANSCRIPTION_CONFIRM_WORDS_OFFSET="0.3"
TRANSCRIPTION_CONFIRM_WORDS_MAX_WORDS="50"
TRANSCRIPTION_CONFIRM_WORDS_CONFIRM_IF_OLDER_THEN="1.0"
TRANSLATION_SERVER_URL="http://localhost:8000/translate"
EOF
)

# Generate the docker dev file
ENV_CONTENT_DEV_DOCKER=$(cat <<EOF
BBB_API_URL="https://$DOMAIN/bigbluebutton/api/"
BBB_API_SECRET="$SECRET"
BBB_API_SHA="SHA256"
BBB_CLIENT_URL="https://$DOMAIN/html5client/"
BBB_CLIENT_WS="wss://$DOMAIN/html5client/websocket"
BBB_PAD_URL="https://$DOMAIN/pad/"
BBB_PAD_WS="wss://$DOMAIN/pad/"
BBB_WEBRTC_WS="wss://$DOMAIN/bbb-webrtc-sfu"
CHANGESET_EXTERNAL="true"
CHANGESET_HOST="changeset-service"
CHANGESET_PORT="50051"
TRANSCRIPTION_SERVER_HOST="0.0.0.0"
TRANSCRIPTION_SERVER_EXTERNAL_HOST="transcription-service"
TRANSCRIPTION_SERVER_PORT_TCP="5000"
TRANSCRIPTION_SERVER_PORT_UDP="5001"
TRANSCRIPTION_SERVER_SECRET="your_secret_token"
TRANSCRIPTION_SERVER_HEALTH_CHECK_PORT="8001"
TRANSCRIPTION_SERVER_PROMETHEUS_PORT="2112"
TRANSCRIPTION_AUDIO_BUFFER_LAST_N_SECONDS="30"
TRANSCRIPTION_AUDIO_BUFFER_MIN_N_SECONDS="1"
TRANSCRIPTION_RATE_LIMITER_FLOWRATE_PER_SECOND="2.0"
TRANSCRIPTION_CONVERT_AUDIO_CONVERT_SAMPLE_RATE="16000"
TRANSCRIPTION_VAD_DEVICE="cuda"
TRANSCRIPTION_VAD_MODEL_PATH="/app/.models/vad-whisperx"
TRANSCRIPTION_VAD_MAX_CHUNK_SIZE="30.0"
TRANSCRIPTION_VAD_LAST_TIME_SPOKEN_OFFSET="3"
TRANSCRIPTION_VAD_ONSET="0.500"
TRANSCRIPTION_VAD_OFFSET="0.363"
TRANSCRIPTION_VAD_USE_AUTH_TOKEN=""
TRANSCRIPTION_VAD_MODEL_FP=""
TRANSCRIPTION_VAD_SEGMENTATION_URL="https://whisperx.s3.eu-west-2.amazonaws.com/model_weights/segmentation/0b5b3216d60a2d32fc086b47ea8c67589aaeb26b7e07fcbe620d6d0b83e209ea/pytorch_model.bin"
TRANSCRIPTION_FASTER_WHISPER_MODEL_PATH="/app/.models/faster-whisper"
TRANSCRIPTION_FASTER_WHISPER_MODEL_SIZE="$WHISPER_MODEL_SIZE"
TRANSCRIPTION_FASTER_WHISPER_TASK="transcribe"
TRANSCRIPTION_FASTER_WHISPER_COMPUTE_TYPE="float16"
TRANSCRIPTION_FASTER_WHISPER_BATCHING="True"
TRANSCRIPTION_FASTER_WHISPER_BATCH_SIZE="32"
TRANSCRIPTION_FASTER_WHISPER_DEVICE="cuda"
TRANSCRIPTION_CONFIRM_WORDS_OFFSET="0.3"
TRANSCRIPTION_CONFIRM_WORDS_MAX_WORDS="50"
TRANSCRIPTION_CONFIRM_WORDS_CONFIRM_IF_OLDER_THEN="1.0"
TRANSLATION_SERVER_URL="http://translation-service:5000/translate"
EOF
)

create_file_if_not_exists ".env" "$ENV_CONTENT"
create_file_if_not_exists ".env-dev" "$ENV_CONTENT_DEV"
create_file_if_not_exists ".env-dev-docker" "$ENV_CONTENT_DEV_DOCKER"
19 changes: 12 additions & 7 deletions makefile
Original file line number Diff line number Diff line change
Expand Up @@ -40,19 +40,24 @@ build:
bash -c "source .venv/bin/activate && pip install -r requirements.txt && deactivate"; \
fi

generate-env-files:
@if [ ! -f .env -o ! -f .env-dev -o ! -f .env-dev-docker ]; then \
./generate-env.sh; \
fi


run: install stop
run: generate-env-files install stop
@docker compose up -d

run-dev: install-dev stop-dev build
@screen -dmS bot bash -c "cd bot && set -a && source ../.env && set +a && go run . 2>&1 | tee ../logs/bot.log"
@screen -dmS changeset-grpc bash -c "cd changeset-grpc && set -a && source ../.env && set +a && npm run start 2>&1 | tee ../logs/changeset-grpc.log"
@screen -dmS transcription-service bash -c "cd transcription-service && source .venv/bin/activate && set -a && source ../.env && set +a && python main.py 2>&1 | tee ../logs/transcription-service.log"
run-dev: generate-env-files install-dev stop build
@screen -dmS bot bash -c "cd bot && set -a && source ../.env-dev && set +a && go run . 2>&1 | tee ../logs/bot.log"
@screen -dmS changeset-grpc bash -c "cd changeset-grpc && set -a && source ../.env-dev && set +a && npm run start 2>&1 | tee ../logs/changeset-grpc.log"
@screen -dmS transcription-service bash -c "cd transcription-service && source .venv/bin/activate && set -a && source ../.env-dev && set +a && python main.py 2>&1 | tee ../logs/transcription-service.log"
@screen -dmS translation-service bash -c "docker compose -f docker-compose-dev.yml up translation-service 2>&1 | tee logs/translation-service.log"
@screen -dmS prometheus bash -c "docker compose -f docker-compose-dev.yml up prometheus 2>&1 | tee logs/prometheus.log"

run-dev-docker: install-dev stop-dev-docker
@docker compose -f docker-compose-dev.yml --build up -d
run-dev-docker: generate-env-files install-dev stop
@docker compose -f docker-compose-dev.yml up -d --build

stop: stop-dev stop-dev-docker
@docker compose down
Expand Down
2 changes: 1 addition & 1 deletion transcription-service

0 comments on commit 776a22d

Please sign in to comment.