bitpoll-nix/memory-bank/README.md

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)

  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

# 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