Ben Sturmfels
3826b6fb66
The advantage of this approach is that the production and dev configurations are in version control, so there's less opportunity for surprises. As advocated by Jacob Kaplan-Moss (OSCON 2011) and Two Scoops of Django book. |
||
---|---|---|
bin | ||
conservancy | ||
deploy | ||
.dockerignore | ||
.gitignore | ||
AGPLv3 | ||
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
To run the tests, install pytest-django
and run pytest:
python3 -m pip install pytest-django
python3 -m pytest
Then run:
python3 manage.py migrate
python3 manage.py runserver
There is also a Dockerfile available if that's more convenient. See that file for details.
Deploying
To deploy, run bin/deploy
. This requires SSH access to hickory.sfconservancy.org
.
Link checking
To check for broken links, log on to hickory.sfconservancy.org
and run
linkchecker https://sfconservancy.org/
.
Note that the Apache configuration has a significant number of aliases and redirects for historic URL changes which means that linkchecker may not run cleanly in local development.