Add deployment and issue management documentation
Created DEPLOYMENT.md with comprehensive instructions for: - Making commits with proper formatting - Commenting on Gitea issues via API - Database migration procedures - Docker build and deployment workflow - Common troubleshooting steps - Checklist for each commit cycle 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
129
DEPLOYMENT.md
Normal file
129
DEPLOYMENT.md
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
# Deployment and Issue Management Instructions
|
||||||
|
|
||||||
|
## Making Changes and Committing
|
||||||
|
|
||||||
|
### 1. Make Code Changes
|
||||||
|
Edit the necessary files to implement your feature or fix.
|
||||||
|
|
||||||
|
### 2. Commit Your Changes
|
||||||
|
Always use descriptive commit messages with the Claude Code format:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git add <files>
|
||||||
|
git commit -m "$(cat <<'EOF'
|
||||||
|
Brief title of the change
|
||||||
|
|
||||||
|
Detailed description of what was changed and why.
|
||||||
|
- Bullet points for key features
|
||||||
|
- More details as needed
|
||||||
|
- Reference issue numbers (e.g., Issue #1)
|
||||||
|
|
||||||
|
🤖 Generated with [Claude Code](https://claude.com/claude-code)
|
||||||
|
|
||||||
|
Co-Authored-By: Claude <noreply@anthropic.com>
|
||||||
|
EOF
|
||||||
|
)"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Push to Remote
|
||||||
|
```bash
|
||||||
|
git push origin main
|
||||||
|
```
|
||||||
|
|
||||||
|
## Commenting on Issues
|
||||||
|
|
||||||
|
After implementing a fix or feature that addresses a GitHub/Gitea issue, comment on the issue to document the work:
|
||||||
|
|
||||||
|
### Comment on Issue #1 Example
|
||||||
|
```bash
|
||||||
|
curl -X POST -u "the_bot:4152aOP!" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d "{\"body\":\"Implemented [feature description] in commit [commit-hash].\\n\\nFeatures include:\\n- Feature 1\\n- Feature 2\\n- Feature 3\"}" \
|
||||||
|
https://git.scorpi.us/api/v1/repos/chelsea/balanceboard/issues/1/comments
|
||||||
|
```
|
||||||
|
|
||||||
|
### General Template
|
||||||
|
```bash
|
||||||
|
curl -X POST -u "the_bot:4152aOP!" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d "{\"body\":\"Your comment here with \\n for newlines\"}" \
|
||||||
|
https://git.scorpi.us/api/v1/repos/chelsea/balanceboard/issues/ISSUE_NUMBER/comments
|
||||||
|
```
|
||||||
|
|
||||||
|
**Important Notes:**
|
||||||
|
- Use `the_bot` as the username with password `4152aOP!`
|
||||||
|
- Escape quotes in JSON with `\"`
|
||||||
|
- Use `\\n` for newlines in the body
|
||||||
|
- Remove apostrophes or escape them carefully to avoid shell parsing issues
|
||||||
|
- Replace `ISSUE_NUMBER` with the actual issue number
|
||||||
|
|
||||||
|
## Database Migrations
|
||||||
|
|
||||||
|
When you add new database fields:
|
||||||
|
|
||||||
|
1. **Update the Model** (in `models.py`)
|
||||||
|
2. **Create a Migration Script** (e.g., `migrate_password_reset.py`)
|
||||||
|
3. **Run the Migration** before deploying:
|
||||||
|
```bash
|
||||||
|
python3 migrate_password_reset.py
|
||||||
|
```
|
||||||
|
4. **Test Locally** to ensure the migration works
|
||||||
|
5. **Deploy** to production and run the migration there too
|
||||||
|
|
||||||
|
## Docker Deployment
|
||||||
|
|
||||||
|
### Build and Push
|
||||||
|
```bash
|
||||||
|
# Build the image
|
||||||
|
docker build -t git.scorpi.us/chelsea/balanceboard:latest .
|
||||||
|
|
||||||
|
# Push to registry
|
||||||
|
docker push git.scorpi.us/chelsea/balanceboard:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
### Deploy on Server
|
||||||
|
```bash
|
||||||
|
# SSH to server
|
||||||
|
ssh user@reddit.scorpi.us
|
||||||
|
|
||||||
|
# Pull latest image
|
||||||
|
cd /path/to/balanceboard
|
||||||
|
docker-compose pull
|
||||||
|
|
||||||
|
# Restart services
|
||||||
|
docker-compose down
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
# Check logs
|
||||||
|
docker-compose logs -f balanceboard
|
||||||
|
```
|
||||||
|
|
||||||
|
## Common Issues
|
||||||
|
|
||||||
|
### Container Won't Start
|
||||||
|
- Check logs: `docker-compose logs balanceboard`
|
||||||
|
- Verify file permissions in `data/` directory
|
||||||
|
- Ensure all required files are in git (filtersets.json, themes/, static/, etc.)
|
||||||
|
|
||||||
|
### Database Migration Errors
|
||||||
|
- Back up database first
|
||||||
|
- Run migration manually: `python3 migrate_*.py`
|
||||||
|
- Check if columns already exist before re-running
|
||||||
|
|
||||||
|
### 404 Errors for Static Files
|
||||||
|
- Ensure files are committed to git
|
||||||
|
- Rebuild Docker image after adding files
|
||||||
|
- Check volume mounts in docker-compose.yml
|
||||||
|
|
||||||
|
## Checklist for Each Commit
|
||||||
|
|
||||||
|
- [ ] Make code changes
|
||||||
|
- [ ] Test locally
|
||||||
|
- [ ] Run database migrations if needed
|
||||||
|
- [ ] Commit with descriptive message
|
||||||
|
- [ ] Push to git remote
|
||||||
|
- [ ] Comment on related issues
|
||||||
|
- [ ] Build and push Docker image (if needed)
|
||||||
|
- [ ] Deploy to server (if needed)
|
||||||
|
- [ ] Verify deployment works
|
||||||
|
- [ ] Update this README if process changes
|
||||||
Reference in New Issue
Block a user