Ben Sturmfels
94c56bb468
I've simplified this view by removing the custom HTTP error handlers, Python 3.5 exception handling and adding documentation. |
||
---|---|---|
bin | ||
conservancy | ||
deploy | ||
.dockerignore | ||
.gitignore | ||
AGPLv3 | ||
ASPEN.md | ||
CC-By-SA-3.0 | ||
Dockerfile-debian-bookworm | ||
ISC_LICENSE | ||
manage.py | ||
README.md | ||
requirements.txt | ||
TODO.md |
Software Freedom Conservancy website
Contributing
The canonical location for this repository is on Conservancy’s Kallithea instance.
License
The software included herein, such as the Python source files, are generally licensed AGPLv3-or-later. The Javascript is a hodgepodge of licensing, but all of it is compatible with AGPLv3-or-later. See the notices at the top of each Javascript file for licensing details.
The content and text (such as the HTML files) is currently CC-BY-SA-3.0.
Server configuration
Conservancy's webserver runs on a standard Debian installation. For
configuration requirements, see deploy/ansible/install.yml
.
CDN
Requests to any URL starting with /videos/
are forwarded to our CDN server to
reduce bandwidth use. These files are uploaded to the CDN manually via the
Rackspace API. Note that the Apache rewrite rule requires that the file not
exist on disk for the redirect to be applied.
Local development
Python dependencies in requirements.txt
are tied to the versions available in
Debian:
python3 -m pip install -r requirements.txt
You'll need a copy of conservancy/djangocommonsettings.py
, a file that not
committed to the repository that has database settings and other
environment-specific config.
Then run:
python manage.py migrate
python manage.py runserver
There is also a Dockerfile available if that's more convenient. See that file for details.
Deploying
Changes pushed to the https://k.sfconservancy.org/website repository are
automatically deployed to the production website by the conservancy-www-update
SystemD timer. See systemd/conservancy-www-update.timer
for details.
The migrate
and collectstatic
commands are not run automatically. You may
need to run these if modifying the database schema or adding/moving static files:
sudo -u www-data /var/www/venv-website/bin/python manage.py migrate
sudo -u www-data /var/www/venv-website/bin/python manage.py collectstatic --link