Git Product home page Git Product logo

kapsi-django-ohje1's Introduction

Django-sovellusten ajaminen Kapsissa

Tämä ohje kuvaa yhden tavan ajaa Django-sovelluksia Kapsissa. Ohjeessa on huomioitu vuoden 2017 verkkosivu-uudistuksen tuomat muutokset.

Tässä ohjeessa pystytetään django-wiki julkiseen osoitteeseen https://<tunnus>.kapsi.fi/kapsi-django-ohje. Sovelluspalvelimena toimii gunicorn.

Pythonin, Djangon ja muiden kirjastojen versiot on valittu niin, että ne toimivat Kapsissa. Huolehdi itse, että "tuotantokäytössä" kirjastot ovat ajan tasalla niin vältyt tietoturvaongelmilta.

Kirjaudu webapp1-palvelimelle

Aja kaikki komennot webapp1-palvelimella, ellei muuta mainita.

ssh <tunnus>@webapp1.kapsi.fi

Ympäristön pystytys

Kloonaa tämä repo sites-hakemistoosi:

cd ~/sites/<tunnus>.kapsi.fi/
git clone https://github.com/suniala/kapsi-django-ohje.git

Luo paikallinen Python-ympäristö:

cd kapsi-django-ohje
virtualenv -p python3.4 env

Asenna paikalliseen ympäristöön Django ja django-wiki:

env/bin/pip install -r requirements.txt

Kokeile sovellusta

Laita sovelluksen asetukset kuntoon. Kopioi mallista oma asetustiedostosi:

cd ~/sites/<tunnus>.kapsi.fi/kapsi-django-ohje/
cp kirja/settings.py.tmpl kirja/settings.py

Täytä puuttuvat kohdat kirja/settings.py -tiedostoon. Löydät ne hakemalla sanaa "TODO".

Pystytä sitten tietokanta (mallikonfiguraatiossa käytetään paikkallista sqlite-kantaa). Huomaa, että kätevyyden vuoksi manage.py viittaa paikallisen ympäristömme python-komentoon, eikä sitä tarvitse erikseen sanoa tässä:

cd ~/sites/<tunnus>.kapsi.fi/kapsi-django-ohje/
./manage.py migrate

Käynnistä sitten sovelluspalvelin. Tässä vaiheessa voit arpoa porttinumeron itse 30000 ja 40000 väliltä:

env/bin/gunicorn \
    --bind webapp1.n.kapsi.fi:<portti> \
    --chdir ~/sites/<tunnus>.kapsi.fi/kapsi-django-ohje \
    --pythonpath kirja \
    wsgi

Jos gunicorn käynnistyy ilman virheitä, pitäisi sovellukseen päästä kiinni Kapsin sisältä, esimerkiksi lakka-palvelimelta:

lynx http://webapp1.n.kapsi.fi:<portti>/kapsi-django-ohje/

Voit nyt sammuttaa gunicornin niin jatketaan säätämistä.

Pääsy sovellukseen internetistä

Internetistä ei pääse webapp1-palvelimella pyörivään sovellukseen suoraan käsiksi.

Yhteyksiä yhdistyksen palvelimille muualta internetistä on rajoitettu palomuurilla. Tämä estää palvelinohjelmien ajamisen ja IRC:n DCC-yhteydet. Jäsenet voivat kuitenkin pyytää ylläpidolta portteja käyttöönsä. https://www.kapsi.fi/palvelut/portit.html

Pyydä siis itsellesi porttia lähettämällä sähköpostiä ylläpidolle. Vastauksessa voi mennä pari päivää.

Kun ylläpito kertoo sinulle portin numeron, voit tehdä tarvittavan Apache-konfiguraation. Apache toimii siis proxynä, joka välittää internetistä tulevat pyynnöt sisäverkossa sovelusspalvelimellemme. Lisää tiedostoon sites/<tunnus>.kapsi.fi/www/.htaccess:

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/kapsi-django-ohje(.*)$
RewriteRule ^(.*)$ http://webapp1.n.kapsi.fi:<portti>/$1 [P]

Käynnistä gunicorn käyttäen saamaasi porttinumeroa ja mene selaimella osoitteeseen: https://<tunnus>.kapsi.fi/kapsi-django-ohje

Tässä kohti kuvat ja tyylit vielä puuttuvat sivulta. Jos näyttää muuten toimivalta, niin tehdään vielä viimeiset silaukset.

Viimeistely

Luo hakemistot tiedostojen jakamista varten. Nämä voi nimetä miten vaan mutta tässä on ollut ajatuksena, että static ja media-hakemistojen alla voisi olla useammankin sovelluksen tiedostoja:

mkdir -p ~/sites/<tunnus>.kapsi.fi/www/static/kapsi-django-ohje/
mkdir -p ~/sites/<tunnus>.kapsi.fi/www/media/kapsi-django-ohje/

Julkaise Django-sovelluksen tarvitsemat staattiset tiedostot:

cd ~/sites/<tunnus>.kapsi.fi/kapsi-django-ohje/
./manage.py collectstatic

Pääkäyttäjän tunnuksen voi luoda komentoriviltä. Tällä tunnuksella voi myös kirjautua django-wikiin. Luo tunnus:

./manage.py createsuperuser --username=<jokutunnus> --email=<jokusähköpostiosoite>

Tässä kohtaa kannattaa kokeilla gunicornin käynnistämistä uudestaan ja varmistaa, että sivustolla näkyy tyylit ja kuvat oikein. Kirjaudu sisään, luo uusi sivu, lataa sinne kuvatiedosto ja tarkista, että kuva näkyy tallennetulla sivulla. Näin varmistat, että myös media-hakemisto toimii.

Kokeile myös, että ylläpitosivusto toimii: https://<tunnus>.kapsi.fi/kapsi-django-ohje/yllapito

Sovelluspalvelimen ajaminen taustalla

Käynnistetään sovelluspalvelin cronilla. Kopioi malliskripti:

cd ~/sites/<tunnus>.kapsi.fi/kapsi-django-ohje/
cp bin/run-gunicorn.sh.tmpl bin/run-gunicorn.sh

Muokkaa skriptiin puuttuvat tiedot. Luo myös flock-komennon tarvitsema hakemisto:

mkdir ~/.lock

Ajasta skriptin ajo. Ajastus voidaan tehdä vaikka jokaiselle minuutille koska skripti huolehtii siitä, että gunicorn käynnistetään vain kerran. Aja crontab -e ja täydennä:

* * * * * ~/sites/<tunnus>.kapsi.fi/kapsi-django-ohje/bin/run-gunicorn.sh

Palaute

Palaute on tervetullutta vaikkapa Githubin kautta (issues, pull requests).

kapsi-django-ohje1's People

Contributors

suniala avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.