bitpoll-nix/memory-bank/projectbrief.md

2.1 KiB

Project Brief: Bitpoll Nix Flake

Project Overview

This project provides a comprehensive Nix flake for packaging and deploying Bitpoll, a web application for scheduling meetings and general polling. The flake enables easy installation, configuration, and deployment of Bitpoll on NixOS systems.

Core Requirements

Primary Goals

  1. Package Bitpoll for Nix: Create a working Nix package for the Bitpoll Django application
  2. NixOS Service Module: Provide a complete systemd service configuration for production deployment
  3. Cross-platform Support: Ensure compatibility with Linux and macOS development environments
  4. Security Hardening: Implement proper user isolation and security measures
  5. Data Persistence: Store all application data in /var/lib/bitpoll as specified

Technical Requirements

  • Use NixOS 25.05 with pinned dependencies
  • Build from Bitpoll master branch (commit 4a3e6a5)
  • Support both development and production environments
  • Include all necessary Python dependencies
  • Provide management command access
  • Enable proper Django configuration

Functional Requirements

  • Web server capability for hosting Bitpoll
  • Database management (SQLite by default, PostgreSQL support)
  • Static file serving
  • User authentication and management
  • Meeting scheduling and polling functionality
  • Secure configuration management

Success Criteria

  • Nix flake builds successfully
  • Package runs without dependency errors
  • NixOS service deploys and starts correctly
  • All Django management commands work
  • Web interface accessible and functional
  • Data persists in designated directory
  • Security hardening implemented

Constraints

  • Must use Nix/NixOS ecosystem exclusively
  • Follow Nix packaging best practices
  • Maintain compatibility with upstream Bitpoll
  • Ensure reproducible builds
  • Support standard Django deployment patterns

Stakeholders

  • Primary: NixOS users wanting to deploy Bitpoll
  • Secondary: Developers contributing to Bitpoll packaging
  • Tertiary: System administrators managing Bitpoll deployments