2023-09-20 02:28:43 +00:00
|
|
|
|
# Software Freedom Conservancy website
|
2023-09-07 12:59:23 +00:00
|
|
|
|
|
2024-07-22 00:32:41 +00:00
|
|
|
|
This is a Python/[Django](https://www.djangoproject.com/)-based website that
|
|
|
|
|
runs [sfconservancy.org](https://sfconservancy.org).
|
|
|
|
|
|
|
|
|
|
|
2023-09-20 02:28:43 +00:00
|
|
|
|
## Contributing
|
2014-12-05 15:18:17 +00:00
|
|
|
|
|
2015-12-22 00:57:01 +00:00
|
|
|
|
The canonical location for this repository is [on Conservancy’s
|
2024-10-17 00:34:04 +00:00
|
|
|
|
Forgejo instance](https://f.sfconservancy.org/Conservancy/website).
|
2014-12-05 15:18:17 +00:00
|
|
|
|
|
2023-09-07 12:59:23 +00:00
|
|
|
|
|
2023-09-20 02:28:43 +00:00
|
|
|
|
## License
|
2014-12-05 15:21:01 +00:00
|
|
|
|
|
|
|
|
|
The software included herein, such as the Python source files, are generally
|
2024-07-22 00:32:41 +00:00
|
|
|
|
licensed [AGPLv3](AGPLv3)-or-later. JavaScript source is generally
|
|
|
|
|
[GPLv3](GPLv3)-or-later. See the notices at the top of each Javascript file for
|
|
|
|
|
specific licensing details.
|
2014-12-05 15:21:01 +00:00
|
|
|
|
|
|
|
|
|
The content and text (such as the HTML files) is currently
|
|
|
|
|
[CC-BY-SA-3.0](CC-By-SA-3.0).
|
2014-12-05 15:18:17 +00:00
|
|
|
|
|
2010-09-26 22:00:53 +00:00
|
|
|
|
|
2023-09-20 02:28:43 +00:00
|
|
|
|
## Server configuration
|
2023-09-07 12:59:23 +00:00
|
|
|
|
|
2023-09-14 08:14:22 +00:00
|
|
|
|
Conservancy's webserver runs on a standard Debian installation. For
|
2024-07-22 00:32:41 +00:00
|
|
|
|
configuration requirements, see `deploy/install.yml`.
|
2010-09-26 22:00:53 +00:00
|
|
|
|
|
|
|
|
|
|
2023-09-20 02:28:43 +00:00
|
|
|
|
## 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
|
2023-09-14 08:14:22 +00:00
|
|
|
|
|
2023-10-26 02:22:45 +00:00
|
|
|
|
Python dependencies in `requirements.txt` are tied to the versions available in
|
|
|
|
|
Debian:
|
2023-09-07 12:59:23 +00:00
|
|
|
|
|
|
|
|
|
python3 -m pip install -r requirements.txt
|
2023-10-26 02:22:45 +00:00
|
|
|
|
|
2024-03-13 03:26:01 +00:00
|
|
|
|
To run the tests, install `pytest-django` and run pytest:
|
|
|
|
|
|
|
|
|
|
python3 -m pip install pytest-django
|
|
|
|
|
python3 -m pytest
|
|
|
|
|
|
2023-10-26 02:22:45 +00:00
|
|
|
|
Then run:
|
|
|
|
|
|
2024-03-13 03:26:01 +00:00
|
|
|
|
python3 manage.py migrate
|
|
|
|
|
python3 manage.py runserver
|
2023-09-07 12:59:23 +00:00
|
|
|
|
|
2023-10-26 02:22:45 +00:00
|
|
|
|
There is also a Dockerfile available if that's more convenient. See that file
|
|
|
|
|
for details.
|
|
|
|
|
|
2023-09-14 08:14:22 +00:00
|
|
|
|
|
2023-09-20 02:28:43 +00:00
|
|
|
|
## Deploying
|
2023-09-07 12:59:23 +00:00
|
|
|
|
|
2024-03-13 04:55:00 +00:00
|
|
|
|
To deploy, run `bin/deploy`. This requires SSH access to `hickory.sfconservancy.org`.
|
2023-10-26 02:22:45 +00:00
|
|
|
|
|
|
|
|
|
|
2024-03-13 04:55:00 +00:00
|
|
|
|
## Link checking
|
|
|
|
|
|
2024-03-20 04:54:18 +00:00
|
|
|
|
To check for broken links in production, run:
|
|
|
|
|
|
|
|
|
|
bin/linkcheck
|
2024-03-13 04:55:00 +00:00
|
|
|
|
|
|
|
|
|
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.
|