#!/bin/bash # đŸŽĩ ARIA - Deploy Forkables PROPERLY with all configs echo "đŸŽĩ ARIA - Complete Forkable Infrastructure Deployment" echo "=====================================================" echo "" mkdir -p ~/forkies/{meilisearch,minio,prometheus,grafana,headscale,keycloak} # 1. Meilisearch with master key echo "đŸ“Ļ 1/6: Deploying Meilisearch (with master key)..." docker rm -f meilisearch 2>/dev/null docker run -d \ --name meilisearch \ --restart unless-stopped \ -p 7700:7700 \ -v ~/forkies/meilisearch:/meili_data \ -e MEILI_MASTER_KEY=aWQBU5-mCrXbWRC8_o9zUC_rZEMyeErjHDGJADhgZKg \ -e MEILI_ENV=production \ getmeili/meilisearch:latest echo "✅ Meilisearch: http://localhost:7700" echo " Master Key: aWQBU5-mCrXbWRC8_o9zUC_rZEMyeErjHDGJADhgZKg" echo "" # 2. MinIO (already running, just verify) echo "đŸ“Ļ 2/6: Verifying MinIO..." if docker ps | grep -q minio; then echo "✅ MinIO: Already running" else docker run -d \ --name minio \ --restart unless-stopped \ -p 9000:9000 -p 9001:9001 \ -v ~/forkies/minio:/data \ -e MINIO_ROOT_USER=minioadmin \ -e MINIO_ROOT_PASSWORD=minioadmin \ minio/minio server /data --console-address ":9001" echo "✅ MinIO: http://localhost:9000 (API) | http://localhost:9001 (Console)" fi echo "" # 3. Prometheus (skip if port 9090 in use) echo "đŸ“Ļ 3/6: Deploying Prometheus..." docker rm -f prometheus 2>/dev/null # Create simple prometheus config cat > /tmp/prometheus.yml << 'PROM' global: scrape_interval: 15s scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] PROM docker run -d \ --name prometheus \ --restart unless-stopped \ -p 9091:9090 \ -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus:latest && echo "✅ Prometheus: http://localhost:9091" || echo "âš ī¸ Prometheus: Port conflict, skipped" echo "" # 4. Grafana echo "đŸ“Ļ 4/6: Deploying Grafana..." docker rm -f grafana 2>/dev/null docker run -d \ --name grafana \ --restart unless-stopped \ -p 3000:3000 \ -v ~/forkies/grafana:/var/lib/grafana \ grafana/grafana:latest && echo "✅ Grafana: http://localhost:3000 (admin/admin)" || echo "âš ī¸ Grafana: Failed" echo "" # 5. Keycloak (needs database) echo "đŸ“Ļ 5/6: Checking Keycloak..." if docker ps | grep -q keycloak-db; then echo "✅ Keycloak DB: Already running" echo "â„šī¸ Keycloak server: Would need separate deployment" else echo "â„šī¸ Keycloak: DB exists, server not deployed yet" fi echo "" # 6. Headscale - let it be for now (needs complex config) echo "đŸ“Ļ 6/6: Headscale status..." if docker ps | grep -q headscale-ui; then echo "✅ Headscale UI: http://localhost:8081" echo "âš ī¸ Headscale server: Needs config file fix" fi echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "đŸŽĩ FORKABLE SERVICES STATUS" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" docker ps | grep -E "(meilisearch|minio|prometheus|grafana|headscale|keycloak)" | awk '{print $NF, "\t", $5}' echo "" echo "✅ Deployment complete!" echo "💰 Monthly savings: ~$199 (when all services replace SaaS)"