MIGRATION COMMANDS CHEAT SHEET ============================ STEP 0: EDIT LOCAL SYNC GLOBALLY The first directive to to edit locally here, keep git updated fequently, then grab the updates files to our VPS server and then built and restart. ------------ STEP 1: FLUTTER WEB DEPLOY (If applicable) ------------------------------------------ Ensure your flutter web build is updated and copied to /var/www/sojorn flutter build web --release scp -r build/web/* user@server:/var/www/sojorn/ STEP 2: NGINX CONFIGURATION --------------------------- # 1. SSH into your VPS ssh ... # 2. Copy the new configs (upload them first or copy-paste) # Assuming you uploaded sojorn_net.conf and legacy_redirect.conf to /tmp/ sudo cp /tmp/sojorn_net.conf /etc/nginx/sites-available/sojorn_net.conf sudo cp /tmp/legacy_redirect.conf /etc/nginx/sites-available/legacy_redirect.conf # 3. Enable new sites sudo ln -s /etc/nginx/sites-available/sojorn_net.conf /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/legacy_redirect.conf /etc/nginx/sites-enabled/ # 4. Disable old site (to avoid conflicts with the new legacy_redirect which claims the same domains) # Check existing enabled sites ls -l /etc/nginx/sites-enabled/ # Remove the old link (e.g., sojorn.conf or default) sudo rm /etc/nginx/sites-enabled/sojorn.conf # (Don't delete the actual file in sites-available, just the symlink) # 5. Test Configuration (This might fail on SSL paths if legacy certs are missing, but they should be there) sudo nginx -t # 6. Reload Nginx (Users will briefly see unencrypted or default page for new domain until Certbot runs) sudo systemctl reload nginx STEP 3: SSL CERTIFICATES (CERTBOT) ---------------------------------- # Generate fresh certs for the NEW domain. # --nginx plugin will automatically edit sojorn_net.conf to add SSL lines. sudo certbot --nginx -d sojorn.net -d www.sojorn.net -d api.sojorn.net # Follow the prompts. When asked about redirecting HTTP to HTTPS, choose "2: Redirect". STEP 4: BACKEND & ENV --------------------- # Update your .env file on the server nano /opt/sojorn/.env # CHANGE: # CORS_ORIGINS=https://sojorn.net,https://api.sojorn.net,https://www.sojorn.net # R2_PUBLIC_BASE_URL=https://img.sojorn.net # Restart the backend service sudo systemctl restart sojorn-api STEP 5: VERIFICATION -------------------- 1. Visit https://sojorn.net -> Should show app. 2. Visit https://sojorn.net -> Should redirect to https://sojorn.net. 3. Check API: https://api.sojorn.net/api/v1/health (or similar). STEP 6: EXTERNAL SERVICES CHECKLIST ----------------------------------- These items fall outside the codebase but are CRITICAL for the migration: 1. CLOUDFLARE R2 (CORS) - Go to Cloudflare Dashboard > R2 > [Your Bucket] > Settings > CORS Policy. - Update allowed origins to include: [ "https://sojorn.net", "https://www.sojorn.net", "http://localhost:*" ] - If you don't do this, web image uploads will fail. 2. FIREBASE CONSOLE (Auth & Messaging) - Go to Firebase Console > Authentication > Settings > Authorized Domains. - ADD: sojorn.net - ADD: api.sojorn.net - You can remove gosojorn.com later. 3. GOOGLE CLOUD CONSOLE (If using Google Sign-In) - APIs & Services > Credentials > OAuth 2.0 Client IDs. - Add "https://sojorn.net" to Authorized JavaScript origins. - Add "https://sojorn.net/auth.html" (or callback URI) to Authorized redirect URIs. 4. APPLE DEVELOPER PORTAL (If using Sign in with Apple) - Certificates, Identifiers & Profiles > Service IDs. - Update the "Domains and Subdomains" list for your Service ID to include sojorn.net.