bobintetley / asm3
Tämä ohjelma on GNU General Public Licence v3:n ehtojen alainen.Katso tarkemmat tiedot tässä hakemistossa olevasta tiedostosta LICENSE.
Riippuvuudet
Jos käytät Debian-pohjaista järjestelmää (esim.: Ubuntu), asennat kaikki ASM:n käyttämiseen tarvitsemasi ohjelmat seuraavasti. Jos käytät thesheltermanager3 deb-pakettia, se on jo asettanut näitä varten riippuvuudet ja asentaa ne puolestasi.
- apt-get install make python3 python3-webpy python3-pil python3-mysqldb python3-psycopg2
Ylimääräiset, ei-pakolliset paketit:
- apt-get install python3-memcache memcached (usean prosessin istuntoja varten)
- apt-get install imagemagick (PDF-tiedostojen skaalaamiseen/pakkaamiseen tallennustilan säästämiseksi)
- apt-get install imagemagick (PDF-tiedostojen skaalaamiseen/pakkaamiseen tallennustilan säästämiseksi)
- apt-get install wkhtmltopdf (PDF-tiedostojen luomiseen HTML-dokumenttimalleista)
- apt-get install python3-xhtml2pdf (puhdas Python lib PDF-tiedostojen luomiseen HTML-dokumenttimalleista)
- apt-get install python3-reportlab (postitusetiketin PDF-tiedostojen luomiseen)
- apt-get install python3-requests (tarvitaan HTTP-kommunikaatioon muihin julkaisupalveluihin)
- apt-get install python3-boto3 (tarvitaan Amazon S3:n mediatallennusta varten)
- pip/pip3 install stripe (Stripen kautta tapahtuvaan maksujen pyytämiseen)
Rakentamiseen tarvittavia paketteja, Staattiset tarkistajat, asentajat ja käsikirjat:
- apt-get install exuberant-ctags nodejs npm pychecker python3-sphinxpython3-sphinx-rtd-theme texlive-latex-base texlive-latex-extra latexmk
Nodea ja npm:ää käytetään javascript-koodin transpilointiin vanhemmille selaimille ja javascript-tiedostojen tulostamiseen. Jos haluat asentaa kaikki build time javascript-riippuvuudet,suorita tämä komento lähdekansioon:
- npm install
Jos käytät Debiania ja haluat tehdä kehitystyötä, voit käyttää ”make deps”-ohjelmaa kätevänä tapana asentaa tarvittavat riippuvuudet.
Debian python3-webpy
Debian Busterissa (ja mahdollisesti Ubuntussa)tällä hetkellä python3-webpy:nä paketoidussa web.py-versiossa on virhe. Se ei voi palvella staattista sisältöä ja toimii vainjos otat sovelluksesi käyttöön mod_wsgi:llä, uwsgi:llä jne.
Voit korjata sen manuaalisesti muokkaamalla/usr/lib/python3/dist-packages/web/httpserver.py:tä ja lisäämällä siihen uudet rivitelf.directory = os.getcwd() riville 198 initfunctionin alareunaan näin:
class StaticApp(SimpleHTTPRequestHandler): """WSGI application for serving static files.""" def __init__(self, environ, start_response): self.headers = self.environ = environ self.start_response = start_response self.directory = os.getcwd()
Et tarvitse tätä korjausta, jos otat sovelluksesi käyttöön ajettavaksiApachen kanssa suositusten mukaisesti, tämä koskee vain erillisen palvelimen ajamista viacode.py:tä komentoriviltä.
Kehitysympäristössä voit käynnistää testi-instanssin portissa 5000:llä:
make test
Kirjaaminen
ASM kirjaa oletusarvoisesti lokit Unixin syslog-käyttäjän tilaan (/var/log/user.log useimpien asennusten osalta). Tätä voidaan muuttaa konfiguraatiossa.
ASM:n konfigurointi
Jos käytit debian-pakettia, muokkaa tiedostoa /etc/asm3.conf
Jos et käyttänyt, kopioi scripts/asm3.conf.example tiedostoon /etc/asm3.conf ja muokkaa sitä sitten.
Säädä seuraavat arvot:
asm3_dbtype = (POSTGRESQL, MYSQL or SQLITE)asm3_dbhost = (hostname of your server)asm3_dbport = (port of your server if using tcp)asm3_dbusername = asm3_dbpassword = asm3_dbname = (name of the database, can be file path if type is SQLITE)
Jos käytät MySQL:ää tai POSTGRESQL:ää, varmista, että olet antanut CREATE DATABASE ja tietokanta on jo olemassa (skeema voi kuitenkin olla tyhjä).
ASM etsii konfigurointitiedostoa tässä järjestyksessä, kunnes se löytää sellaisen:
- Ympäristömuuttujassa nimeltä ASM3_CONF
- Kansiossa $INSTALL_DIR/asm3.conf (kansio, johon asm3:n python-moduulit on asennettu)
- Kansiossa $HOME/.asm3.conf (asm3:a käyttävän käyttäjän kotihakemisto)
- In /etc/asm3.conf
Apachen/WSGI:n määrittäminen
Apachen määrittäminen palvelemaan sovellusta.
Version 44 Debian-paketissa on libapache2-mod-wsgi-py3 riippuvuussuhteena, ja se asentaa Apache 2:n, jos sinulla ei ole sitä jo saatavilla.
Vanhemmissa versioissa Apache asennetaan:
apt-get install apache2 libapache2-mod-wsgi-py3
Versiosta 44 alkaen paketti sisältää myös sivustotiedoston/etc/apache2/sites-available/asm3.conf seuraavalla sisällöllä:
WSGIScriptAlias /asm3 /usr/lib/sheltermanager3/code.py/Alias /asm3/static /usr/lib/sheltermanager3/static<Directory /usr/lib/sheltermanager3> Require all granted</Directory>
Vanhemmissa versioissa tämä tiedosto on luotava käsin.
Kun Apache on asennettu ja sinulla on site-tiedosto, voit aktivoida ASM:n suorittamalla:
a2enmod wsgia2ensite asm3service apache2 restart
Sinun pitäisi nyt pystyä vierailemaan ASM:ssä osoitteessa http://localhost/asm3
Oletustietokannan luominen
Sen jälkeen, kun ASM-palvelu on käynnistynyt, vieraile osoitteessa http://localhost/asm3/databasluodaksesi tietokantakaavion (pelkän http://localhost/asm3:n lyöminen ohjaa sinut sinne, jos mitään tietokantaa ei ole vielä perustettu).
Päivittäiset tehtävät
ASM:llä on joukko rutiineja, jotka on suoritettava joka päivä. Nämä rutiinit on suoritettava muutama tunti ennen kuin ihmiset alkavat syöttää tietoja kyseiselle päivälle.
Näihin rutiineihin kuuluu denormalisoitujen tietojen, kuten eläinten iän ja eläinsuojassa oloajan, uudelleenlaskenta, odotuslistan päivittäminen ja tietojen julkaiseminen ulkoisesti.
Sen suorittamiseksi varmista, että ympäristö on asetettu kuten aiemmin ja suoritapython3 cron.py all
Katso cron.py-tiedostosta lisätietoja tilaparametreista, joiden avulla voit suorittaa vain tiettyjä tehtäviä.
Debian-paketti lisää automaattisesti päivittäiset tehtävät tiedostoon /etc/cron.daily
.