Productionize EventSphere platform
This commit is contained in:
53
install-prod.sh
Normal file
53
install-prod.sh
Normal file
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
APP_DOMAIN="${APP_DOMAIN:-event.brainshare.ng}"
|
||||
API_DOMAIN="${API_DOMAIN:-api.event.brainshar.ng}"
|
||||
ACME_EMAIL="${ACME_EMAIL:-admin@brainshare.ng}"
|
||||
POSTGRES_PASSWORD="${POSTGRES_PASSWORD:-}"
|
||||
JWT_SECRET="${JWT_SECRET:-}"
|
||||
DEFAULT_SUPERADMIN_PASSWORD="${DEFAULT_SUPERADMIN_PASSWORD:-}"
|
||||
|
||||
if [[ -z "$POSTGRES_PASSWORD" ]]; then
|
||||
echo "POSTGRES_PASSWORD is required"
|
||||
exit 1
|
||||
fi
|
||||
if [[ -z "$JWT_SECRET" ]]; then
|
||||
echo "JWT_SECRET is required"
|
||||
exit 1
|
||||
fi
|
||||
if [[ -z "$DEFAULT_SUPERADMIN_PASSWORD" ]]; then
|
||||
echo "DEFAULT_SUPERADMIN_PASSWORD is required"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v docker >/dev/null 2>&1; then
|
||||
curl -fsSL https://get.docker.com | sh
|
||||
fi
|
||||
|
||||
if ! docker compose version >/dev/null 2>&1; then
|
||||
echo "Docker Compose plugin is required (docker compose)."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cat > .env.production <<EOF
|
||||
TRAEFIK_ACME_EMAIL=$ACME_EMAIL
|
||||
TRAEFIK_DOMAIN_APP=$APP_DOMAIN
|
||||
TRAEFIK_DOMAIN_API=$API_DOMAIN
|
||||
POSTGRES_PASSWORD=$POSTGRES_PASSWORD
|
||||
DATABASE_URL=postgresql://eventsphere:$POSTGRES_PASSWORD@postgres:5432/eventsphere
|
||||
REDIS_URL=redis://redis:6379
|
||||
NEXT_PUBLIC_API_URL=https://$API_DOMAIN/api/v1
|
||||
JWT_SECRET=$JWT_SECRET
|
||||
JWT_ACCESS_TTL=15m
|
||||
JWT_REFRESH_TTL=30d
|
||||
AUTO_BOOTSTRAP=1
|
||||
DEFAULT_TENANT_NAME=Brainshare Events
|
||||
DEFAULT_TENANT_SLUG=brainshare
|
||||
DEFAULT_SUPERADMIN_FULL_NAME=Super Admin
|
||||
DEFAULT_SUPERADMIN_EMAIL=superadmin@brainshare.ng
|
||||
DEFAULT_SUPERADMIN_PASSWORD=$DEFAULT_SUPERADMIN_PASSWORD
|
||||
EOF
|
||||
|
||||
docker compose -f docker-compose.prod.yml --env-file .env.production up -d --build
|
||||
docker compose -f docker-compose.prod.yml --env-file .env.production ps
|
||||
Reference in New Issue
Block a user