Add .gitignore and update README with fixed issues and new commands

- Created .gitignore to exclude build outputs and temporary files.
- Updated README to document fixes for dependency issues and added commands for generating encryption keys and running the development server.
This commit is contained in:
Philip Henning 2025-07-04 13:13:34 +02:00
parent 8de81ea2ab
commit 8ebc71193f
3 changed files with 163 additions and 46 deletions

108
flake.nix
View file

@ -65,55 +65,58 @@
GROUP_MANAGEMENT = True
'';
bitpoll = pkgs.python3Packages.buildPythonApplication rec {
# Create Python environment with all dependencies
pythonEnv = pkgs.python3.withPackages (ps: with ps; [
# Core Django dependencies
django
# Calendar and date handling
caldav
icalendar
python-dateutil
pytz
vobject
recurring-ical-events
# Crypto and security
cryptography
django-encrypted-model-fields
# Web and HTTP
requests
# Markup and styling
markdown
bleach
# Data handling
pydantic
# Database
psycopg2
# Utilities
six
lxml
# Additional dependencies
setuptools
wheel
pip
# Available Django packages
# Note: Some packages will need to be installed via pip in postInstall
]);
bitpoll = pkgs.stdenv.mkDerivation rec {
pname = "bitpoll";
version = "master-${builtins.substring 0 7 bitpollSrc.rev}";
src = bitpollSrc;
format = "other";
propagatedBuildInputs = with pkgs.python3Packages; [
# Core Django dependencies
django
# Calendar and date handling
caldav
icalendar
python-dateutil
pytz
vobject
# Crypto and security
cryptography
# Web and HTTP
requests
# Markup and styling
markdown
bleach
# Data handling
pydantic
# Database
psycopg2
# Utilities
six
lxml
# Additional dependencies
setuptools
wheel
] ++ [
# System dependencies
pkgs.gettext
];
nativeBuildInputs = with pkgs; [
gettext
pythonEnv
];
buildInputs = with pkgs; [
@ -136,13 +139,26 @@
mkdir -p $out/share/bitpoll
cp -r . $out/share/bitpoll/
# Install missing Python packages via pip
export PYTHONPATH=$out/lib/python3.12/site-packages:$PYTHONPATH
mkdir -p $out/lib/python3.12/site-packages
${pythonEnv}/bin/pip install --target $out/lib/python3.12/site-packages \
django-simple-csp==0.4.dev1 \
django-markdownify==0.9.5 \
django-pipeline==3.1.0 \
django-friendly-tag-loader==1.3.1 \
django-token-bucket==0.2.4 \
django-widget-tweaks==1.5.0 \
libsasscompiler==0.1.9
# Create wrapper script
mkdir -p $out/bin
cat > $out/bin/bitpoll-manage << EOF
#!/bin/sh
cd $out/share/bitpoll
export PYTHONPATH=$out/share/bitpoll:\$PYTHONPATH
exec ${pkgs.python3}/bin/python manage.py "\$@"
export PYTHONPATH=$out/lib/python3.12/site-packages:$out/share/bitpoll:\$PYTHONPATH
exec ${pythonEnv}/bin/python manage.py "\$@"
EOF
chmod +x $out/bin/bitpoll-manage
@ -150,8 +166,8 @@
cat > $out/bin/bitpoll-server << EOF
#!/bin/sh
cd $out/share/bitpoll
export PYTHONPATH=$out/share/bitpoll:\$PYTHONPATH
exec ${pkgs.python3}/bin/python manage.py runserver "\$@"
export PYTHONPATH=$out/lib/python3.12/site-packages:$out/share/bitpoll:\$PYTHONPATH
exec ${pythonEnv}/bin/python manage.py runserver "\$@"
EOF
chmod +x $out/bin/bitpoll-server