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 6.2 https://github.com/tryton/sao.git
xyz00-hans$ cd sao
xyz00-hans$ source ~/.profile
xyz00-hans$ npm install bower --legacy-peer-deps
xyz00-hans$ npm install po2json --legacy-peer-deps
xyz00-hans$ npm install grunt-po2json --legacy-peer-deps
xyz00-hans$ npm install --production --legacy-peer-deps
xyz00-hans$ npm install grunt --legacy-peer-deps
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 systemd Timers
Falls geplante Aufgaben ausgeführt werden sollen, muss der systemd Timer folgendermaßen eingerichtet werden: ~/bin/tryton_planned.sh
#! /usr/bin/env bash
cd ~/tryton
source .venv/bin/activate
python .venv/bin/trytond-cron -c tryton.ini -d xyz00_tryton --once
~/.config/systemd/user/tryton_planned.service
[Unit]
Description=tryton planned jobs
[Service]
Type=oneshot
ExecStart=/home/pacs/xyz00/users/hans//bin/tryton_planned.sh
~/.config/systemd/user/tryton_planned.timer
[Unit]
Description=tryton planned jobs
[Timer]
OnCalendar=*:0/5
Persistent=True
[Install]
WantedBy=timers.target
Timer aktivieren und starten:
$ chmod +x ~/bin/tryton_planned.sh
$ systemctl --user enable tryton_planned.timer
$ systemctl --user start tryton_planned.timer
Das *:0/5 bedeutet, dass der Cronjob alle 5 Minuten ausgeführt wird.
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