2.7 KiB
2.7 KiB
Memory Bank: Bitpoll Nix Flake
This memory bank contains comprehensive documentation for the Bitpoll Nix flake project. These files serve as the complete context for understanding and working with this project.
File Structure
Core Files (Required)
projectbrief.md
- Foundation document defining project scope, requirements, and success criteriaproductContext.md
- Why the project exists, problems it solves, and user experience goalssystemPatterns.md
- Technical architecture, design patterns, and implementation detailstechContext.md
- Technology stack, dependencies, tools, and technical constraintsactiveContext.md
- Current work focus, recent changes, decisions, and project insightsprogress.md
- What works, what's left to build, current status, and future roadmap
Project Summary
Bitpoll Nix Flake is a comprehensive packaging solution that brings the Bitpoll Django web application to the Nix ecosystem. It provides:
- Complete Nix Package: Builds Bitpoll with all dependencies
- NixOS Service Module: Production-ready systemd service with security hardening
- Cross-platform Support: Development on macOS, deployment on Linux
- Security-first Design: Comprehensive security measures built-in
- Production Ready: Automatic migrations, static file management, and proper data persistence
Current Status: PRODUCTION READY ✅
The project is complete and functional with all core requirements met:
- Package builds successfully
- NixOS service works reliably
- Security hardening implemented
- Documentation comprehensive
- Ready for production deployment
Key Technical Decisions
- Hybrid Dependency Strategy: nixpkgs packages + pip for comprehensive coverage
- Build-time Configuration: Generated settings with runtime overrides
- Security-first Design: Dedicated user with systemd hardening
- Single Data Directory:
/var/lib/bitpoll
for easy backup/restore
Usage Quick Reference
# Build package
nix build
# Run development server
nix run
# Management commands
nix run .#bitpoll-manage -- migrate
# Development environment
nix develop
# NixOS deployment
services.bitpoll.enable = true;
Memory Bank Usage
When working on this project:
- Start by reading ALL memory bank files - they build upon each other
- Update activeContext.md when making significant changes
- Update progress.md when completing features or fixing issues
- Maintain other files when architecture or requirements change
The memory bank ensures continuity and context preservation across development sessions.
Last Updated: January 7, 2025 Project Status: Production Ready Memory Bank Version: 1.0