Deployment Checklist Tool - Go backend with embedded Python microservice for Excel/PDF generation.
✅ Core Features:
- Projects, Components, and Deployments CRUD
- Library/Presets management (developers, servers, environments)
- Filtering by project, date (month/year)
- Real-time WebSocket updates
- Embedded Vue 3 frontend
✅ NEW Features (Go Bonuses):
- 📦 Database Export/Import - Backup entire SQLite database
- ⚙️ Settings Export/Import - Backup library presets to JSON
- 💚 Health Check -
/healthendpoint for monitoring - 📝 Structured JSON Logging - Better debugging
- 🔄 Auto-Backup - Daily automatic database backups
- 🔍 Request Tracing - Unique IDs for every request
✅ Python Microservice:
- Excel export (pandas + openpyxl)
- PDF reports (reportlab + matplotlib)
# Build
./build/build.sh
# Run
./chklst
# Access
http://localhost:8000chklst-go (Single Binary ~50MB)
├── Go Backend (API, DB, WebSocket)
├── Vue 3 Frontend (Embedded)
└── Python Microservice (Excel/PDF)
GET /api/v1/projects- List all projectsPOST /api/v1/projects- Create projectGET /api/v1/projects/:id- Get projectPUT /api/v1/projects/:id- Update projectDELETE /api/v1/projects/:id- Delete project
POST /api/v1/projects/:projectId/components- Create componentPUT /api/v1/projects/:projectId/components/:componentId- Update componentDELETE /api/v1/projects/:projectId/components/:componentId- Delete component
GET /api/v1/deployments- List deployments (with filters)POST /api/v1/deployments- Create deploymentGET /api/v1/deployments/:id- Get deploymentPUT /api/v1/deployments/:id- Update deploymentDELETE /api/v1/deployments/:id- Delete deployment
GET /api/v1/library- Get libraryPOST /api/v1/library/developers- Add developerDELETE /api/v1/library/developers/:name- Remove developer- Similar endpoints for servers and environments
GET /api/v1/reports/excel?month=1&year=2025- Export to ExcelGET /api/v1/reports/pdf?month=1&year=2025- Export to PDFGET /api/v1/reports/stats?month=1&year=2025- Get statistics
GET /health- Health checkPOST /api/v1/admin/backup/database- Backup databasePOST /api/v1/admin/restore/database- Restore from backupPOST /api/v1/admin/export/settings- Export settings to JSONPOST /api/v1/admin/import/settings- Import settings from JSONGET /api/v1/admin/backups- List all backups
Your existing chklst.db file works out of the box! Just copy it:
cp ../chklst.db ./chklst.db# Install dependencies
go mod download
# Run in development
go run cmd/chklst/main.go
# Build
go build -o chklst cmd/chklst/main.go
# Cross-compile
GOOS=windows GOARCH=amd64 go build -o chklst.exe cmd/chklst/main.go
GOOS=darwin GOARCH=amd64 go build -o chklst-mac cmd/chklst/main.goSet via environment variables or defaults:
DB_PATH- Database file path (default:./chklst.db)BACKUP_DIR- Backup directory (default:./backups)PORT- Server port (default:8000)LOG_LEVEL- Logging level (default:INFO)AUTO_BACKUP_HOURS- Auto-backup interval (default:24)
Personal use project by Kannan.