svSite should let you get a site running with a (somewhat) limited amount of work. But perhaps there are still some details you want to change. And you can! Given some knowledge of Django (features) and/or html/css/js (layout), you can create your copy of the code and occasionally get updates from the main project.
And perhaps your changes turn out great, and you want to share them. That is greatly appreciated, and this page tells you how to do it!
You can contribute by adding to the project! This includes:
You will need to make sure you can push code to Github by setting up ssh keys. Then fork the svsite repository and follow these steps.
You will need
pip, a database (
sqlite3 is default and easy, but slow),
elasticsearch and some SSL packages. Just type:
sudo apt-get install python3 sqlite3 python-virtualenv git build-essential libssl-dev libffi-dev python-dev elasticsearch
Get your copy of the svsite code:
git clone firstname.lastname@example.org:YOUR_SVSITE_FORK.git
Go to the directory, start a virtualenv and install:
virtualenv -p python3 env source env/bin/activate pip install --requirement dev/pip_freeze.txt pip install --no-deps --editable .
To create the database and superuser:
python3 source/manage.py migrate python3 source/manage.py createsuperuser
You might want to run the tests:
Then you can start the server on localhost:
python3 source/manage.py runserver_plus --settings=base.settings_development
You can now open the site in a browser. It is running on localhost over https on port 8443.
www. is prepended, you can use a domain that works with that prefix (not
localhost:8443). For example,
This refers to your localhost (127.0.0.1). The first time you will probably need to add a security exception, as this is a debug SSL certificate.
Now you are ready to make your chances!
After you are done and have tested your changes (and converted space-indents to tabs), you can suggest it for inclusion into svsite by means of a pull request
There is a minimal api for building external services, which is described in Integration API. Such additions are welcome, you’re encouraged to notify us when you complete one!
Automatic testing is currently very limited for the project. We use
py.test ones, which can be stored in
source/$app/test. It’s greatly appreciated if you add more, for your own additions or for existing code. It’ll help ensure the quality of the codebase!