The code behind furry.nz - a login provider and general community website for the NZ furry community.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
The foxtail project requires at least Python 3.6 and a recent-ish version of node.js. We recommend you run all of the below commands in a dedicated virtual environment to keep things tidy.
To get started, you'll need to install the Python requirements. You can do this with the following command.
pip install -r requirements.txt
And, the node.js requirements.
npm install
When any files in the assets
folder are updated, you'll need to re-build the assets. You will also need to
do this when you first install the project.
npm run-script build-dev
During development, you can also use run-script watch
to enable live reloads.
A number of basic configuration options are required for foxtail to function. These can be
set using environment varibles, or placed in a .env
file in the project root.
Included below is an example of a minimal .env
file to be used for local development.
DEBUG=True
SITE_URL=http://127.0.0.1:8000
INTERNAL_IPS=127.0.0.1
# replace this with your own key!
SECRET_KEY=REPLACEME
To generate a new secret key, open a Python shell and run the following commands.
from foxtail.utils import get_random_secret_key
get_random_secret_key()
First, create the foxtail database.
./manage.py migrate
And then generate an RSA key.
./manage.py creatersakey
Now your development environment is ready, simply run the below to start it up.
./manage.py runserver
You should then be able to access foxtail at http://127.0.0.1:8000/.
This project uses pytest
, pytest-django
, and selenium
for automated code testing.
To install the dependencies for testing, use the following command. You may also need to follow additional steps to get the selenium test suites to run.
pip install -r tests/requirements.txt
You can then use the following command to run the automated test suites.
pytest
Copyright (c) Luke Rogers 2019-2021
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.
- Webpack - Front-end bundling and asset management.
- RQ (Redis Queue) - Job queueing and background tasks.
- JetBrains - For providing software licenses for PyCharm Professional through their open source program.
- BrowserStack - For providing free desktop and mobile web testing through their open source program.