# ๐Ÿš€ Quick Start Guide Get your crรชpes demo running in under 10 minutes! ## Option 1: Local Development (Fastest) ```bash npm install npm run dev ``` Visit http://localhost:3000 ๐ŸŽ‰ ## Option 2: Docker (Easy) ```bash docker build -t crepes-demo . docker run -p 3000:3000 crepes-demo ``` Visit http://localhost:3000 ๐ŸŽ‰ ## Option 3: Kubernetes with Flux (Production) ### Prerequisites Checklist - [ ] Kubernetes cluster running - [ ] Flux installed (`flux check`) - [ ] Container registry access (Docker Hub, GHCR, etc.) - [ ] Domain with Cloudflare - [ ] Ingress controller installed - [ ] cert-manager installed (for HTTPS) ### Deploy in 5 Steps #### 1. Configure Your Details ```bash export REGISTRY="ghcr.io/YOUR_USERNAME" # Your container registry export DOMAIN="crepes.example.com" # Your domain ``` #### 2. Use the Deploy Script ```bash ./deploy.sh $REGISTRY $DOMAIN ``` This will: - Build the Docker image - Push to your registry - Update k8s manifests with your registry and domain #### 3. Initialize Git Repository ```bash git init git add . git commit -m "Initial commit: Crรชpes demo" git remote add origin https://github.com/YOUR_USERNAME/crepes-demo.git git push -u origin main ``` #### 4. Update Flux Configuration Edit `flux/gitrepository.yaml` and update the Git URL: ```yaml spec: url: https://github.com/YOUR_USERNAME/crepes-demo ``` #### 5. Deploy to Cluster ```bash # Apply Flux resources kubectl apply -f flux/gitrepository.yaml kubectl apply -f flux/kustomization.yaml # Watch it deploy flux get kustomizations -w ``` #### 6. Configure DNS **Automatic (with external-dns):** DNS records are created automatically โœจ **Manual:** 1. Go to Cloudflare dashboard 2. Add an A/CNAME record for `crepes.example.com` pointing to your ingress IP 3. Enable Cloudflare proxy (orange cloud) ### Verify Deployment ```bash # Check pods are running kubectl get pods -l app=crepes-demo # Check ingress kubectl get ingress crepes-demo # Get your ingress IP kubectl get ingress crepes-demo -o jsonpath='{.status.loadBalancer.ingress[0].ip}' ``` Visit your domain: `https://crepes.example.com` ๐ŸŽ‰ ## ๐Ÿ”ง Troubleshooting ### Pods not starting? ```bash kubectl describe pod -l app=crepes-demo kubectl logs -l app=crepes-demo ``` ### Image pull errors? - Check registry credentials - Verify image was pushed: `docker images | grep crepes-demo` - Check deployment image URL ### Ingress not working? ```bash # Check ingress controller logs kubectl logs -n ingress-nginx -l app.kubernetes.io/component=controller # Verify ingress has address kubectl get ingress ``` ### Certificate issues? ```bash kubectl get certificate kubectl describe certificate crepes-demo-tls ``` ## ๐Ÿ“Š Monitoring ```bash # Watch pods kubectl get pods -l app=crepes-demo -w # View logs kubectl logs -f -l app=crepes-demo # Check Flux sync flux get kustomizations flux logs ``` ## ๐Ÿ”„ Update the App ```bash # Make your changes git add . git commit -m "Update recipe" git push # Flux syncs automatically every 1 minute # Or force immediate sync: flux reconcile kustomization crepes-demo ``` ## ๐ŸŽฏ Next Steps - **Customize recipes**: Edit `lib/recipes.ts` - **Add components**: Update `lib/catalog.ts` and `lib/registry.tsx` - **Change styling**: Modify Tailwind classes in components - **Add CI/CD**: Use the included GitHub Actions workflow - **Scale**: Increase replicas in `k8s/deployment.yaml` ## ๐Ÿ’ก Pro Tips 1. **Test locally first** before deploying to k8s 2. **Use a staging environment** for major changes 3. **Monitor Flux logs** during first deployment 4. **Set up alerts** for deployment failures 5. **Enable auto-image updates** in Flux for CI/CD --- Need help? Check the full [README.md](README.md) for detailed documentation. **Bon Appรฉtit! ๐Ÿฅž๐Ÿ‡ซ๐Ÿ‡ท**