75 lines
2.7 KiB
Markdown
75 lines
2.7 KiB
Markdown
# 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*
|