# ✅ LittleShop Deployment Checklist ## Pre-Deployment Requirements - [ ] Portainer access: `http://10.0.0.51:9000` (sysadmin / Phenom12#.) - [ ] Traefik network named `traefik` exists on portainer-03 - [ ] DNS `littleshop.silverlabs.uk` points to Traefik server - [ ] Let's Encrypt resolver named `letsencrypt` configured in Traefik ## Deployment Files Ready ✅ - [x] `Dockerfile` - Multi-stage ASP.NET Core build - [x] `docker-compose.yml` - Portainer-ready with Traefik labels - [x] `.dockerignore` - Optimized build context - [x] `appsettings.Production.json` - Production configuration - [x] `.env.example` - Environment variables template ## Step-by-Step Process ### 1. Access Portainer ⏳ - [ ] Open `http://10.0.0.51:9000` - [ ] Login: `sysadmin` / `Phenom12#.` - [ ] Navigate to **Stacks** ### 2. Create Stack ⏳ - [ ] Click **Add stack** - [ ] Name: `littleshop` - [ ] Method: **Web editor** (or Repository if using Git) ### 3. Configuration ⏳ - [ ] Copy `docker-compose.yml` content - [ ] Add environment variables: - [ ] `JWT_SECRET_KEY` = `YourSuperSecretKeyThatIsAtLeast32CharactersLong!` - [ ] `BTCPAY_SERVER_URL` = (optional, leave empty) - [ ] `BTCPAY_STORE_ID` = (optional, leave empty) - [ ] `BTCPAY_API_KEY` = (optional, leave empty) - [ ] `BTCPAY_WEBHOOK_SECRET` = (optional, leave empty) ### 4. Deploy ⏳ - [ ] Click **Deploy the stack** - [ ] Wait for build completion - [ ] Check for any error messages ### 5. Verification ⏳ - [ ] Container shows **Running** status - [ ] No error logs in container - [ ] Access `https://littleshop.silverlabs.uk` - [ ] Admin panel accessible at `/Admin` ### 6. Initial Setup ⏳ - [ ] Login to admin panel: `admin` / `admin` - [ ] **CRITICAL**: Change admin password - [ ] Create categories - [ ] Add products - [ ] Test order flow ### 7. Post-Deployment ⏳ - [ ] SSL certificate working (green padlock) - [ ] All pages load correctly - [ ] Database persisting data - [ ] File uploads working - [ ] Logs being written ## Expected Results ### URLs - **Main Site**: `https://littleshop.silverlabs.uk` - **Admin Panel**: `https://littleshop.silverlabs.uk/Admin` - **API Docs**: `https://littleshop.silverlabs.uk/swagger` ### Default Credentials - **Username**: `admin` - **Password**: `admin` - **⚠️ MUST CHANGE ON FIRST LOGIN** ### Container Info - **Name**: `littleshop` - **Image**: `littleshop:latest` - **Port**: `8080` (internal) - **Volumes**: 3 persistent volumes for data, uploads, logs ### Traefik Integration - **Host**: `littleshop.silverlabs.uk` - **SSL**: Let's Encrypt automatic - **Headers**: Proper forwarding configured ## Troubleshooting ### Build Fails - Check source code uploaded correctly - Verify .NET 9.0 SDK available - Check Dockerfile syntax ### Container Won't Start - Check environment variables - Verify port 8080 not in use - Check volume permissions ### Site Not Accessible - Verify Traefik network connection - Check DNS resolution - Confirm SSL certificate issued ### Database Issues - Ensure volume permissions correct - Check `/app/data` directory writable - Verify SQLite database created --- **Status**: 🟢 **READY FOR DEPLOYMENT** **Next Action**: Follow PORTAINER-STEPS.md to deploy via Portainer UI