| Type | Name | Value |
|---|---|---|
| A | @ | 199.36.158.100 |
| A | @ | 199.36.158.101 |
| CNAME | www | projectfreedom-portfolio-d8253.web.app. |
| CNAME | musaic | musaic-projectfreedom.web.app. |
| CNAME | animalsofsrilanka | animals-projectfreedom.web.app. |
| CNAME | devops-readme | devops-readme-projectfreedom.web.app. |
| CNAME | *.gygo | gygo.projectfreedom.xyz (→ Cloudflare) |
| Resource | Name/ID | Region |
|---|---|---|
| Cloud Run service | gygo | australia-southeast1 |
| Artifact Registry | gygo | australia-southeast1 |
| Secret Manager | 5 secrets (GYGO_*) | global |
| Cloud Build | auto-created | global |
| Firebase project | projectfreedom-portfolio-d8253 | global |
Portfolio, Musaic, Animals of Sri Lanka — all follow the same pattern.
firebase deploy| Site | Local path |
|---|---|
| projectfreedom.xyz | C:\Users\hesha\AI Projects\ProjectFreedom Portfolio\ |
| musaic.projectfreedom.xyz | C:\Users\hesha\AI Projects\Musiac\deploy-musaic\ |
| animalsofsrilanka.projectfreedom.xyz | C:\Users\hesha\AI Projects\Animals of Sri Lanka\deploye-animalsofsrilanka\ |
| devops-readme.projectfreedom.xyz | C:\Users\hesha\AI Projects\devops-readme\ |
Current flow is manual via Cloud Shell. CI/CD (GitHub Actions) is queued — see CI/CD tab.
git add .
git commit -m "your message"
git pushcd gygo
git pullgcloud builds submit \
--tag australia-southeast1-docker.pkg.dev/projectfreedom-portfolio/gygo/app:latest \
--project=projectfreedom-portfolio .gcloud run deploy gygo \
--image australia-southeast1-docker.pkg.dev/projectfreedom-portfolio/gygo/app:latest \
--region australia-southeast1 \
--project=projectfreedom-portfoliogcloud logging read \
"resource.type=cloud_run_revision AND resource.labels.service_name=gygo" \
--limit=30 --format="value(textPayload)" \
--project=projectfreedom-portfolioAll GYGO secrets are stored in GCP Secret Manager. Never commit secrets to GitHub.
| Secret name | What it is | Where to find/rotate |
|---|---|---|
| GYGO_DATABASE_URL | Supabase PostgreSQL connection string | Supabase dashboard → Settings → Database |
| GYGO_NEXTAUTH_SECRET | NextAuth signing secret | Generate: openssl rand -base64 32 |
| GYGO_GOOGLE_CLIENT_ID | Google OAuth client ID | GCP → APIs → Credentials → OAuth client |
| GYGO_GOOGLE_CLIENT_SECRET | Google OAuth client secret | GCP → APIs → Credentials → OAuth client |
| GYGO_ANTHROPIC_API_KEY | Anthropic API key | console.anthropic.com |
echo -n 'NEW_VALUE' | gcloud secrets versions add SECRET_NAME \
--data-file=- --project=projectfreedom-portfolioThen redeploy Cloud Run so the new version is picked up.
| Type | URI |
|---|---|
| Authorised redirect URI | https://gygo.projectfreedom.xyz/api/auth/callback/google |
| Authorised JS origin | https://gygo.projectfreedom.xyz |
Update at: GCP → APIs & Services → Credentials → your OAuth client.
GitHub Actions is queued. Once set up, every push to main auto-builds and deploys — no Cloud Shell needed.
| Stage | Time |
|---|---|
| GitHub Actions trigger | ~10 sec |
| Cloud Build (Docker image) | ~5–6 min |
| Cloud Run deploy | ~1–2 min |
| Total | ~8 min from push to live |