2.9 KiB
Nibasa Viewer
A basic pure HTML+CSS gallery viewer in the vein of PiGallery 2 but meant to be compatible with somewhat old browsers.
User authentication.
To login a user should be manually created by running the following commands in the Django shell, substituting the user's name, email and password as needed:
from django.contrib.auth.models import User
user = User.objects.create_user('<USERNAME>', '<EMAIL>', '<PASSWORD>')
user.save()
Running the project
This project uses Django. The instructions below show how to run the site in a local/testing (development) mode and a simple release (production) mode. All commands assume you're in the repository root.
-
Create and activate a virtualenv (recommended):
.venv/bin/python -m venv .venv source .venv/bin/activate
-
Install dependencies:
pip install -r requirements.txt
-
Configure environment variables in a
.envfile (the app readsGALLERY_ROOTandTHUMBNAILS_ROOT). Example.envcontents:GALLERY_ROOT=/path/to/images THUMBNAILS_ROOT=/path/to/thumb-cache
Development / testing mode
-
Apply migrations and run the development server:
.venv/bin/python manage.py migrate .venv/bin/python manage.py runserver
This runs Django's built-in development server (DEBUG mode). It's suitable for local testing and development only.
Release / production mode (simple guide)
-
Collect static files and run with a WSGI server like
gunicorn(example):.venv/bin/python manage.py collectstatic --noinput GALLERY_ROOT=/path/to/images THUMBNAILS_ROOT=/path/to/thumb-cache
gunicorn NibasaViewer.wsgi:application --bind 0.0.0.0:8000 --workers 3
Set DEBUG=False and provide a proper ALLOWED_HOSTS value in your environment or settings when running in production. Use a reverse proxy (nginx) for serving static files and handling HTTPS in front of your WSGI server.
Running tests
-
Run the full Django test suite:
.venv/bin/python manage.py test
-
Useful focused test commands (fast iteration):
.venv/bin/python manage.py test viewer.test .venv/bin/python manage.py test viewer.test.GalleryViewTests .venv/bin/python manage.py test viewer.test.GalleryViewTests.test_search_action_url_uses_nested_path
-
Sanity checks recommended before pushing changes:
.venv/bin/python manage.py check .venv/bin/python manage.py makemigrations --check --dry-run .venv/bin/python -m compileall NibasaViewer viewer
Other useful management commands
-
Pre-generate thumbnails (batch):
.venv/bin/python manage.py makethumbnails
Notes
- Keep
.envlocal and out of version control; use.env.exampleas a template if you want to commit a sample file. - For production deployments follow standard Django deployment guides (use a dedicated WSGI server, reverse proxy, secure secret management, and proper file permissions).