Tryton installieren
Allgemein
Beschreibung
Tryton ist eine freie Software für das Enterprise-Resource-Planning (ERP).
Tryton lässt sich über den Web-Browser bedienen, oder über einen Desktop Client (Windows, Linux, MacOS).
Tryton läuft mit Python und PostgreSQL oder SQLite, und lässt sich auf Linux, MacOS und Windows betreiben.
Tryton steht unter der GPLv3 Lizenz. Die Rechte an der Marke Tryton gehören der gemeinnützigen Tryton-Stiftung mit Sitz in Belgien.
Installation
Design
Diese Installationsanleitung beschreibt, wie Tryton in einer eigens dafür aufgeschalteten Subdomain über SSL betrieben wird.
Der Vorteil einer Installation in einer aufgeschalteten Subdomain ist, daß die Installation leicht von anderen Domaininhalten, Passenger-Konfigurationen, oder sogar von anderen Domain-Administratoren, isoliert werden kann.
Subdomain aufschalten
Im Folgenden werden folgende Domainkonfigurationsdaten als Beispiel verwendet:
Typ | Wert | Beschreibung |
---|---|---|
Subdomain | tryton.example.org | Die Subdomain, unter der eine Tryton-Instanz laufen soll |
Domain-Admin | xyz00-hans | Der User, dem die Subdomain delegiert wurde |
PostgreSQL vorbereiten
Tryton benötigt eine PostgreSQL-Datenbank sowie einen Datenbanknutzer.
Die Tabellen werden später vom Installations-Werkzeug von Tryton eigenständig angelegt.
Datenbank und Datenbanknutzer anlegen
In dieser Anleitung werden folgende Namen für die Datenbank und deren Nutzer verwendet. Das Paket-Kürzel xyz00 ist natürlich durch das des betreffenden Pakets zu ersetzen.
Typ | Wert | Beschreibung |
---|---|---|
DB-Nutzer | xyz00_tryton | Der PostgreSQL-Nutzer, dem die Datenbank gehört und der administrative Tätigkeiten durchführt und dann auch im Betrieb genutzt wird. |
Datenbank | xyz00_tryton | Die PostgreSQL-Datenbank, die die Daten von Tryton enthält. |
Der Nutzer und die Datenbank können über die Weboberfläche auf https://admin.hostsharing.net oder über die Kommandozeile mit Hsadmin angelegt werden. Siehe dazu die Anleitungen auf der Seite PostgreSQL und Datenbanken. Diese Schritte müssen ggf. vom Paket-Admin vorgenommen werden.
Einrichtung über die Kommandozeile:
Mit dem Paketbenutzer (xyz00, nicht xyz00-hans) diese Befehle ausführen:
xyz00$ hsscript -u xyz00 -e "postgresqluser.add ({set:{name:'xyz00_tryton',password:'TopSecret:@0815'}})" xyz00$ hsscript -u xyz00 -e "postgresqldb.add ({set:{name:'xyz00_tryton',owner:'xyz00_tryton'}})" xyz00$ exit
Das PostgreSQL Passwort muss später url-kodiert in die tryton.ini eingefügt werden, damit die Sonderzeichen keine Probleme machen.
$ python Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import urllib.parse >>> query = 'TopSecret:@0815' >>> urllib.parse.quote(query) 'TopSecret%3A%400815' >>> exit()
Installation von Tryton Core und ERP Modulen
Als Domain-Admin xyz00-hans folgende Schritte ausführen:
xyz00-hans$ mkdir ~/tryton xyz00-hans$ cd ~/tryton xyz00-hans$ python3 -m venv .venv xyz00-hans$ source .venv/bin/activate (.venv) xyz00-hans$ pip install wheel (.venv) xyz00-hans$ pip install trytond (.venv) xyz00-hans$ # die Unterstützung für PostgreSQL installieren (.venv) xyz00-hans$ pip install psycopg2 (.venv) xyz00-hans$ # ein ERP Module installieren (.venv) xyz00-hans$ pip install trytond_sale
Weitere ERP Module sind hier zu finden: Tryton Module
Installation von Node
Für die Installation des Web Clients wird Node benötigt.
Als Domain-Admin xyz00-hans folgende Schritte ausführen:
xyz00-hans$ git clone https://github.com/OiNutter/nodenv.git ~/.nodenv xyz00-hans$ echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.profile xyz00-hans$ echo 'eval "$(nodenv init -)"' >> ~/.profile xyz00-hans$ source ~/.profile xyz00-hans$ git clone git://github.com/OiNutter/node-build.git ~/.nodenv/plugins/node-build xyz00-hans$ nodenv install 12.18.4 xyz00-hans$ nodenv rehash xyz00-hans$ nodenv global 12.18.4
Ein Test mit node --version solte anzeigen: v12.18.4
Installation des Web Clients
Jetzt soll der Web Client eingerichtet werden.
Als Domain-Admin xyz00-hans folgende Schritte ausführen:
xyz00-hans$ cd ~/tryton xyz00-hans$ git clone --single-branch --branch 5.8 https://github.com/tryton/sao.git xyz00-hans$ cd sao xyz00-hans$ source ~/.profile xyz00-hans$ npm install bower xyz00-hans$ npm install po2json xyz00-hans$ npm install grunt-po2json xyz00-hans$ npm install --production xyz00-hans$ npm install grunt xyz00-hans$ node_modules/grunt/bin/grunt
Konfigurationsdateien einrichten
Nun muss noch eine Konfigurationsdatei angelegt werden:
xyz00-hans$ nano ~/tryton/tryton.ini
Die Datei sollte diesen Inhalt haben. Hier muss das url-kodierte PostgreSQL Passwort von oben eingefügt werden.
[database] uri = postgresql://xyz00_tryton:TopSecret%3A%400815@localhost/ path = /home/pacs/xyz00/users/hans/tryton [web] root = /home/pacs/xyz00/users/hans/tryton/sao hostname = tryton.example.org
Des weiteren sollte eine Konfigurationsdatei für das Logging angelegt werden:
xyz00-hans$ nano ~/tryton/logging.ini
Die Datei sollte diesen Inhalt haben:
[formatters] keys=simple [handlers] keys=rotate,console [loggers] keys=root [formatter_simple] format=%(asctime)s] %(levelname)s:%(name)s:%(message)s datefmt=%a %b %d %H:%M:%S %Y [handler_rotate] class=handlers.TimedRotatingFileHandler args=('/home/pacs/xyz00/users/hans/tryton/tryton.log', 'D', 1, 30) formatter=simple [handler_console] class=StreamHandler formatter=simple args=(sys.stdout,) [logger_root] level=ERROR handlers=rotate,console
Weitere Logging Levels sind hier zu finden: Tryton Logging Levels, z.B. CRITICAL, ERROR, WARNING, INFO, DEBUG
Einrichten der Instanz
Jetzt kann die Instanz eingerichtet werden.
Hier muss man interaktiv für den Benutzer admin eine E-Mail Adresse angeben und das Passwort setzen, und es werden automatisiert die Tabellen in der Datenbank eingerichtet.
xyz00-hans$ cd ~/tryton xyz00-hans$ source .venv/bin/activate xyz00-hans$ python ./.venv/bin/trytond-admin -c tryton.ini -d xyz00_tryton --all
Einrichten des Cronjobs
Falls geplante Aufgaben ausgeführt werden sollen, muss der Cronjob folgendermaßen eingerichtet werden:
xyz00-hans$ export EDITOR=nano xyz00-hans$ crontab -e
Dann wird ein Editor mit einer Datei geöffnet, und am Ende dieser Datei sollte diese Zeile eingetragen werden:
*/5 * * * * cd ~/tryton && source .venv/bin/activate && python .venv/bin/trytond-cron -c tryton.ini -d xyz00_tryton --once
Das */5 bedeutet, dass der Cronjob alle 5 Minuten ausgeführt wird.
Die Datei einfach speichern, unter dem vorgeschlagenen Namen.
Einrichten der Webseite
xyz00-hans$ cd ~/doms/tryton.example.org/ xyz00-hans$ rm -Rf htdocs-ssl xyz00-hans$ ln -s ~/tryton/sao/ htdocs-ssl
Es muss diese Datei .htaccess angelegt werden:
xyz00-hans$ nano ~/doms/tryton.example.org/.htaccess
Die Datei sollte diesen Inhalt haben.
PassengerPython /home/pacs/xyz00/users/hans/tryton/.venv/bin/python SetEnv PYTHONPATH /home/pacs/xyz00/users/hans/tryton/.venv/lib/python3.7/site-packages/trytond SetEnv TRYTOND_CONFIG /home/pacs/xyz00/users/hans/tryton/tryton.ini SetEnv TRYTOND_LOGGING_CONFIG /home/pacs/xyz00/users/hans/tryton/logging.ini
Dann noch diese Datei anlegen:
xyz00-hans$ nano ~/doms/tryton.example.org/app-ssl/passenger_wsgi.py
Mit diesem Inhalt:
from trytond.application import app as application
Erste Schritte
Nun ist der Web Client von Tryton auf https://tryton.example.org erreichbar.
Die Datenbank xyz00_tryton ist voreingestellt.
Man meldet sich mit dem Benutzer admin
und dem vorhin konfigurierten Passwort an.
Hier könnte noch beschrieben werden, wie man Benutzer anlegt, die Buchhaltung einrichtet usw. Aber das würde den Rahmen dieser Installationsanwendung sprengen...
Tryton Fat Client
Neben dem Web Client gibt es auch den lokal laufenden Client (aka Fat Client).
Für Windows oder MacOS kann der Fat Client über einen Installer installiert werden, siehe https://www.tryton.org/download#desktop-client
Unter einem beliebigen Linux Desktop kann er über die folgenden Befehle installiert und gestartet werden:
python3 -m venv .venv source .venv/bin/activate pip install tryton python .venv/bin/tryton
Beim Fat Client muss man folgenden Wert beim Host angeben: tryton.example.org:443
und dann noch die entsprechende Datenbank: xyz00_tryton