Hvordan utvikle på UKEavvik
Sette opp utviklings-instans
Få en lokal kopi
Man setter gjerne opp en utviklings-instans på cirkus, og vi ønsker en url alá https://erlendps-avvik.uka.no
Først tar vi en klone av master-branchen.
BRUKERNAVN@cirkus:~/dev$ git clone gitea@gitea.samfundet.no:ITK/avvikuka.git
Kopier local.py fra en annen som utvikler:
BRUKERNAVN@cirkus:~/dev$ cp /home/cassarossa/itk/erlendps/dev/avvikuka/avvikuka/settings/local.py avvikuka/avvikuka/settings/local.py
Lag virtualenvironment, og installer pakker
virtualenv -p $(which python3) --system-site-packages venv && source venv/bin/activate pip install -r requirements_dev.txt
ACL-er
Husk å sette opp riktige rettigheter ved å følge noden acl permissions
Kjøre på cirkus
I resten av noden skal BRUKERNAVN byttes ut med ditt brukernavn.
Apache-konfigurasjon
Kopier en fungerende config fra en annen på cirkus, og bytt ut brukernavnet deres med ditt eget alle steder det står. Apache-config-filene ligger i /etc/apache2/sites-available/ Pass på at DocumentRoot er riktig.
AssignUserID skal settes til uka-httpd uka-web
For å legge til denne i sites-enabled bruker vi følgende:
bruker@maskin:~$ sudo a2ensite innsida-BRUKERNAVN.uka.no
Før apacheconfigen lastes inn, må vi legge til en DNS-oppføring.
DNS
Følg instruksjonene i DNS-noden.
Reload Apacheconfigen:
BRUKERNAVN@cirkus:~$ sudo systemctl reload apache2
Kerberos
Du har kanskje gjort det allerede, og innsett at passord/brukernavnet ditt ikke virker. Vi må sette opp egen Kerberos-keytab for utviklings-instansen din.
Under kan det være greit å godta defaults. Følg det som står i "Opprette Kerberos-keytab" i autentisering_og_autorisering-artikkelen
Pass på at Apache-configen bruker riktig AuthType og keytab.
uwsgi
Nå må vi opprette en uwsgi config-fil. Kopier en annen person sin, bytt ut brukernavnet deres med ditt eget alle steder det står og endre den slik at den bruker din dev-instans.
BRUKERNAVN@cirkus:~$ cd /etc/uwsgi/apps-available BRUKERNAVN@cirkus:~$ cp avvik-erlendps.uka.no.ini avvik-BRUKERNAVN.uka.no.ini BRUKERNAVN@cirkus:~$ cd /etc/uwsgi/apps-enabled.custom BRUKERNAVN@cirkus:~$ ln -s /etc/uwsgi/apps-available/avvik-BRUKERNAVN.uka.no.ini avvik-BRUKERNAVN.uka.no.ini
Av sikkerhetsgrunner er det også viktig å sette uid og gid i configen til riktig bruker avhengig av hvilken side det er snakk om, eks uka sider er uid=uka-httpd, og gid=uka-web, tilsvarende for ufs er uid=ufs-httpd, og gid=ufs-web. Dette er fordi vi ikke vil ha uwsgi instanser kjørende som din personelige bruker siden denne har sudo tilgang.
Da må du også passe på at gruppen, eks uka-web har lesetilgang til kildekoden. NB kun gruppen uka-web skal ha lesetilgang, ikke uka-httpd.
Så må vi fortelle uwsgi om instansen din.
bruker@cirkus:~$ sudo systemctl enable uwsgi-custom@avvik-BRUKERNAVN.uka.no bruker@cirkus:~$ sudo systemctl start uwsgi-custom@avvik-BRUKERNAVN.uka.no
https
Vi har lyst til å bruke https, se noden om Let's Encrypt
Englesk på UKEavvik
Det er støtte for engelsk på UKEavvik. Man kan se eksempler på hvordan man markerer tekst for oversetting i kodebasen. Når man har markert tekst, hent ut språket ved management kommandoen extract_languages:
(venv) BRUKERNAVN@cirkus:~/dev/avvikuka$ python manage.py extract_languages
Send over teksten som skal bli oversatt til HMS (de ligger i .po filer), og når du får det tilbake, sett inn oversettelse i .po filene, og kompiler språket:
(venv) BRUKERNAVN@cirkus:~/dev/avvikuka$ python manage.py compile_languages
Når du har utviklet det du vil
Når du har utviklet det du vil og testet at det fungerer, commit endringene dine og push til main.
Rulle ut ny versjon
Først naviger til produksjonkildekoden
BRUKERNAVN@cirkus:~$ cd /var/www/uka.no/avvik/uno
Deretter må vi bytte bruker til uka-httpd for å pulle fra main:
BRUKERNAVN@cirkus:/var/www/uka.no/avvik/uno$ sudo su -s /bin/bash uka-httpd uka-httpd@cirkus:/var/www/uka.no/avvik/uno$ git pull
Om committen introduserer databasemigreringer eller nye statisk filer må dette også håndteres:
uka-httpd@cirkus:/var/www/uka.no/avvik/uno$ source venv/bin/activate uka-httpd@cirkus:/var/www/uka.no/avvik/uno$ python manage.py migrate uka-httpd@cirkus:/var/www/uka.no/avvik/uno$ python manage.py collectstatic
Gå ut av skallet, og restart uwsgi-instansen;
BRUKERNAVN@cirkus:~$ sudo systemctl restart uwsgi-custom@avvik.uka.no
Lenker: Start
Epost: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2023-08-20 15:41 | Revisjon: 4 (historie, blame) | Totalt: 1905 kB | Rediger