Files
hobokenchicken e8d9b1fd42 feat: add CoopCredits Solana media rewards ecosystem
Add complete  token system with Plex/Tautulli/Overseer integration:
- Anchor program for SPL token mint/burn/transfer
- Express backend with OAuth, webhooks, Solana integration
- Next.js frontend with dashboard, admin panel, wallet management
- Docker deployment for 172.20.1.0/24 infrastructure
- Production configs with SSL, Nginx, health monitoring

Tautulli webhooks auto-mint  on watch events.
Overseer integration burns  for content requests.
2026-04-14 11:09:50 -04:00

133 lines
3.1 KiB
Bash
Executable File

#!/bin/bash
# CoopCredits Deployment Script
# Usage: ./deploy.sh [environment]
set -e
ENVIRONMENT=${1:-production}
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
echo "🚀 CoopCredits Deployment"
echo "========================"
echo "Environment: $ENVIRONMENT"
echo ""
# Check prerequisites
check_prerequisites() {
echo "Checking prerequisites..."
command -v docker >/dev/null 2>&1 || { echo "❌ Docker is required but not installed. Aborting." >&2; exit 1; }
command -v docker-compose >/dev/null 2>&1 || { echo "❌ Docker Compose is required but not installed. Aborting." >&2; exit 1; }
echo "✅ Prerequisites met"
}
# Load environment variables
load_env() {
if [ -f "$PROJECT_DIR/.env" ]; then
echo "Loading environment variables..."
set -a
source "$PROJECT_DIR/.env"
set +a
else
echo "⚠️ .env file not found. Using default values."
fi
}
# Build and deploy
build_and_deploy() {
echo ""
echo "Building and deploying..."
cd "$PROJECT_DIR"
# Pull latest images
docker-compose pull
# Build services
docker-compose build --no-cache
# Start services
docker-compose up -d
# Wait for database
echo "Waiting for database..."
sleep 10
# Run migrations
echo "Running database migrations..."
docker-compose exec -T backend npx prisma migrate deploy
echo "✅ Deployment complete!"
}
# Setup SSL certificates
setup_ssl() {
echo ""
echo "Setting up SSL certificates..."
# Check if certificates exist
if [ ! -f "$PROJECT_DIR/docker/nginx/ssl/cert.pem" ]; then
echo "⚠️ SSL certificates not found at docker/nginx/ssl/"
echo "Please place your certificates:"
echo " - cert.pem (certificate)"
echo " - key.pem (private key)"
echo ""
read -p "Continue without SSL? (y/n) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
fi
fi
}
# Health check
health_check() {
echo ""
echo "Running health checks..."
# Check if services are running
if docker-compose ps | grep -q "Up"; then
echo "✅ Services are running"
else
echo "❌ Some services failed to start"
docker-compose ps
exit 1
fi
# Test API endpoint
if curl -sf http://localhost:3001/health > /dev/null; then
echo "✅ Backend is responding"
else
echo "❌ Backend is not responding"
exit 1
fi
echo "✅ Health checks passed"
}
# Main deployment flow
main() {
check_prerequisites
load_env
setup_ssl
build_and_deploy
health_check
echo ""
echo "🎉 CoopCredits has been deployed!"
echo ""
echo "Access your application:"
echo " - Website: https://coop.hobokenchicken.com"
echo " - API: https://coop.hobokenchicken.com/api"
echo ""
echo "Useful commands:"
echo " - View logs: docker-compose logs -f"
echo " - Stop: docker-compose down"
echo " - Restart: docker-compose restart"
}
main "$@"