Appearance
Documentation Deployment Setup Checklist
Quick checklist for setting up automated documentation deployment to Firebase Hosting.
Prerequisites
- [ ] Firebase CLI installed (
npm install -g firebase-tools) - [ ] Firebase project created
- [ ] Firebase login complete (
firebase login) - [ ] GitHub repository with Actions enabled
Firebase Setup
1. Create Hosting Sites
bash
# Create main app site
firebase hosting:sites:create lgs-ledger-app
# Create docs site
firebase hosting:sites:create lgs-ledger-docs✅ Record your site IDs for the next steps.
2. Configure .firebaserc
bash
# Copy template
cp .firebaserc.example .firebaserc
# Edit with your actual IDs
# Replace:
# - your-firebase-project-id → YOUR_PROJECT_ID
# - your-main-app-site-id → lgs-ledger-app (or your choice)
# - your-docs-site-id → lgs-ledger-docs (or your choice)3. Apply Hosting Targets
bash
firebase target:apply hosting app lgs-ledger-app
firebase target:apply hosting docs lgs-ledger-docs4. Verify Configuration
bash
# List hosting sites
firebase hosting:sites:list
# Check targets
firebase target:listGitHub Actions Setup
1. Generate Firebase Service Account
Option A: Automatic (Recommended)
bash
firebase init hosting:githubFollow prompts to:
- Select your GitHub repository
- Generate service account
- Add secrets to GitHub automatically
Option B: Manual
- Go to Firebase Console
- Select your project
- Project Settings → Service Accounts
- Click Generate New Private Key
- Download the JSON file
- Copy entire JSON content
2. Add GitHub Secrets
Go to: GitHub Repository → Settings → Secrets and variables → Actions
Add these secrets:
| Secret Name | Value | Where to Get |
|---|---|---|
FIREBASE_SERVICE_ACCOUNT | Full JSON from service account | Firebase Console → Project Settings → Service Accounts |
FIREBASE_PROJECT_ID | Your project ID (e.g., lgs-ledger-prod) | Firebase Console → Project Settings |
FIREBASE_APP_SITE_ID | Main app site ID (e.g., lgs-ledger-app) | Run firebase hosting:sites:list |
FIREBASE_DOCS_SITE_ID | Docs site ID (e.g., lgs-ledger-docs) | Run firebase hosting:sites:list |
To add a secret:
- Click New repository secret
- Name: Enter secret name
- Value: Paste the value
- Click Add secret
3. Verify Workflow File
Check that .github/workflows/deploy-docs.yml exists:
bash
ls -la .github/workflows/deploy-docs.ymlLocal Testing
Before pushing, test locally:
1. Install Docs Dependencies
bash
npm run docs:install
# Or: cd docs && npm install2. Build Docs Locally
bash
npm run docs:buildExpected output: docs/.vitepress/dist/
3. Preview Build
bash
npm run docs:previewVisit: http://localhost:4173
4. Test Manual Deployment
bash
# Deploy to Firebase (production)
npm run deploy:docsDeployment Verification
1. Push to Main Branch
bash
git add .
git commit -m "Add docs deployment workflow"
git push origin main2. Monitor GitHub Actions
- Go to Actions tab in GitHub
- Find "Deploy Documentation" workflow
- Watch the deployment progress
- Check for green checkmark ✅
3. Verify Live Site
Default Firebase URL:
- App:
https://lgs-ledger-app.web.app - Docs:
https://lgs-ledger-docs.web.app
Visit your docs site and verify:
- [ ] Site loads correctly
- [ ] Neobrutalism theme is applied
- [ ] All pages are accessible
- [ ] Navigation works
- [ ] Search works
Custom Domain Setup
1. Add Custom Domain in Firebase
For Docs Site:
- Firebase Console → Hosting
- Select docs site
- Click Add custom domain
- Enter:
docs.lgsforge.com - Firebase provides DNS configuration
2. Configure DNS
Add DNS records with your domain provider:
Option A: A Records (Recommended)
Type: A
Name: docs
Value: 151.101.1.195 (or IPs from Firebase)
Value: 151.101.65.195Option B: CNAME
Type: CNAME
Name: docs
Value: lgs-ledger-docs.web.app3. Wait for SSL Certificate
- DNS Propagation: 15 minutes - 24 hours
- SSL Certificate: Automatic, shown in Firebase Console
- Status: Check Firebase Console → Hosting → Domain status
4. Verify Custom Domain
bash
# Check DNS propagation
nslookup docs.lgsforge.com
# Test HTTPS
curl -I https://docs.lgsforge.comExpected: HTTP/2 200 with SSL certificate
Testing the Workflow
Manual Trigger Test
- Go to Actions → Deploy Documentation
- Click Run workflow
- Choose preview environment
- Click Run workflow
- Check Firebase Console for preview URL
Automatic Trigger Test
- Edit a file in
docs/(e.g., add a comment) - Commit and push to
main - Workflow should trigger automatically
- Check Actions tab for progress
Troubleshooting Checklist
If deployment fails, check:
- [ ] Firebase service account JSON is valid
- [ ]
FIREBASE_SERVICE_ACCOUNTsecret exists in GitHub - [ ]
FIREBASE_PROJECT_IDmatches your actual project - [ ] Hosting sites exist:
firebase hosting:sites:list - [ ] Targets applied:
firebase target:list - [ ]
.firebaserchas correct IDs - [ ]
docs/package-lock.jsonexists and is committed - [ ] GitHub Actions is enabled for repository
Success Criteria
Deployment is successful when:
✅ GitHub Action completes with green checkmark ✅ Firebase Console shows new release ✅ https://lgs-ledger-docs.web.app shows updated content ✅ https://docs.lgsforge.com resolves (if custom domain configured) ✅ SSL certificate is active (HTTPS works) ✅ All documentation pages load correctly ✅ Neobrutalism theme is applied
Maintenance
Regular Tasks
After docs changes:
- Push to
main→ automatic deployment - No manual intervention needed
Updating dependencies:
bash
cd docs
npm update
npm run build # Test build
git add package-lock.json
git commit -m "Update docs dependencies"
git pushMonitoring:
- Check GitHub Actions tab for deployment status
- Monitor Firebase Console for usage/analytics
- Review deployment logs if issues occur
Quick Reference
Common Commands
bash
# Local development
npm run docs:dev # Dev server
npm run docs:build # Production build
npm run docs:preview # Preview build
# Deployment
npm run deploy:docs # Deploy docs only
npm run deploy:all # Deploy app + docs
# Firebase CLI
firebase hosting:sites:list # List sites
firebase target:list # List targets
firebase hosting:channel:list # List deploymentsImportant Files
.firebaserc # Firebase project config
firebase.json # Hosting configuration
.github/workflows/deploy-docs.yml # GitHub Action workflow
docs/.vitepress/config.js # VitePress config
docs/.vitepress/theme/custom.css # Neobrutalism themeURLs
- Firebase Console: https://console.firebase.google.com/
- GitHub Actions: https://github.com/YOUR-USERNAME/lgs-ledger/actions
- Docs Site: https://docs.lgsforge.com
- Firebase Docs Site: https://lgs-ledger-docs.web.app
Need Help?
- Check
FIREBASE_DOCS_DEPLOYMENT.mdfor detailed instructions - Check
.github/workflows/README.mdfor workflow documentation - Review GitHub Actions logs for errors
- Consult Firebase Hosting documentation
Last Updated: January 2026
