s3 downloader API + startScript
This commit is contained in:
75
dovecot/start_email_api.sh
Executable file
75
dovecot/start_email_api.sh
Executable file
@@ -0,0 +1,75 @@
|
||||
#!/bin/bash
|
||||
# start_email_api.sh
|
||||
# Dieses Script startet die S3 Email Downloader REST API in einer virtuellen Python-Umgebung
|
||||
|
||||
# Verzeichnis, in dem sich das Script befindet
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
# Name der virtuellen Umgebung
|
||||
VENV_NAME="venv"
|
||||
|
||||
# Python-Executable (falls spezifische Version benötigt wird)
|
||||
PYTHON_EXEC="python3"
|
||||
|
||||
# API Port
|
||||
PORT=${EMAIL_API_PORT:-5000}
|
||||
|
||||
# Umgebungsvariablen Datei
|
||||
ENV_FILE=".env"
|
||||
|
||||
# Prüfen, ob virtuelle Umgebung existiert
|
||||
if [ ! -d "$VENV_NAME" ]; then
|
||||
echo "Virtuelle Umgebung wird erstellt..."
|
||||
$PYTHON_EXEC -m venv "$VENV_NAME"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Fehler beim Erstellen der virtuellen Umgebung!"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Virtuelle Umgebung aktivieren
|
||||
source "$VENV_NAME/bin/activate"
|
||||
|
||||
# Abhängigkeiten installieren, falls erforderlich
|
||||
echo "Abhängigkeiten werden installiert..."
|
||||
pip install --upgrade pip
|
||||
pip install boto3 flask python-dotenv gunicorn
|
||||
|
||||
# Prüfen, ob .env-Datei existiert
|
||||
if [ ! -f "$ENV_FILE" ]; then
|
||||
echo "WARNUNG: $ENV_FILE nicht gefunden!"
|
||||
echo "Bitte erstellen Sie eine .env-Datei mit den erforderlichen Konfigurationen."
|
||||
echo "Beispiel:"
|
||||
echo "API_TOKEN=ihr_geheimer_token"
|
||||
echo "MAIL_DIR=./mail"
|
||||
echo "AWS_REGION=us-east-2"
|
||||
echo "AWS_ACCESS_KEY_ID=your_access_key"
|
||||
echo "AWS_SECRET_ACCESS_KEY=your_secret_key"
|
||||
echo "DOMAIN_1=example.com"
|
||||
echo "DOMAIN_1_BUCKET=example-bucket"
|
||||
echo "DOMAIN_1_USERNAMES=user1,user2,user3"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Überprüfen, ob API_TOKEN in der .env-Datei gesetzt ist
|
||||
if ! grep -q "API_TOKEN" "$ENV_FILE"; then
|
||||
echo "WARNUNG: API_TOKEN nicht in $ENV_FILE gefunden!"
|
||||
echo "Die API wird ohne Token-Schutz gestartet. Dies ist unsicher für Produktionsumgebungen."
|
||||
read -p "Möchten Sie fortfahren? (j/n): " choice
|
||||
if [[ ! "$choice" =~ ^[jJyY]$ ]]; then
|
||||
echo "Abbruch."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Prüfen, ob das Python-Script existiert
|
||||
API_SCRIPT="s3_email_downloader_api.py"
|
||||
if [ ! -f "$API_SCRIPT" ]; then
|
||||
echo "Fehler: $API_SCRIPT nicht gefunden!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# API im Produktionsmodus mit Gunicorn starten
|
||||
echo "Starte S3 Email Downloader API auf Port $PORT..."
|
||||
exec gunicorn --bind "0.0.0.0:$PORT" --workers 2 "s3_email_downloader_api:app"
|
||||
Reference in New Issue
Block a user