Software Freedom Conservancy's Website
Find a file
Ben Sturmfels 55ee5b53b6
Add a basic script to "push" deploy
Currently updates are published by the "conservancy-www-update.sh" that does a
"pull" deploy with a 5-minutely job that runs on the web server. This doesn't
run `migrate`, `collectstatic` or restart the application, so certain types of
changes don't take effect, and even template changes often don't due to caching
template loader.

This script allows you to deploy more significant updates on-demand, but
requires SSH access.
2024-02-23 15:39:54 +11:00
bin/deploy Add a basic script to "push" deploy 2024-02-23 15:39:54 +11:00
conservancy poddjango: Further lint fixes 2024-02-23 15:06:59 +11:00
.dockerignore Add .dockerignore to ignore everything except requirements.txt 2023-10-26 12:44:23 +11:00
.gitignore add vizio pdfs to gitignore, they are on webserver 2023-11-02 11:37:41 -07:00
AGPLv3 License texts 2010-09-26 18:53:20 -04:00
ASPEN.md added ASPEN.md document 2015-02-27 12:12:12 -06:00
CC-By-SA-3.0 Added CC-By-SA-3.0 license 2010-10-03 21:59:53 -04:00
deploy.sh Add a basic script to "push" deploy 2024-02-23 15:39:54 +11:00
Dockerfile-debian-bookworm Improve Docker docs 2024-02-02 13:38:27 +11:00
ISC_LICENSE License texts 2010-09-26 18:53:20 -04:00
manage.py Rename "www" directory to "conservancy" 2023-10-25 13:01:21 +11:00
README.md Extend docs for local development and production deploy 2023-10-26 13:22:45 +11:00
requirements.txt Add .dockerignore to ignore everything except requirements.txt 2023-10-26 12:44:23 +11:00
TODO.md podjango: Fix linting warnings 2024-02-23 15:02:04 +11:00

Software Freedom Conservancy website

Contributing

The canonical location for this repository is on Conservancys 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