Tryton installieren: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
Zeile 205: Zeile 205:
</syntaxhighlight>
</syntaxhighlight>


=== Einrichten des Cronjobs ===
=== Einrichten des systemd Timers ===


Falls geplante Aufgaben ausgeführt werden sollen, muss der Cronjob folgendermaßen eingerichtet werden:
Falls geplante Aufgaben ausgeführt werden sollen, muss der systemd Timer folgendermaßen eingerichtet werden:
~/bin/tryton_planned.sh
<syntaxhighlight lang=bash>
#! /usr/bin/env bash


<syntaxhighlight lang=bash>
cd ~/tryton
xyz00-hans$ export EDITOR=nano
source .venv/bin/activate
xyz00-hans$ crontab -e
python .venv/bin/trytond-cron -c tryton.ini -d xyz00_tryton --once
</syntaxhighlight>
 
~/.config/systemd/user/tryton_planned.service
<syntaxhighlight lang=ini>
[Unit]
Description=tryton planned jobs
 
[Service]
Type=oneshot
ExecStart=/home/pacs/xyz00/users/hans//bin/tryton_planned.sh
</syntaxhighlight>
</syntaxhighlight>


Dann wird ein Editor mit einer Datei geöffnet, und am Ende dieser Datei sollte diese Zeile eingetragen werden:
~/.config/systemd/user/tryton_planned.timer
<syntaxhighlight lang=ini>
[Unit]
Description=tryton planned jobs


[Timer]
OnCalendar=*:0/5
Persistent=True
[Install]
WantedBy=timers.target
</syntaxhighlight>
Timer aktivieren und starten:
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
*/5 * * * * cd ~/tryton && source .venv/bin/activate && python .venv/bin/trytond-cron -c tryton.ini -d xyz00_tryton --once
$ chmod +x ~/bin/tryton_planned.sh
$ systemctl --user enable tryton_planned.timer
$ systemctl --user start tryton_planned.timer
</syntaxhighlight>
</syntaxhighlight>


Das */5 bedeutet, dass der Cronjob alle 5 Minuten ausgeführt wird.
Das *:0/5 bedeutet, dass der Cronjob alle 5 Minuten ausgeführt wird.
 
Die Datei einfach speichern, unter dem vorgeschlagenen Namen.


=== Einrichten der Webseite ===
=== Einrichten der Webseite ===

Version vom 3. Dezember 2024, 14:15 Uhr

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

Links