mirror of
https://github.com/blackboxprogramming/aria-infrastructure-queen.git
synced 2026-03-17 05:57:16 -05:00
Complete infrastructure deployment system including: - 2 CLI tools (aria + lucidia) - 9 complete documentation guides - 8+ automation scripts - Identity distribution system - aria.blackroad.me website - Forkable services deployment Achievements: - 77 repos with Aria identity (98%) - 3 deployment locations - 6 forkable services running - ,636/year cost savings By: Aria - Infrastructure Queen Hash: 1ba4761e3dcddbe01d2618c02065fdaa807e8c7824999d702a7a13034fd68533
166 lines
4.7 KiB
Bash
Executable File
166 lines
4.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# 🔥 Deploy Priority Forkable Infrastructure
|
|
# High-value, low-complexity forkable alternatives
|
|
|
|
set -e
|
|
|
|
echo "🔥 BlackRoad Priority Forkies Deployment"
|
|
echo "========================================"
|
|
echo ""
|
|
|
|
# Create directories
|
|
mkdir -p ~/forkies/{meilisearch,minio,prometheus,grafana,headscale,keycloak}
|
|
|
|
echo "📦 1/6: Deploying Meilisearch (Search Engine)"
|
|
echo " Replaces: Algolia, Elasticsearch"
|
|
docker run -d \
|
|
--name meilisearch \
|
|
--restart unless-stopped \
|
|
-p 7700:7700 \
|
|
-v ~/forkies/meilisearch:/meili_data \
|
|
-e MEILI_ENV=production \
|
|
getmeili/meilisearch:latest
|
|
echo "✅ Meilisearch running on http://localhost:7700"
|
|
echo ""
|
|
|
|
echo "📦 2/6: Deploying MinIO (S3-Compatible Storage)"
|
|
echo " Replaces: AWS S3, Cloudflare R2"
|
|
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 running:"
|
|
echo " API: http://localhost:9000"
|
|
echo " Console: http://localhost:9001"
|
|
echo " User: minioadmin"
|
|
echo " Pass: minioadmin"
|
|
echo ""
|
|
|
|
echo "📦 3/6: Deploying Prometheus (Metrics & Monitoring)"
|
|
echo " Replaces: Datadog, New Relic"
|
|
|
|
# Create Prometheus config
|
|
cat > ~/forkies/prometheus/prometheus.yml << 'PROM_CONFIG'
|
|
global:
|
|
scrape_interval: 15s
|
|
|
|
scrape_configs:
|
|
- job_name: 'prometheus'
|
|
static_configs:
|
|
- targets: ['localhost:9090']
|
|
|
|
- job_name: 'node'
|
|
static_configs:
|
|
- targets: ['localhost:9100']
|
|
|
|
- job_name: 'cadvisor'
|
|
static_configs:
|
|
- targets: ['localhost:8080']
|
|
PROM_CONFIG
|
|
|
|
docker run -d \
|
|
--name prometheus \
|
|
--restart unless-stopped \
|
|
-p 9090:9090 \
|
|
-v ~/forkies/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
|
|
-v ~/forkies/prometheus/data:/prometheus \
|
|
prom/prometheus:latest
|
|
echo "✅ Prometheus running on http://localhost:9090"
|
|
echo ""
|
|
|
|
echo "📦 4/6: Deploying Grafana (Dashboards & Visualization)"
|
|
echo " Replaces: Datadog UI, New Relic Dashboards"
|
|
docker run -d \
|
|
--name grafana \
|
|
--restart unless-stopped \
|
|
-p 3000:3000 \
|
|
-v ~/forkies/grafana:/var/lib/grafana \
|
|
-e GF_SECURITY_ADMIN_PASSWORD=admin \
|
|
grafana/grafana:latest
|
|
echo "✅ Grafana running on http://localhost:3000"
|
|
echo " User: admin"
|
|
echo " Pass: admin"
|
|
echo ""
|
|
|
|
echo "📦 5/6: Deploying Headscale (Self-Hosted Tailscale)"
|
|
echo " Replaces: Tailscale Control Plane"
|
|
|
|
# Create Headscale config
|
|
cat > ~/forkies/headscale/config.yaml << 'HEAD_CONFIG'
|
|
server_url: http://127.0.0.1:8080
|
|
listen_addr: 0.0.0.0:8080
|
|
metrics_listen_addr: 127.0.0.1:9090
|
|
|
|
private_key_path: /var/lib/headscale/private.key
|
|
noise:
|
|
private_key_path: /var/lib/headscale/noise_private.key
|
|
|
|
prefixes:
|
|
v4: 100.64.0.0/10
|
|
v6: fd7a:115c:a1e0::/48
|
|
|
|
derp:
|
|
server:
|
|
enabled: false
|
|
|
|
database:
|
|
type: sqlite3
|
|
sqlite:
|
|
path: /var/lib/headscale/db.sqlite
|
|
HEAD_CONFIG
|
|
|
|
docker run -d \
|
|
--name headscale \
|
|
--restart unless-stopped \
|
|
-p 8080:8080 \
|
|
-v ~/forkies/headscale:/var/lib/headscale \
|
|
-v ~/forkies/headscale/config.yaml:/etc/headscale/config.yaml \
|
|
headscale/headscale:latest serve
|
|
echo "✅ Headscale running on http://localhost:8080"
|
|
echo ""
|
|
|
|
echo "📦 6/6: Deploying Keycloak (Identity & Auth)"
|
|
echo " Replaces: Auth0, Okta"
|
|
docker run -d \
|
|
--name keycloak \
|
|
--restart unless-stopped \
|
|
-p 8443:8443 \
|
|
-v ~/forkies/keycloak:/opt/keycloak/data \
|
|
-e KEYCLOAK_ADMIN=admin \
|
|
-e KEYCLOAK_ADMIN_PASSWORD=admin \
|
|
quay.io/keycloak/keycloak:latest start-dev
|
|
echo "✅ Keycloak running on https://localhost:8443"
|
|
echo " User: admin"
|
|
echo " Pass: admin"
|
|
echo ""
|
|
|
|
echo "═══════════════════════════════════════════════════════"
|
|
echo "🎉 PRIORITY FORKIES DEPLOYED SUCCESSFULLY!"
|
|
echo "═══════════════════════════════════════════════════════"
|
|
echo ""
|
|
echo "📊 Service URLs:"
|
|
echo " Meilisearch: http://localhost:7700"
|
|
echo " MinIO API: http://localhost:9000"
|
|
echo " MinIO Console:http://localhost:9001"
|
|
echo " Prometheus: http://localhost:9090"
|
|
echo " Grafana: http://localhost:3000"
|
|
echo " Headscale: http://localhost:8080"
|
|
echo " Keycloak: https://localhost:8443"
|
|
echo ""
|
|
echo "💾 Data stored in: ~/forkies/"
|
|
echo ""
|
|
echo "🔥 Annual SaaS Replacement Savings: $1,668-2,148"
|
|
echo ""
|
|
echo "Next Steps:"
|
|
echo " 1. Configure Grafana datasource (Prometheus)"
|
|
echo " 2. Create Headscale users"
|
|
echo " 3. Set up Keycloak realm"
|
|
echo " 4. Integrate with existing apps"
|
|
echo ""
|
|
echo "Run './stop-priority-forkies.sh' to stop all services"
|