#!/bin/bash set -e echo "==========================================================" echo "🚀 Welcome to the OpenCodeHub 1-Click Installer! 🚀" echo "==========================================================" echo "" echo "This script will deploy OpenCodeHub on your VPS or NAS." echo "It automatically configures storage, networking, and caching" echo "into a single './data' directory for easy backups." echo "" # Check for docker and docker-compose if ! command -v docker &> /dev/null; then echo "❌ Docker is not installed! Please install Docker first." exit 1 fi if ! docker compose version &> /dev/null && ! docker-compose --version &> /dev/null; then echo "❌ Docker Compose is not installed! Please install Docker Compose first." exit 1 fi COMPOSE_CMD="docker compose" if ! docker compose version &> /dev/null; then COMPOSE_CMD="docker-compose" fi echo "✅ Docker and Docker Compose found." # Create data directories echo "📁 Creating consolidated local data directories..." mkdir -p data/opencodehub mkdir -p data/postgres mkdir -p data/redis mkdir -p data/runner/work mkdir -p data/runner/cache # Generate secure secrets if .env doesn't exist if [ ! -f .env ]; then echo "🔐 Generating secure secrets for your new instance..." JWT_SECRET=$(openssl rand -base64 32) WORKFLOW_SECRET=$(openssl rand -hex 32) cat > .env <