bobintetley / asm3

Ten program jest objęty warunkami GNU General Public Licence v3.Zobacz plik LICENSE w tym katalogu, aby uzyskać szczegółowe informacje.

Zależności

Jeśli używasz systemu opartego na Debianie (np.: Ubuntu), to poniższe czynności zainstalują całe oprogramowanie potrzebne do uruchomienia ASM. Jeśli używasz pakietu debheltermanager3, ma on już ustawione zależności dla tych programów i zainstaluje je za Ciebie.

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

Dodatkowe, nieobowiązkowe pakiety:

  • apt-get install python3-memcache memcached (dla sesji wieloprocesowych)
  • apt-get install imagemagick (do skalowania/kompresji plików PDF w celu zaoszczędzenia na pamięci)
  • apt-get install imagemagick (do skalowania/kompresji plików PDF w celu zaoszczędzenia na pamięci)
  • apt-get.get install wkhtmltopdf (do tworzenia plików PDF z szablonów dokumentów HTML)
  • apt-get install python3-xhtml2pdf (czysta lib Pythona do tworzenia plików PDF z szablonów dokumentów HTML)
  • apt-get install python3-reportlab (do tworzenia PDF-ów z etykietami pocztowymi)
  • apt-get install python3-requests (potrzebny do komunikacji HTTP z innymi usługami wydawniczymi)
  • apt-get install python3-boto3 (potrzebny do przechowywania mediów w Amazon S3)
  • pip/pip3 install stripe (do żądania płatności przez Stripe)

Pakiety niezbędne do budowy, statycznych kontrolerów, instalatorów i podręczników:

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

Node i npm są używane do transpilacji kodu javascript dla starszych przeglądarek ilintowania plików javascript. Aby zainstalować wszystkie zależności javascript w czasie budowania, wykonaj to polecenie w folderze źródłowym:

  • npm install

Jeśli używasz Debiana i chcesz się rozwijać, możesz użyć „make deps „jako wygodnego sposobu na zainstalowanie potrzebnych zależności.

Debian python3-webpy

Wersja web.py obecnie spakowana w Debianie Buster (i prawdopodobnie w Ubuntu) jako python3-webpy ma błąd. Nie może obsługiwać statycznej zawartości i będzie działać tylko wtedy, gdy wdrożysz swoją aplikację z mod_wsgi, uwsgi, itp.

Możesz to naprawić ręcznie edytując/usr/lib/python3/dist-packages/web/httpserver.py i dodając nową linięelf.directory = os.getcwd() w linii 198 na dole funkcji initfunction, w ten sposób:

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

Nie potrzebujesz tej poprawki, jeśli wdrażasz swoją aplikację, aby działała zApache zgodnie z zaleceniami, dotyczy to tylko uruchamiania samodzielnego serwera viacode.py z wiersza poleceń.

W środowisku programistycznym możesz uruchomić instancję testową na porcie 5000 z:

make test

Logowanie

ASM domyślnie loguje się do uniksowego obiektu syslog USER (/var/log/user.log dla większości instalacji). Można to zmienić w konfiguracji.

Konfigurowanie ASM

Jeśli używałeś pakietu debian, edytuj plik /etc/asm3.conf

Jeśli nie, skopiuj scripts/asm3.conf.example do /etc/asm3.conf, a następnie edytuj go.

Ustaw następujące wartości:

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)

Jeśli używasz MySQL lub POSTGRESQL, upewnij się, że wykonałeś polecenie CREATE DATABASE i baza danych już istnieje (schemat może być jednak pusty).

ASM będzie szukał swojego pliku konfiguracyjnego w tej kolejności, aż go znajdzie:

  1. W zmiennej środowiskowej o nazwie ASM3_CONF
  2. W $INSTALL_DIR/asm3.conf (folder, w którym zainstalowane są moduły asm3 python)
  3. W $HOME/.asm3.conf (katalog domowy użytkownika korzystającego z asm3)
  4. W /etc/asm3.conf

Ustawianie Apache/WSGI

Ustaw Apache do obsługi aplikacji.

Pakiet Debiana w wersji 44 ma libapache2-mod-wsgi-py3 jako zależność i zainstaluje Apache 2, jeśli nie masz go jeszcze dostępnego.

Dla starszych wersji, zainstaluj Apache’a z:

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

Od wersji 44, pakiet będzie także zawierał plik site/etc/apache2/sites-available/asm3.conf z następującą zawartością:

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

Dla starszych wersji, będziesz musiał utworzyć ten plik ręcznie.

Gdy Apache jest zainstalowany i masz plik strony, aby aktywować ASM, uruchom:

a2enmod wsgia2ensite asm3service apache2 restart

Teraz powinieneś być w stanie odwiedzić ASM pod adresem http://localhost/asm3

Tworzenie domyślnej bazy danych

Po uruchomieniu usługi ASM odwiedź http://localhost/asm3/databas, aby utworzyć schemat bazy danych (wybranie tylko http://localhost/asm3 przekieruje tam, jeśli nie została jeszcze utworzona żadna baza danych).

Codzienne zadania

ASM ma partię procedur, które muszą być uruchamiane każdego dnia. Powinny one być uruchamiane na kilka godzin przed rozpoczęciem wprowadzania danych na dany dzień.

Rutyny te obejmują przeliczanie zdenormalizowanych danych, takich jak wiek zwierząt, czas przebywania w schronisku, aktualizację listy oczekujących i publikację danych na zewnątrz.

Aby je uruchomić, upewnij się, że środowisko jest ustawione jak poprzednio i uruchompython3 cron.py all

Zobacz plik cron.py, aby uzyskać więcej informacji na temat parametrów trybu do uruchamiania tylko określonych zadań.

Pakiet Debiana automatycznie dodaje codzienne zadania do /etc/cron.daily

.