2.1 KiB
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
- Package Bitpoll for Nix: Create a working Nix package for the Bitpoll Django application
- NixOS Service Module: Provide a complete systemd service configuration for production deployment
- Cross-platform Support: Ensure compatibility with Linux and macOS development environments
- Security Hardening: Implement proper user isolation and security measures
- 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