bobintetley / asm3

Este programa está cubierto por los términos de la Licencia Pública General de GNU v3.Ver el archivo LICENSE en este directorio para más detalles.

Dependencias

Si usted está usando un sistema basado en Debian (por ejemplo: Ubuntu), entonces el siguiente willinstall todo el software que necesita para ejecutar ASM. Si usted está usando el paquete debheltermanager3 ya tiene dependencias establecidas para estos y willinstall ellos para usted.

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

Paquetes extra, no obligatorios:

  • apt-get install python3-memcache memcached (para sesiones multiproceso)
  • apt-get install imagemagick (para escalar/comprimir PDFs para ahorrar en almacenamiento)
  • apt-get install wkhtmltopdf (para crear PDFs a partir de plantillas de documentos HTML)
  • apt-get install python3-xhtml2pdf (libra de Python pura para crear PDFs a partir de plantillas de documentos HTML)
  • apt-get install python3-reportlab (para crear PDFs de etiquetas de correo)
  • apt-get install python3-requests (necesario para las comunicaciones HTTP a otros servicios de publicación)
  • apt-get install python3-boto3 (necesario para el almacenamiento de medios en Amazon S3)
  • pip/pip3 install stripe (para solicitar pagos a través de Stripe)

Paquetes necesarios para construir, comprobadores estáticos, instaladores y manuales:

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

Node y npm se utilizan para transpilar el código javascript para navegadores antiguos ylinting los archivos javascript. Para instalar todas las dependencias de javascript en tiempo de compilación, ejecute este comando en la carpeta de fuentes:

  • npm install

Si está usando Debian y quiere hacer desarrollo, puede usar «make deps «como una forma conveniente de instalar las dependencias necesarias.

Debian python3-webpy

La versión de web.py actualmente empaquetada en Debian Buster (y posiblemente en Ubuntu)como python3-webpy tiene un fallo. No puede servir contenido estático y sólo funcionará si despliega su aplicación con mod_wsgi, uwsgi, etc.

Puede arreglarlo manualmente editando/usr/lib/python3/dist-packages/web/httpserver.py y añadiendo las nuevas líneaself.directory = os.getcwd() en la línea 198 al final de la función init, así:

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

No necesitas esta corrección si estás desplegando tu aplicación para que se ejecute conApache como se recomienda, esto sólo se aplica a la ejecución de un servidor independiente viacode.py desde la línea de comandos.

En un entorno de desarrollo, puede iniciar una instancia de prueba en el puerto 5000 con:

make test

Logging

ASM registra en la instalación syslog USER de Unix (/var/log/user.log para la mayoría de las instalaciones)por defecto. Esto se puede cambiar en la configuración.

Configuración de ASM

Si utilizó el paquete debian, edite el archivo /etc/asm3.conf

Si no lo hizo, copie scripts/asm3.conf.example a /etc/asm3.conf y luego edítelo.

Establezca los siguientes valores:

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)

Si está utilizando MySQL o POSTGRESQL, asegúrese de que ha emitido un CREATE DATABASEy la base de datos ya existe (sin embargo el esquema puede estar vacío).

ASM buscará su archivo de configuración en este orden hasta que encuentre uno:

  1. En una variable de entorno llamada ASM3_CONF
  2. En $INSTALL_DIR/asm3.conf (la carpeta en la que se instalan los módulos python de asm3)
  3. En $HOME/.asm3.conf (el directorio raíz del usuario que ejecuta asm3)
  4. En /etc/asm3.conf

Configurar Apache/WSGI

Configurar Apache para servir la aplicación.

El paquete Debian versión 44 tiene libapache2-mod-wsgi-py3 como dependencia e instalará Apache 2 si no lo tiene ya disponible.

Para versiones anteriores, instale Apache con:

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

A partir de la versión 44, el paquete también incluirá un fichero site/etc/apache2/sites-available/asm3.conf con el siguiente contenido:

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

Para versiones anteriores, tendrá que crear este fichero manualmente.

Una vez que Apache esté instalado y tenga el archivo del sitio, para activar ASM, ejecute:

a2enmod wsgia2ensite asm3service apache2 restart

Ahora debería poder visitar ASM en http://localhost/asm3

Creación de la base de datos por defecto

Después de que el servicio ASM se haya iniciado, visite http://localhost/asm3/databaspara crear el esquema de la base de datos (al pulsar sólo http://localhost/asm3 se le redirigirá allí si todavía no se ha configurado ninguna base de datos).

Tareas diarias

ASM tiene un lote de rutinas que deben ejecutarse cada día. Estas rutinas deben ser ejecutadas unas horas antes de que la gente comience a introducir datos para el día.

Estas rutinas incluyen el recálculo de datos desnormalizados como la edad del animal, el tiempo en el refugio, la actualización de la lista de espera y la publicación de datos externamente.

Para ejecutarlas, asegúrese de que el entorno está configurado como antes y ejecutepython3 cron.py all

Consulte el archivo cron.py para obtener más información sobre los parámetros de modo para ejecutar sólo tareas específicas.

El paquete Debian añade automáticamente las tareas diarias a /etc/cron.daily