Fix crash when the current view cannot be determined.
[blender-dev-fund.git] / README.md
1 # Looper – Subscription Management System
2
3 Looper is a flexible subscription management system, designed after real-life scenarios.
4
5 ## Setting up
6
7 ```
8 pipenv install --dev
9 pipenv run ./manage.py migrate
10 pipenv run ./manage.py loaddata systemuser devfund default_site wagtail
11 pipenv run ./manage.py collectmedia --noinput
12 pipenv run ./manage.py runserver 8010
13 ```
14
15 After logging in via the web interface and Blender ID, use
16
17 ```
18 pipenv run ./manage.py makesuperuser {your email address}
19 ```
20
21 to make yourself an admin.
22
23 ## CMS
24
25 We use [Wagtail](https://wagtail.io/) as CMS for providing access to dynamic content of the website,
26 such as page titles, calls to action, or entire pages. The CMS is accessible at the `/cms` endpoint.
27
28 Note: we are currently using a development version of Wagtail, therefore we need to build the
29 static assets for the package ourselves. Check the warning in the startup log for more info on
30 how to do it.
31
32 ## Braintree integration and HTTPS
33
34 It seems even the Braintree sandbox assumes you're using an HTTPS website. The easiest
35 way to set this up is to use [stunnel](https://stackoverflow.com/a/8025645/875379) to
36 create a simple HTTPS wrapper around your devserver.
37
38 **NOTE**: to make Django aware of the fact that HTTPS is used, set the environment variable
39 `HTTPS=1` when running `manage.py runserver`.
40
41 You can now access https://fund.local:8443/ to reach your dev server via HTTPS.
42
43
44 ## Documentation
45
46 ```
47 cd docs
48 pipenv run mkdocs serve -a localhost:8080
49 ```
50
51
52 ## Testing
53
54 Run `pipenv run py.test` to run the unit tests.
55
56 By default we use the `--reuse-db` option to speed up subsequent test runs.
57 However, this skips the database migrations; add `--create-db` on the CLI to
58 recreate the test database and run all the migrations.
59
60
61 ## GeoIP
62
63 The GeoIP database was downloaded from
64 [GeoLite2-Country](http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz)
65
66
67 ## Deployment
68
69 Deployment is done via Docker, see [docker/README.md](docker/README.md) for more info.