Skip to content

dmptrluke/foxtail

Repository files navigation

foxtail

GitHub Actions Workflow Status GitHub Actions Workflow Status Codecov

The code behind furry.nz - a login provider and general community website for the NZ furry community.

Getting Started

Prerequisites

  • Docker (for PostgreSQL and Redis)
  • Python 3.13+ with uv
  • Node.js 22+ with npm

Configuration

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

Setup

# 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

Running

# Django dev server
uv run python src/manage.py runserver

# Vite dev server (separate terminal, for HMR + asset serving)
npm run dev

Access foxtail at http://127.0.0.1:8000/.

Running the tests

This project uses pytest and pytest-django for automated code testing.

uv run pytest src/apps/ -v

Production-like local testing

To test the full production Docker image locally (gunicorn, collectstatic, WhiteNoise):

docker compose -f compose.yaml -f compose.prod.yaml up --build

Deployment

See deploy/ for a production-ready compose file and configuration template.

License

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.

Built With

  • 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.

Thanks To

  • 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.

About

A Django-based project of many talents. And an OpenID Connect provider.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors