bobintetley / asm3

Detta program omfattas av villkoren i GNU General Public Licence v3.Se filen LICENSE i den här katalogen för detaljer.

Beroenden

Om du använder ett Debian-baserat system (t.ex. Ubuntu) kommer följande attinstallera all programvara du behöver för att köra ASM. Om du använder deb-paketet thesheltermanager3 så har det redan beroendeförhållanden för dessa och kommer att installera dem åt dig.

  • apt-get install make python3 python3-webpy python3-pil python3-mysqldb python3-psycopg2

Extra, icke obligatoriska paket:

  • apt-get install python3-memcache memcached (för multiprocess-sessioner)
  • apt-get install imagemagick (för att skala/komprimera PDF-filer för att spara på lagringsutrymme)
  • apt-getget install wkhtmltopdf (för att skapa PDF-filer från HTML-dokumentmallar)
  • apt-get install python3-xhtml2pdf (rent Python-bibliotek för att skapa PDF-filer från HTML-dokumentmallar)
  • apt-get install python3-reportlab (för att skapa PDF-filer för postenkäter)
  • apt-get install python3-requests (behövs för HTTP-kommunikation med andra publiceringstjänster)
  • apt-get install python3-boto3 (behövs för medielagring på Amazon S3)
  • pip/pip3 install stripe (för att begära betalningar via Stripe)

Paket som behövs för att bygga, statiska kontrollanter, installationsprogram och handböcker:

  • apt-get install exuberant-ctags nodejs npm pychecker python3-sphinxpython3-sphinx-rtd-theme texlive-latex-base texlive-latex-extra latexmk

Node och npm används för att transpilera javascriptkod för äldre webbläsare ochlinting av javascriptfiler. För att installera alla javascriptberoenden under byggtiden kör du det här kommandot i källkodsmappen:

  • npm install

Om du använder Debian och vill utveckla kan du använda ”make deps ”som ett bekvämt sätt att installera de nödvändiga beroendena.

Debian python3-webpy

Den version av web.py som för närvarande paketeras i Debian Buster (och möjligen Ubuntu) som python3-webpy har ett fel. Den kan inte servera statiskt innehåll och fungerar endast om du distribuerar din applikation med mod_wsgi, uwsgi, etc.

Du kan åtgärda det manuellt genom att redigera/usr/lib/python3/dist-packages/web/httpserver.py och lägga till den nya radenelf.directory = os.getcwd() på rad 198 längst ner i initfunktionen, så här:

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()

Du behöver inte denna korrigering om du distribuerar din applikation så att den körs medApache som rekommenderat, detta gäller endast om du kör en fristående server viacode.py från kommandoraden.

I en utvecklingsmiljö kan du starta en testinstans på port 5000 med:

make test

Loggning

ASM loggar som standard till Unix syslog USER-anläggningen (/var/log/user.log för de flesta installationer). Detta kan ändras i konfigurationen.

Konfigurera ASM

Om du använde debian-paketet redigerar du filen /etc/asm3.conf

Om du inte gjorde det kopierar du scripts/asm3.conf.example till /etc/asm3.conf och redigera den sedan.

Inställ följande värden:

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)

Om du använder MySQL eller POSTGRESQL, se till att du har utfärdat en CREATE DATABASE och att databasen redan finns (schemat kan dock vara tomt).

ASM letar efter sin konfigurationsfil i denna ordning tills den hittar en:

  1. I en miljövariabel som heter ASM3_CONF
  2. I $INSTALL_DIR/asm3.conf (mappen som asm3 pythonmoduler är installerade i)
  3. I $HOME/.asm3.conf (hemkatalogen för användaren som kör asm3)
  4. I /etc/asm3.conf

Inställning av Apache/WSGI

Inställer Apache så att programmet kan användas.

Den version 44 av Debianpaketet har libapache2-mod-wsgi-py3 som ett beroende och kommer att installera Apache 2 om du inte redan har det tillgängligt.

För äldre versioner installerar du Apache med:

apt-get install apache2 libapache2-mod-wsgi-py3

Från och med version 44 kommer paketet också att innehålla en webbplatsfil/etc/apache2/sites-available/asm3.conf med följande innehåll:

WSGIScriptAlias /asm3 /usr/lib/sheltermanager3/code.py/Alias /asm3/static /usr/lib/sheltermanager3/static<Directory /usr/lib/sheltermanager3> Require all granted</Directory>

För äldre versioner måste du skapa denna fil manuellt.

När Apache är installerad och du har site-filen, för att aktivera ASM, kör:

a2enmod wsgia2ensite asm3service apache2 restart

Du bör nu kunna besöka ASM på http://localhost/asm3

Skapa standarddatabas

När ASM-tjänsten har startat, besök http://localhost/asm3/databasför att skapa databasschemat (om du trycker på bara http://localhost/asm3 omdirigeras du dit om ingen databas har konfigurerats ännu).

Dagliga uppgifter

ASM har en rad rutiner som måste köras varje dag. De bör köras några timmar innan folk börjar mata in uppgifter för dagen.

Dessa rutiner omfattar omräkning av denormaliserade uppgifter som djurålder, tid i skyddsrum, uppdatering av väntelistan och publicering av uppgifter externt.

För att köra dem, se till att miljön är inställd som tidigare och körpython3 cron.py all

Se filen cron.py för mer information om lägesparametrar för att endast köra specifika uppgifter.

Debiopaketet lägger automatiskt till de dagliga uppgifterna i /etc/cron.daily