mirror of
https://github.com/R0m1k3/LiveFlow.git
synced 2026-10-17 20:26:58 +02:00
Suppression de Caddy : l'app sert directement le HTTPS auto-signé
Un conteneur de moins. Le HTTPS reste nécessaire pour l'accès micro (getUserMedia) depuis un autre appareil : certificat auto-signé généré au démarrage pour LIVEFLOW_HOST, servi par uvicorn. https://claude.ai/code/session_01YHMp3EKzr4s6o8w1ygxuUe
This commit is contained in:
6 files changed
+59
-73
No files matched your search
+6
-1
@@ -1,11 +1,16 @@
|
||||
FROM python:3.12-slim
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends openssl \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /srv
|
||||
|
||||
COPY requirements.txt .
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
COPY . .
|
||||
RUN chmod +x entrypoint.sh
|
||||
|
||||
EXPOSE 8000
|
||||
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
|
||||
ENTRYPOINT ["./entrypoint.sh"]
|
||||
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
# Génère un certificat auto-signé (si absent ou si l'adresse a changé) puis
|
||||
# lance l'app en HTTPS. Le HTTPS est requis par les navigateurs pour accéder
|
||||
# au micro (getUserMedia) depuis un autre appareil que localhost.
|
||||
set -e
|
||||
|
||||
CERT_DIR=${CERT_DIR:-/data/certs}
|
||||
HOST=${LIVEFLOW_HOST:-localhost}
|
||||
CERT="$CERT_DIR/cert.pem"
|
||||
KEY="$CERT_DIR/key.pem"
|
||||
mkdir -p "$CERT_DIR"
|
||||
|
||||
case "$HOST" in
|
||||
*[!0-9.]*) SAN="DNS:$HOST" ;; # nom d'hôte
|
||||
*) SAN="IP:$HOST" ;; # adresse IP
|
||||
esac
|
||||
|
||||
if [ ! -f "$CERT" ] || ! openssl x509 -in "$CERT" -noout -text 2>/dev/null | grep -q "$HOST"; then
|
||||
echo "Génération du certificat auto-signé pour $HOST..."
|
||||
openssl req -x509 -newkey rsa:2048 -nodes -days 3650 \
|
||||
-keyout "$KEY" -out "$CERT" -subj "/CN=$HOST" \
|
||||
-addext "subjectAltName=$SAN,DNS:localhost,IP:127.0.0.1"
|
||||
fi
|
||||
|
||||
exec uvicorn main:app --host 0.0.0.0 --port 8000 \
|
||||
--ssl-certfile "$CERT" --ssl-keyfile "$KEY"
|
||||
Reference in new issue
Block a user