The code behind furry.nz - a login provider and general community website for the NZ furry community.
Create a .env file in the project root with the following minimal configuration:
DEBUG=True
SECRET_KEY=REPLACEME
SITE_URL=http://127.0.0.1:8000
CONTACT_EMAILS=admin@example.com
DATABASE_URL=postgres://foxtail:foxtail@localhost/foxtail
CACHE_URL=redis://localhost/1
HUEY_IMMEDIATE=True
VITE_DEV_MODE=True
# Start PostgreSQL and Redis
docker compose up -d
# Install dependencies
uv sync --group dev --group test
npm install
# Run migrations
uv run python src/manage.py migrate# Django dev server
uv run python src/manage.py runserver
# Vite dev server (separate terminal, for HMR + asset serving)
npm run devAccess foxtail at http://127.0.0.1:8000/.
This project uses pytest and pytest-django for automated code testing.
uv run pytest src/apps/ -vTo test the full production Docker image locally (gunicorn, collectstatic, WhiteNoise):
docker compose -f compose.yaml -f compose.prod.yaml up --buildSee deploy/ for a production-ready compose file and configuration template.
Copyright (c) Luke Rogers 2019-2026
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
This Source Code Form is "Incompatible With Secondary Licenses", as
defined by the Mozilla Public License, v. 2.0.
- Django - The backend, the star of the whole show.
- Bootstrap - Front-end CSS framework.
- Vite - Front-end bundling and asset management.
- Huey - Job queueing and background tasks.
- BrowserStack - For providing web testing and visual regression testing through their open source program.
- Sentry - For providing error and performance monitoring through their open source program.