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 Sette opp utviklingsmiljø og Konfigurere utviklingsmiljø.
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
Obs
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å Feide-innlogging.
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å Legge til nytt nettsted.