Installasjon ============ Her beskrives hvordan CMS-et installeres under nginx med uwsgi som WSGI-server. Oppgraderinger -------------- Oppgraderinger gjøres slik: :: sudo -u wagtail -i cd /opt/wagtail make deploy Førstegangsinstallasjon ----------------------- Opprett brukerkonto ~~~~~~~~~~~~~~~~~~~ Opprett en egen brukerkonto for wagtail: :: addgroup --system wagtail adduser --system --home /home/wagtail --shell /bin/bash \ --gecos "Wagtail Server" --disabled-password \ --ingroup wagtail wagtail Generer SSH-nøkler ~~~~~~~~~~~~~~~~~~ Generer SSH-nøkler for denne brukerkontoen: :: sudo -u wagtail ssh-keygen -C wagtail@$(hostname) Denne nøkkelen må gis tilgang til wagtail-repoet: Dette gjøres på GitHub, under `Deploy keys `_. Opprett applikasjonskatalog ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Opprett applikasjonskatalog og gjør denne skrivbar for wagtail-brukerkontoen: :: mkdir /opt/wagtail chown wagtail:wagtail /opt/wagtail Sett opp utviklingsmiljø ~~~~~~~~~~~~~~~~~~~~~~~~ Sett deretter opp et utviklingsmiljø som beskrevet i :ref:`sette_opp_utviklingsmiljo` og :ref:`konfigurere_utviklingsmiljo`. **OBS OBS! VIKTIG:** Husk å sette ``DEBUG=False``, og å sette ny ``SECRET_KEY``. Wagtail-brukerkontoen har ikke administratorrettigheter, så kommandoer som begynner med ``sudo`` må kjøres som ``root``. De andre kommandoene kjøres som ``wagtail``-brukeren. Environmentvariablene bør settes automatisk ved innlogging. Passende ``~/.bash_profile``: :: test -f ~/.bashrc && source ~/.bashrc Passende ``~/.bashrc``: :: export PATH="$HOME/.local/bin:$PATH" Last ned kildekoden ~~~~~~~~~~~~~~~~~~~ Klone repositoriet til ønsket sted (her ``/opt/wagtail``), og pass på at ``.venv``-katalogen finnes før ``pipenv`` kjøres: :: git clone git@github.com:imfdrift/wagtail /opt/wagtail cd /opt/wagtail mkdir .venv pipenv sync --dev Hvis ``.venv``-katalogen mangler, vil ``pipenv`` opprette python-miljøet under ``~/.local/share/virtualenvs/``, med et uforutsigbart navn. Vi trenger å vite fullstendig sti til python-miljøet (denne må angis i ``uwsgi.ini``), og ønsker derfor at python-miljøet havner i ``/opt/wagtail/.venv/``. Opprett database ~~~~~~~~~~~~~~~~ Produksjonsdatabasen heter ``wagtail_prod``. Utviklingsmiljøene har databaser med navn på formen ``wagtail_dev_HOSTNAVN``, evt. ``wagtail_dev_HOSTNAVN_PORTNR`` hvis man har flere instanser på samme maskin. SQL-brukerkontoen har samme navn som databasen. På postgres-tjeneren: :: sudo -u postgres createuser -P wagtail_prod sudo -u postgres createdb wagtail_prod Generer et langt, tilfeldig passord og bruk det samme passordet i ``DATABASE_URL`` i ``.env``-fila. Opprett databasestruktur ~~~~~~~~~~~~~~~~~~~~~~~~ Aktiver python-miljøet og initialiser databasen: :: cd /opt/wagtail pipenv shell cd src ./manage.py migrate ./manage.py createcachetable ./manage.py createsuperuser exit .. note:: TODO Husk ``chown www-data ~www-data`` hvis applikasjonen kjøres under webserver-brukerkontoen (lualatex trenger å skrive til font-cache på hjemmekatalogen). Dette er ikke nødvendig hvis den kjører som wagtail-brukerkontoen. Gjør førstegangs deploy ~~~~~~~~~~~~~~~~~~~~~~~ Generer staticfiles og dokumentasjon: :: cd /opt/wagtail make collectstatic docs Installer systemd-tjeneste ~~~~~~~~~~~~~~~~~~~~~~~~~~ Systemd-tjenesten installeres som ``root``: :: cp /opt/wagtail/wagtail.service /etc/systemd/system/ systemctl enable wagtail systemctl start wagtail For at ``wagtail``-brukeren skal kunne restarte tjenesten legger vi inn en ``/etc/sudoers.d/wagtail`` med innhold: :: wagtail ALL=(root) NOPASSWD: /bin/systemctl restart wagtail wagtail ALL=(root) NOPASSWD: /bin/systemctl reload wagtail wagtail ALL=(root) NOPASSWD: /bin/systemctl status wagtail wagtail ALL=(root) NOPASSWD: /bin/systemctl start wagtail wagtail ALL=(root) NOPASSWD: /bin/systemctl stop wagtail Konfigurer nginx ~~~~~~~~~~~~~~~~ Oppsett av nginx er utenfor omfanget av denne artikkelen, men relevant del av konfigurasjon er: :: location / { include uwsgi_params; uwsgi_pass unix:/tmp/wagtail.sock; } location /docs { alias /opt/wagtail/docs/_build/html/; autoindex off; } location /static { alias /opt/wagtail/static; autoindex off; } Konfigurer Feide-innlogging ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Hvis instansen skal bruke Feide til pålogging, må det konfigureres en tjeneste i Dataporten. Følg instruksjonene på :ref:`feide`. Logg deretter inn en gang med din personlige Feide-brukerkonto. Etterpå kan du logge inn igjen som superbrukeren (som ble opprettet med ``manage.py createsuperuser``) og tilordne administratorrettigheter til Feide-brukeren din. Når dette er gjort kan den lokale Django-superbrukeren slettes, slik at all administrasjon skjer via Feide-innloggede brukere. Sette opp første nettsted ~~~~~~~~~~~~~~~~~~~~~~~~~ Logg inn i Wagtail admin og gå til Settings -> Sites. Erstatt eksisterende site ``localhost`` med maskinens hostnavn eller tjenestenavn (f.eks ``wagtail.math.ntnu.no``). Kryss av for *Is default site*. Sette opp tilleggsnettsteder ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Følg framgangsmåten beskrevet på :ref:`nytt_nettsted`.