En intern wiki for Radio Revolt.
Dersom du ønsker å bidra må du først sette opp systemet lokalt, se Oppsett.
All kode og kommentarer i koden, samt commit-meldinger, skal være på engelsk.
- Gå til issues og finn en du har lyst til å jobbe på.
- Velg helst enn fra en milestone med forfall om ikke så veldig lenge.
- Kommenter i issuet at du jobber på det.
- Pass på at du er på develop-branchen lokalt.
- Lag en egen branch med navn: "issue#<issue ID>".
- Bytt til branchen du nettopp lagde og push den til github (slik at andre kan se at du jobber på den).
- Når du har fikset issuet, commit endringene med følgende medling: "<hva du har gjort>. Fixes #<issue ID>"
- Lag en pull request med branchen din, og develop-branchen som base.
Her er en detaljert beskrivelse på hvordan du kan kjøre systemet lokalt.
Før du begynner må du ha disse verktøyene:
- Python 3 - Programmeringsspråket wikien er skrevet i.
- Django - Rammeverket som er brukt i wikien.
- pip - Et pakkeinstallasjonsprogram for Python.
- git - Et versjonshåndteringsprogram.
- virtualenv - Et program for å generere et uviklingsmiljø wikien kan kjøre i.
###Oppsett
Hent kildekoden:
$ git clone [email protected]:RadioRevolt/dokuspokus.git
Sett opp et virituelt miljø:
$ virtualenv -p <filbane-til-python-3> venv
$ source venv/bin/activate
python --version
burde gi 3.4.0 eller nyere.
Installer avhengigheter:
$ pip install -r requirements.txt
Bygg databasen:
$ python manage.py migrate
Bygg søkeindekser:
$ python manage.py rebuild_index
Lag superbruker:
$ python manage.py createsuperuser
Det burde nå fungere å kjøre den med python manage.py runserver
. Du vil da kunne besøke wikien i nettleseren din på http://localhost:8000
Kommer snart
Vil helst ikke deploye med python manage.py runserver
. Bedre å bruke apache til
å serve.
Her brukers Apache med mod_wsgi for å deploye. Andre alternativer finnes, men dette er den enkleste.
Alle kommandoer og filer er kun veiledene.
Installer mod_wsgi:
$ apt-get install libapache2-mod-wsgi
Flytt dokuspokus til et fornuftig sted på serveren, f.eks. /srv/dokuspokus
Endre følgende i page/settings.py:
...
DEBUG = False
ALLOWED_HOSTS = ['*']
...
STATIC_ROOT = '/srv/dokuspokus/apache/static/'
Opprett mapper til apache-ting (legg dem gjerne til i .gitignore):
mkdir /srv/dokuspokus/apache/static/
mkdir /srv/dokuspokus/apache/logs/
mkdir /srv/dokuspokus/apache/conf/
mkdir /srv/dokuspokus/run/eggs/
Opprett to log-filer:
$ touch /srv/dokuspokus/apache/logs/error.log
$ touch /srv/dokuspokus/apache/logs/access.log
Lag WSGI-configurasjonsfilen '/srv/dokuspokus/apache/conf/wsgi.py':
import os
import sys
root_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))
sys.path.insert(0, root_path)
sys.path.insert(0, os.path.abspath(os.path.join(root_path, 'venv/lib/python3.4/site-packages/')))
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "page.settings")
application = get_wsgi_application()
Eksporter statiske filer:
$ python manage.py collectstatic
Lag en dokuspokus-bruker og -gruppe:
$ adduser --no-create-home dokuspokus
$ addgroup dokuspokus
$ usermod -aG dokuspokus dokuspokus
Endre rettighetene til dokuspokus-mappen:
$ chown -R dokuspokus:dokuspokus /srv/dokuspokus/
$ chmod -R 755 /srv/dokuspokus/
$ chmod -R 777 /srv/dokuspokus/apache/conf/
Lag en virtual host til wikien:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName wiki.radiorevolt.no
ServerAlias www.wiki.radiorevolt.no
CustomLog /srv/dokuspokus/apache/logs/access.log combined
ErrorLog /srv/dokuspokus/apache/logs/error.log
LogLevel warn
Alias /static/ /srv/dokuspokus/apache/static/
<Directory /srv/dokuspokus/apache/static/>
Require all granted
</Directory>
WSGIDaemonProcess wiki.radiorevolt.no user=dokuspokus group=dokuspokus processes=1 threads=15 maximum-requests=10000 python-path=/srv/dokuspokus/venv/lib/python3.4/site-packages python-eggs=/srv/dokuspokus/run/eggs
WSGIProcessGroup wiki.radiorevolt.no
WSGIScriptAlias / /srv/dokuspokus/apache/conf/wsgi.py
<Directory /srv/dokuspokus/apache/conf/>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
Restart apache:
$ service apache2 restart
Wikien burde nå være oppe og gå på wiki.radiorevolt.no