feat: Initial commit for OnEver Drive centralized backup system with Windows PyQt6 agent and Proxmox LXC deployment
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
# ==============================================================================
|
||||
# OnEver Drive — Proxmox VE LXC 1: Backend API Provisioning Script
|
||||
# Target: Debian 12 Bookworm LXC (CT 100)
|
||||
# ==============================================================================
|
||||
|
||||
set -e
|
||||
|
||||
echo "=== [1/6] Actualizando paquetes base del sistema Debian 12 ==="
|
||||
apt-get update && apt-get upgrade -y
|
||||
apt-get install -y curl git ufw python3 python3-pip python3-venv postgresql postgresql-contrib nginx
|
||||
|
||||
echo "=== [2/6] Configurando base de datos PostgreSQL ==="
|
||||
systemctl start postgresql
|
||||
systemctl enable postgresql
|
||||
|
||||
sudo -u postgres psql -c "CREATE DATABASE onever_drive;" || true
|
||||
sudo -u postgres psql -c "CREATE USER onever_user WITH ENCRYPTED PASSWORD 'OneverSecurePass2026!';" || true
|
||||
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE onever_drive TO onever_user;" || true
|
||||
sudo -u postgres psql -d onever_drive -c "GRANT ALL ON SCHEMA public TO onever_user;" || true
|
||||
|
||||
echo "=== [3/6] Preparando directorios de aplicación y almacenamiento ==="
|
||||
mkdir -p /opt/onever_drive
|
||||
mkdir -p /storage/backups/clients
|
||||
mkdir -p /storage/temp
|
||||
chown -R www-data:www-data /storage
|
||||
|
||||
echo "=== [4/6] Configurando entorno virtual de Python ==="
|
||||
python3 -m venv /opt/onever_drive/venv
|
||||
/opt/onever_drive/venv/pip install --upgrade pip
|
||||
|
||||
# Copiar archivos de backend (asumiendo clonado en /opt/onever_drive)
|
||||
if [ -f "/opt/onever_drive/backend/requirements.txt" ]; then
|
||||
/opt/onever_drive/venv/pip install -r /opt/onever_drive/backend/requirements.txt
|
||||
fi
|
||||
|
||||
echo "=== [5/6] Creando servicio systemd para OnEver Drive Backend ==="
|
||||
cat <<EOF > /etc/systemd/system/onever-backend.service
|
||||
[Unit]
|
||||
Description=OnEver Drive Central API Backend
|
||||
After=network.target postgresql.service
|
||||
|
||||
[Service]
|
||||
User=root
|
||||
WorkingDirectory=/opt/onever_drive/backend
|
||||
Environment="DATABASE_URL=postgresql+asyncpg://onever_user:OneverSecurePass2026!@127.0.0.1:5432/onever_drive"
|
||||
Environment="STORAGE_ROOT=/storage/backups"
|
||||
Environment="STORAGE_TEMP_ROOT=/storage/temp"
|
||||
Environment="SECRET_KEY=$(openssl rand -hex 32)"
|
||||
Environment="ENVIRONMENT=production"
|
||||
ExecStart=/opt/onever_drive/venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 4
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
systemctl daemon-reload
|
||||
systemctl enable onever-backend.service
|
||||
systemctl start onever-backend.service
|
||||
|
||||
echo "=== [6/6] Provisionamiento completado exitosamente ==="
|
||||
echo "El backend de OnEver Drive está activo en http://127.0.0.1:8000"
|
||||
Reference in New Issue
Block a user