bobintetley / asm3

このプログラムは GNU General Public Licence v3 の条項に従っています。詳細はこのディレクトリの LICENSE ファイルを見てください。 sheltermanager3 deb パッケージを使用している場合、これらの依存関係はすでに設定されており、あなたに代わってインストールします。

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

必須ではない余分なパッケージです。

  • apt-get install python3-memcache memcached (マルチプロセス・セッション用)
  • apt-get install imagemagick (PDF を拡大縮小/圧縮してストレージを節約)
  • apt-get install imagemagick (PDF を拡大縮小/圧縮してストレージを節約)
  • apt-get (マルチプロセス・セッション用のキャッシュ用)wkhtmltopdf (HTML ドキュメント テンプレートから PDF を作成する)
  • apt-get install python3-xhtml2pdf (HTML ドキュメント テンプレートから PDF を作成する Python の lib)
  • apt-getget install python3-reportlab (宛名ラベルPDF作成用)
  • apt-get install python3-requests (他の出版サービスへのHTTP通信に必要)
  • apt-get install python3-boto3 (Amazon S3メディアストレージに必要)
  • pip/pip3 install strike (Stripe による支払い要求用)

構築に必要なパッケージです。 静電気チェッカー、インストーラー、マニュアル。

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

Node と npm は古いブラウザ用の javascript コードをトランスタイルしたり javascript ファイルをリントするために使用されています。

  • npm install

Debian を使用していて開発を行いたい場合、必要な依存関係をインストールする便利な方法として “make deps” を使用することが可能です。

Debian python3-webpy

Debian Buster (そしておそらく Ubuntu) で現在 python3-webpy としてパッケージされている web.py のバージョンには欠陥があります。 静的なコンテンツを提供することができず、mod_wsgi や uwsgi などでアプリケーションを展開した場合のみ動作します。

手動で修正するには、/usr/lib/python3/dist-packages/web/httpserver.py を編集して新しい行 self.directory = os.html を追加することで可能です。getcwd() を initfunction の一番下の 198 行目に追加してください。

開発環境では、ポート 5000 でテストインスタンスを起動できます。

make test

Logging

ASM はデフォルトで Unix syslog USER 機能 (ほとんどのインストールでは /var/log/user.log) に記録します。 これは、設定で変更できます。

Configuring ASM

あなたが debian パッケージを使用した場合、ファイル /etc/asm3.conf

そうでない場合、 scripts/asm3.conf.example を /etc/asm3.conf にコピーしてください。

以下の値を設定します:

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)

MySQLまたはPOSTGRESQLを使用している場合、CREATE DATABASEを発行してデータベースがすでに存在していることを確認します(ただしスキーマは空でもよいです)。

ASM は設定ファイルを見つけるまで次の順序で探します:

  1. 環境変数 ASM3_CONF
  2. 内の $INSTALL_DIR/asm3.conf (asm3 python モジュールのインストール先)
  3. 内の $HOME/.asm3.conf (asm3を実行しているユーザのホームディレクトリ)
  4. In /etc/asm3.conf

Set up Apache/WSGI

アプリケーションを提供するApacheをセットアップしてください。

バージョン 44 の Debian パッケージは libapache2-mod-wsgi-py3 を依存関係に持ち、まだ Apache 2 が利用可能でない場合、それをインストールします。

古いバージョンでは、以下の内容で Apache をインストールします:

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

バージョン 44 では、パッケージはサイトファイル /etc/apache2/sites-available/asm3.conf も含みます:

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

古いバージョンでは、このファイルを手で作成しなければなりません。

Apache がインストールされ、サイト ファイルが作成されたら、ASM を有効にするために次のコマンドを実行します:

a2enmod wsgia2ensite asm3service apache2 restart

これで http://localhost/asm3

Creating the default database

ASM サービス開始後、http://localhost/asm3/databas でデータベース スキーマを作成します (まだデータベースが設定されていなければ http://localhost/asm3 だけで転送されるでしょう)。

Daily tasks

ASM には、毎日実行する必要のあるルーチンのバッチがあります。 これらのルーチンには、動物の年齢、シェルターでの時間などの非正規化データの再計算、待機リストの更新、外部へのデータの公開などが含まれます。

これらを実行するには、環境が以前と同様に設定されていることを確認し、python3 cron.py all

特定のタスクのみを実行するモードパラメータに関する詳細については、cron.py ファイルを参照してください。