50 lines
2.1 KiB
Markdown
50 lines
2.1 KiB
Markdown
# 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
|