#!/bin/bash # Script d'installation OpenCare sur VPS Ubuntu/Debian # Usage : sudo bash setup_vps.sh set -e APP_DIR=/opt/opencare APP_USER=www-data REPO=https://gitea.open-squared.tech/admin/opencare.git echo "=== Installation OpenCare ===" # 1. Dépendances système apt-get update -qq apt-get install -y python3 python3-pip python3-venv nginx git # 2. Cloner / mettre à jour le repo if [ -d "$APP_DIR/.git" ]; then echo "--- Mise à jour du code ---" cd "$APP_DIR" && git pull else echo "--- Clonage du repo ---" git clone "$REPO" "$APP_DIR" fi cd "$APP_DIR" # 3. Environnement virtuel Python if [ ! -d "$APP_DIR/venv" ]; then python3 -m venv venv fi venv/bin/pip install -q --upgrade pip venv/bin/pip install -q -r requirements.txt # 4. Fichier .env (créer si absent) if [ ! -f "$APP_DIR/.env" ]; then cp .env.example .env SECRET=$(python3 -c "import secrets; print(secrets.token_hex(32))") sed -i "s/change-me-with-a-strong-random-key/$SECRET/" .env echo "ATTENTION : .env créé avec une clé secrète aléatoire." echo "Editez /opt/opencare/.env pour configurer DATABASE_URL et autres." fi # 5. Dossier instance (SQLite) mkdir -p "$APP_DIR/instance" chown -R "$APP_USER:$APP_USER" "$APP_DIR" # 6. Service systemd cp deploy/opencare.service /etc/systemd/system/opencare.service systemctl daemon-reload systemctl enable opencare systemctl restart opencare # 7. Nginx cp deploy/nginx.conf /etc/nginx/sites-available/opencare ln -sf /etc/nginx/sites-available/opencare /etc/nginx/sites-enabled/opencare rm -f /etc/nginx/sites-enabled/default nginx -t && systemctl reload nginx echo "" echo "=== Déploiement terminé ===" echo "L'application tourne sur http://$(hostname -I | awk '{print $1}')" echo "Consultez les logs : journalctl -u opencare -f"