Add comprehensive documentation for Bitpoll Nix Flake, including memory bank, project brief, product context, active context, progress, system patterns, tech context, and usage guidelines.

This commit is contained in:
Philip Henning 2025-07-04 13:20:11 +02:00
parent 8ebc71193f
commit 56830dfebd
7 changed files with 1057 additions and 0 deletions

75
memory-bank/README.md Normal file
View file

@ -0,0 +1,75 @@
# 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)
1. **`projectbrief.md`** - Foundation document defining project scope, requirements, and success criteria
2. **`productContext.md`** - Why the project exists, problems it solves, and user experience goals
3. **`systemPatterns.md`** - Technical architecture, design patterns, and implementation details
4. **`techContext.md`** - Technology stack, dependencies, tools, and technical constraints
5. **`activeContext.md`** - Current work focus, recent changes, decisions, and project insights
6. **`progress.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
1. **Hybrid Dependency Strategy**: nixpkgs packages + pip for comprehensive coverage
2. **Build-time Configuration**: Generated settings with runtime overrides
3. **Security-first Design**: Dedicated user with systemd hardening
4. **Single Data Directory**: `/var/lib/bitpoll` for easy backup/restore
## Usage Quick Reference
```bash
# 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:
1. **Start by reading ALL memory bank files** - they build upon each other
2. **Update activeContext.md** when making significant changes
3. **Update progress.md** when completing features or fixing issues
4. **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*