1 # Deployment Checklist - Desktop Downloads Feature
2
3 Use this checklist to ensure smooth deployment of the desktop downloads feature.
4
5 ## Pre-Deployment
6
7 ### 1. GitHub Setup
8 - [ ] Created GitHub Personal Access Token
9 - [ ] Token has correct scope (`repo` or fine-grained `Contents: Read`)
10 - [ ] Token is saved securely (password manager)
11 - [ ] Token expiration date noted in calendar
12
13 ### 2. Repository Setup
14 - [ ] At least one release exists in repository
15 - [ ] Release is marked as "latest" (not draft or pre-release)
16 - [ ] Release has assets uploaded
17 - [ ] Assets follow naming convention (platform-arch.ext)
18 - [ ] All platforms have builds (macOS, Windows, Linux)
19
20 ### 3. Local Testing
21 - [ ] Created `.env` file with `GITHUB_TOKEN`
22 - [ ] Ran `npm run test:releases` successfully
23 - [ ] Started dev server (`npm run dev`)
24 - [ ] Visited `/download` page - loads correctly
25 - [ ] All platforms detected correctly
26 - [ ] Download links work
27 - [ ] Tested on mobile viewport
28 - [ ] No console errors
29
30 ### 4. Code Review
31 - [ ] API endpoint properly authenticates
32 - [ ] Error handling in place
33 - [ ] Types are correct
34 - [ ] Cache headers configured
35 - [ ] No hardcoded tokens or secrets
36 - [ ] `.env` is in `.gitignore`
37
38 ## Deployment
39
40 ### 5. Environment Variables
41 - [ ] Added `GITHUB_TOKEN` to production environment
42 - [ ] Verified token value is correct (no extra spaces)
43 - [ ] Environment variable is marked as secret/hidden
44 - [ ] Tested environment variable is accessible
45
46 ### 6. Build & Deploy
47 - [ ] Code committed to repository
48 - [ ] All tests passing
49 - [ ] Built successfully (`npm run build`)
50 - [ ] Deployed to staging/preview environment
51 - [ ] Tested on staging environment
52 - [ ] Deployed to production
53
54 ### 7. Production Testing
55 - [ ] Visited production `/download` page
56 - [ ] Desktop downloads section appears
57 - [ ] All platforms showing correctly
58 - [ ] Version number is correct
59 - [ ] File sizes displaying properly
60 - [ ] Download links functional
61 - [ ] Tested at least one download from each platform
62 - [ ] Mobile app store links still work
63 - [ ] Page loads in under 3 seconds
64
65 ## Post-Deployment
66
67 ### 8. Monitoring
68 - [ ] Check server logs for errors
69 - [ ] Monitor API response times
70 - [ ] Check GitHub API rate limit usage
71 - [ ] Verify cache headers are working
72 - [ ] Test from different geographic locations
73 - [ ] Monitor download completion rates
74
75 ### 9. Documentation
76 - [ ] Updated team documentation
77 - [ ] Shared GitHub token securely with team
78 - [ ] Documented token rotation schedule
79 - [ ] Updated runbook for common issues
80 - [ ] Notified stakeholders of deployment
81
82 ### 10. User Communication
83 - [ ] Announced desktop app availability
84 - [ ] Updated social media / blog
85 - [ ] Sent newsletter (if applicable)
86 - [ ] Updated app store descriptions with desktop link
87 - [ ] Added desktop downloads to navigation/footer
88
89 ## Platform-Specific Checks
90
91 ### macOS
92 - [ ] Apple Silicon build available
93 - [ ] Intel build available
94 - [ ] .dmg files open correctly
95 - [ ] App is signed (if applicable)
96 - [ ] Gatekeeper warnings acceptable
97
98 ### Windows
99 - [ ] x64 build available
100 - [ ] .exe or .msi installs correctly
101 - [ ] Windows Defender doesn't block
102 - [ ] App is signed (if applicable)
103
104 ### Linux
105 - [ ] AppImage is executable
106 - [ ] .deb installs on Debian/Ubuntu
107 - [ ] .rpm installs on Fedora/RHEL
108 - [ ] Correct architecture (x64/ARM64)
109
110 ## Security Checklist
111
112 ### 11. Security Verification
113 - [ ] GitHub token not in source code
114 - [ ] Token not in git history
115 - [ ] `.env` file in `.gitignore`
116 - [ ] Token has minimum required permissions
117 - [ ] API endpoint doesn't leak token
118 - [ ] Downloads don't expose asset IDs publicly
119 - [ ] HTTPS enabled on production
120 - [ ] No CORS issues
121
122 ## Performance Checklist
123
124 ### 12. Performance Verification
125 - [ ] API response time < 2 seconds
126 - [ ] Cache headers working (5 minutes)
127 - [ ] Page loads quickly
128 - [ ] No unnecessary API calls
129 - [ ] Images optimized
130 - [ ] JavaScript bundle size reasonable
131
132 ## Rollback Plan
133
134 ### 13. Rollback Preparation
135 - [ ] Previous deployment still accessible
136 - [ ] Know how to revert deployment
137 - [ ] Have backup of environment variables
138 - [ ] Can quickly disable feature if needed
139 - [ ] Team knows rollback procedure
140
141 ## Issue Response
142
143 ### 14. Support Preparation
144 - [ ] Support team trained on new feature
145 - [ ] Common issues documented
146 - [ ] Troubleshooting guide accessible
147 - [ ] Contact channels working
148 - [ ] Escalation path defined
149
150 ## Maintenance Schedule
151
152 ### 15. Ongoing Maintenance
153 - [ ] Token rotation scheduled (6-12 months)
154 - [ ] Release process documented
155 - [ ] Monitoring dashboards set up
156 - [ ] Performance benchmarks recorded
157 - [ ] User feedback collection method established
158
159 ## Success Metrics
160
161 ### 16. Define Success
162 - [ ] Tracking desktop download counts
163 - [ ] Monitoring platform distribution
164 - [ ] Measuring page load times
165 - [ ] Tracking error rates
166 - [ ] User satisfaction metric defined
167
168 ## Sign-Off
169
170 ### Final Approval
171 - [ ] Technical lead approved
172 - [ ] QA team approved
173 - [ ] Product owner approved
174 - [ ] Security review passed
175 - [ ] Ready for production traffic
176
177 ---
178
179 ## Quick Commands Reference
180
181 ```bash
182 # Test GitHub connection
183 npm run test:releases
184
185 # Run locally
186 npm run dev
187
188 # Build for production
189 npm run build
190
191 # Preview production build
192 npm run preview
193
194 # Check environment variable
195 echo $GITHUB_TOKEN
196
197 # Test API endpoint
198 curl https://your-domain.com/api/download-desktop-app | jq
199 ```
200
201 ## Emergency Contacts
202
203 - **Technical Lead**: [Add contact]
204 - **DevOps Team**: [Add contact]
205 - **On-Call Engineer**: [Add contact]
206 - **GitHub Support**: support@github.com
207
208 ## Post-Deployment Notes
209
210 **Deployed By**: ___________________
211 **Date**: ___________________
212 **Version**: ___________________
213 **Environment**: ___________________
214 **Issues Found**: ___________________
215 **Resolution**: ___________________
216
217 ---
218
219 ## Verification Commands
220
221 ### Test Production API
222 ```bash
223 curl https://pepakbasajawa.com/api/download-desktop-app | jq
224 ```
225
226 ### Check Rate Limit
227 ```bash
228 curl -H "Authorization: Bearer $GITHUB_TOKEN" \
229 https://api.github.com/rate_limit | jq
230 ```
231
232 ### Verify Release Assets
233 ```bash
234 curl -H "Authorization: Bearer $GITHUB_TOKEN" \
235 https://api.github.com/repos/setoelkahfi/pepakbasajawa/releases/latest | jq
236 ```
237
238 ### Monitor Cache Headers
239 ```bash
240 curl -I https://pepakbasajawa.com/api/download-desktop-app
241 ```
242
243 ---
244
245 **Checklist Version**: 1.0.0
246 **Last Updated**: 2024
247 **Status**: Ready for Use ✅