4.0 KiB
4.0 KiB
Marketing Development Environment with HMR
Status: ✅ ACTIVE
The marketing site now has a development environment with Hot Module Replacement (HMR) - just like the app dev environment!
🚀 Quick Start
Current Setup
- Dev Server:
igny8_marketing_dev(Vite with HMR) - Access:
https://igny8.com(routed through Caddy) - Direct Access:
http://localhost:8023 - Port: 5174 (internal), 8023 (external)
How It Works
- Volume Mount:
/data/app/igny8/frontend→/app(live file watching) - HMR Enabled: Changes to files/images update in real-time
- No Rebuild Needed: Just edit files and see changes instantly!
📝 Development Workflow
Making Changes
- Edit files in
/data/app/igny8/frontend/src/marketing/ - Edit images in
/data/app/igny8/frontend/public/marketing/images/ - See changes instantly - HMR updates the browser automatically!
No Need To:
- ❌ Run
npm run build:marketing - ❌ Rebuild Docker image
- ❌ Restart container
- ❌ Copy files manually
Just:
- ✅ Edit files
- ✅ Save
- ✅ See changes in browser (HMR handles the rest!)
🔄 Switching Between Dev and Production
Development Mode (Current)
Caddyfile routes to: igny8_marketing_dev:5174
igny8.com {
reverse_proxy igny8_marketing_dev:5174 {
# WebSocket support for HMR
header_up Connection {>Connection}
header_up Upgrade {>Upgrade}
}
}
Production Mode
Caddyfile routes to: igny8_marketing:8020
igny8.com {
reverse_proxy igny8_marketing:8020 {
# Static production build
}
}
To switch: Edit /var/lib/docker/volumes/portainer_data/_data/caddy/Caddyfile and restart Caddy.
🛠️ Container Management
Start Dev Server
cd /data/app/igny8
docker compose -f docker-compose.app.yml -p igny8-app up -d igny8_marketing_dev
View Logs
docker logs igny8_marketing_dev -f
Restart Dev Server
docker compose -f docker-compose.app.yml -p igny8-app restart igny8_marketing_dev
Stop Dev Server
docker compose -f docker-compose.app.yml -p igny8-app stop igny8_marketing_dev
📂 File Locations
| Type | Location |
|---|---|
| Marketing Components | /data/app/igny8/frontend/src/marketing/ |
| Marketing Pages | /data/app/igny8/frontend/src/marketing/pages/ |
| Marketing Images | /data/app/igny8/frontend/public/marketing/images/ |
| Marketing Styles | /data/app/igny8/frontend/src/marketing/styles/ |
✅ Benefits
- Real-time Updates - Changes reflect immediately
- No Rebuilds - Edit and save, that's it!
- Fast Development - Same experience as app dev environment
- Image Updates - Images in
public/marketing/images/update instantly - Component Updates - React components hot-reload automatically
🔍 Troubleshooting
Changes Not Appearing
- Check container is running:
docker ps | grep igny8_marketing_dev - Check logs:
docker logs igny8_marketing_dev - Verify volume mount: Files should be in
/data/app/igny8/frontend/
HMR Not Working
- Check browser console for WebSocket errors
- Verify Caddyfile has WebSocket headers
- Restart Caddy:
docker compose restart caddy
Port Conflicts
- Dev server uses port 5174 (internal), 8023 (external)
- If conflicts occur, change port in
docker-compose.app.yml
📊 Current Status
✅ Dev Server: Running
✅ HMR: Enabled
✅ Volume Mount: Active
✅ Caddy Routing: Configured
✅ WebSocket Support: Enabled
🎯 Next Steps
When ready for production:
- Build production image:
docker build -t igny8-marketing:latest -f Dockerfile.marketing . - Update Caddyfile to route to
igny8_marketing:8020 - Restart Caddy:
docker compose restart caddy
See Also: