Tryton installieren: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
(add Ansible Playbook)
KKeine Bearbeitungszusammenfassung
 
Zeile 57: Zeile 57:
Mit dem Paketbenutzer (xyz00, nicht xyz00-hans) diese Befehle ausführen:
Mit dem Paketbenutzer (xyz00, nicht xyz00-hans) diese Befehle ausführen:


<pre><nowiki>
<syntaxhighlight lang=bash>
xyz00$ hsscript -u xyz00 -e "postgresqluser.add ({set:{name:'xyz00_tryton',password:'TopSecret:@0815'}})"
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$ hsscript -u xyz00 -e "postgresqldb.add ({set:{name:'xyz00_tryton',owner:'xyz00_tryton'}})"
xyz00$ exit
xyz00$ exit
</nowiki></pre>
</syntaxhighlight>


Das PostgreSQL Passwort muss später url-kodiert in die tryton.ini eingefügt werden, damit die Sonderzeichen keine Probleme machen.
Das PostgreSQL Passwort muss später url-kodiert in die tryton.ini eingefügt werden, damit die Sonderzeichen keine Probleme machen.


<pre><nowiki>
<syntaxhighlight lang=bash>
$ python
$ python
Python 3.7.3 (default, Jan 22 2021, 20:04:44)  
Python 3.7.3 (default, Jan 22 2021, 20:04:44)  
Zeile 75: Zeile 75:
'TopSecret%3A%400815'
'TopSecret%3A%400815'
>>> exit()
>>> exit()
</nowiki></pre>
</syntaxhighlight>


=== Installation von Tryton Core und ERP Modulen ===
=== Installation von Tryton Core und ERP Modulen ===
Zeile 81: Zeile 81:
Als Domain-Admin <tt>xyz00-hans</tt> folgende Schritte ausführen:
Als Domain-Admin <tt>xyz00-hans</tt> folgende Schritte ausführen:


<pre><nowiki>
<syntaxhighlight lang=bash>
xyz00-hans$ mkdir ~/tryton
xyz00-hans$ mkdir ~/tryton
xyz00-hans$ cd ~/tryton
xyz00-hans$ cd ~/tryton
Zeile 92: Zeile 92:
(.venv) xyz00-hans$ # ein ERP Module installieren
(.venv) xyz00-hans$ # ein ERP Module installieren
(.venv) xyz00-hans$ pip install trytond_sale
(.venv) xyz00-hans$ pip install trytond_sale
</nowiki></pre>
</syntaxhighlight>


Weitere ERP Module sind hier zu finden: [http://hg.tryton.org/modules Tryton Module]
Weitere ERP Module sind hier zu finden: [http://hg.tryton.org/modules Tryton Module]
Zeile 102: Zeile 102:
Als Domain-Admin <tt>xyz00-hans</tt> folgende Schritte ausführen:
Als Domain-Admin <tt>xyz00-hans</tt> folgende Schritte ausführen:


<pre><nowiki>
<syntaxhighlight lang=bash>
xyz00-hans$ git clone https://github.com/OiNutter/nodenv.git ~/.nodenv
xyz00-hans$ git clone https://github.com/OiNutter/nodenv.git ~/.nodenv
xyz00-hans$ echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.profile
xyz00-hans$ echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.profile
Zeile 111: Zeile 111:
xyz00-hans$ nodenv rehash
xyz00-hans$ nodenv rehash
xyz00-hans$ nodenv global 12.18.4
xyz00-hans$ nodenv global 12.18.4
</nowiki></pre>
</syntaxhighlight>


Ein Test mit ''node --version'' solte anzeigen: v12.18.4
Ein Test mit ''node --version'' solte anzeigen: v12.18.4
Zeile 121: Zeile 121:
Als Domain-Admin <tt>xyz00-hans</tt> folgende Schritte ausführen:
Als Domain-Admin <tt>xyz00-hans</tt> folgende Schritte ausführen:


<pre><nowiki>
<syntaxhighlight lang=bash>
xyz00-hans$ cd ~/tryton
xyz00-hans$ cd ~/tryton
xyz00-hans$ git clone --single-branch --branch 6.2 https://github.com/tryton/sao.git
xyz00-hans$ git clone --single-branch --branch 6.2 https://github.com/tryton/sao.git
Zeile 132: Zeile 132:
xyz00-hans$ npm install grunt --legacy-peer-deps
xyz00-hans$ npm install grunt --legacy-peer-deps
xyz00-hans$ node_modules/grunt/bin/grunt
xyz00-hans$ node_modules/grunt/bin/grunt
</nowiki></pre>
</syntaxhighlight>


=== Konfigurationsdateien einrichten ===
=== Konfigurationsdateien einrichten ===
Zeile 138: Zeile 138:
Nun muss noch eine Konfigurationsdatei angelegt werden:
Nun muss noch eine Konfigurationsdatei angelegt werden:


<pre><nowiki>
<syntaxhighlight lang=bash>
xyz00-hans$ nano ~/tryton/tryton.ini
xyz00-hans$ nano ~/tryton/tryton.ini
</nowiki></pre>
</syntaxhighlight>


Die Datei sollte diesen Inhalt haben. Hier muss das url-kodierte PostgreSQL Passwort von oben eingefügt werden.
Die Datei sollte diesen Inhalt haben. Hier muss das url-kodierte PostgreSQL Passwort von oben eingefügt werden.


<pre><nowiki>
<syntaxhighlight lang=ini line>
[database]
[database]
uri = postgresql://xyz00_tryton:TopSecret%3A%400815@localhost/
uri = postgresql://xyz00_tryton:TopSecret%3A%400815@localhost/
Zeile 152: Zeile 152:
root = /home/pacs/xyz00/users/hans/tryton/sao
root = /home/pacs/xyz00/users/hans/tryton/sao
hostname = tryton.example.org
hostname = tryton.example.org
</nowiki></pre>
</syntaxhighlight>


Des weiteren sollte eine Konfigurationsdatei für das Logging angelegt werden:
Des weiteren sollte eine Konfigurationsdatei für das Logging angelegt werden:


<pre><nowiki>
<syntaxhighlight lang=bash>
xyz00-hans$ nano ~/tryton/logging.ini
xyz00-hans$ nano ~/tryton/logging.ini
</nowiki></pre>
</syntaxhighlight>


Die Datei sollte diesen Inhalt haben:
Die Datei sollte diesen Inhalt haben:


<pre><nowiki>
<syntaxhighlight lang=ini line>
[formatters]
[formatters]
keys=simple
keys=simple
Zeile 189: Zeile 189:
level=ERROR
level=ERROR
handlers=rotate,console
handlers=rotate,console
</nowiki></pre>
</syntaxhighlight>


Weitere Logging Levels sind hier zu finden: [https://docs.python.org/3/library/logging.html#logging-levels Tryton Logging Levels], z.B. CRITICAL, ERROR, WARNING, INFO, DEBUG
Weitere Logging Levels sind hier zu finden: [https://docs.python.org/3/library/logging.html#logging-levels Tryton Logging Levels], z.B. CRITICAL, ERROR, WARNING, INFO, DEBUG
Zeile 199: Zeile 199:
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.
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.


<pre><nowiki>
<syntaxhighlight lang=bash>
xyz00-hans$ cd ~/tryton
xyz00-hans$ cd ~/tryton
xyz00-hans$ source .venv/bin/activate
xyz00-hans$ source .venv/bin/activate
xyz00-hans$ python ./.venv/bin/trytond-admin -c tryton.ini -d xyz00_tryton --all
xyz00-hans$ python ./.venv/bin/trytond-admin -c tryton.ini -d xyz00_tryton --all
</nowiki></pre>
</syntaxhighlight>


=== Einrichten des Cronjobs ===
=== Einrichten des Cronjobs ===
Zeile 209: Zeile 209:
Falls geplante Aufgaben ausgeführt werden sollen, muss der Cronjob folgendermaßen eingerichtet werden:
Falls geplante Aufgaben ausgeführt werden sollen, muss der Cronjob folgendermaßen eingerichtet werden:


<pre><nowiki>
<syntaxhighlight lang=bash>
xyz00-hans$ export EDITOR=nano
xyz00-hans$ export EDITOR=nano
xyz00-hans$ crontab -e
xyz00-hans$ crontab -e
</nowiki></pre>
</syntaxhighlight>


Dann wird ein Editor mit einer Datei geöffnet, und am Ende dieser Datei sollte diese Zeile eingetragen werden:
Dann wird ein Editor mit einer Datei geöffnet, und am Ende dieser Datei sollte diese Zeile eingetragen werden:


<pre><nowiki>
<syntaxhighlight lang=bash>
*/5 * * * * cd ~/tryton && source .venv/bin/activate && python .venv/bin/trytond-cron -c tryton.ini -d xyz00_tryton --once
*/5 * * * * cd ~/tryton && source .venv/bin/activate && python .venv/bin/trytond-cron -c tryton.ini -d xyz00_tryton --once
</nowiki></pre>
</syntaxhighlight>


Das */5 bedeutet, dass der Cronjob alle 5 Minuten ausgeführt wird.
Das */5 bedeutet, dass der Cronjob alle 5 Minuten ausgeführt wird.
Zeile 226: Zeile 226:
=== Einrichten der Webseite ===
=== Einrichten der Webseite ===


<pre><nowiki>
<syntaxhighlight lang=bash>
xyz00-hans$ cd ~/doms/tryton.example.org/
xyz00-hans$ cd ~/doms/tryton.example.org/
xyz00-hans$ rm -Rf htdocs-ssl
xyz00-hans$ rm -Rf htdocs-ssl
xyz00-hans$ ln -s ~/tryton/sao/ htdocs-ssl
xyz00-hans$ ln -s ~/tryton/sao/ htdocs-ssl
</nowiki></pre>
</syntaxhighlight>


Es muss diese Datei .htaccess angelegt werden:
Es muss diese Datei .htaccess angelegt werden:


<pre><nowiki>
<syntaxhighlight lang=bash>
xyz00-hans$ nano ~/doms/tryton.example.org/.htaccess
xyz00-hans$ nano ~/doms/tryton.example.org/.htaccess
</nowiki></pre>
</syntaxhighlight>


Die Datei sollte diesen Inhalt haben.
Die Datei sollte diesen Inhalt haben.


<pre><nowiki>
<syntaxhighlight lang=apache>
PassengerPython /home/pacs/xyz00/users/hans/tryton/.venv/bin/python
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 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_CONFIG /home/pacs/xyz00/users/hans/tryton/tryton.ini
SetEnv TRYTOND_LOGGING_CONFIG /home/pacs/xyz00/users/hans/tryton/logging.ini
SetEnv TRYTOND_LOGGING_CONFIG /home/pacs/xyz00/users/hans/tryton/logging.ini
</nowiki></pre>
</syntaxhighlight>


Dann noch diese Datei anlegen:
Dann noch diese Datei anlegen:


<pre><nowiki>
<syntaxhighlight lang=bash>
xyz00-hans$ nano ~/doms/tryton.example.org/app-ssl/passenger_wsgi.py
xyz00-hans$ nano ~/doms/tryton.example.org/app-ssl/passenger_wsgi.py
</nowiki></pre>
</syntaxhighlight>


Mit diesem Inhalt:
Mit diesem Inhalt:


<pre><nowiki>
<syntaxhighlight lang=python>
from trytond.application import app as application
from trytond.application import app as application
</nowiki></pre>
</syntaxhighlight>


== Erste Schritte ==
== Erste Schritte ==
Zeile 277: Zeile 277:
Unter einem beliebigen Linux Desktop kann er über die folgenden Befehle installiert und gestartet werden:
Unter einem beliebigen Linux Desktop kann er über die folgenden Befehle installiert und gestartet werden:


<pre>
<syntaxhighlight lang="bash">
python3 -m venv .venv
python3 -m venv .venv
source .venv/bin/activate
source .venv/bin/activate
pip install tryton
pip install tryton
python .venv/bin/tryton
python .venv/bin/tryton
</pre>
</syntaxhighlight>


Beim Fat Client muss man folgenden Wert beim Host angeben: <code>tryton.example.org:443</code>
Beim Fat Client muss man folgenden Wert beim Host angeben: <code>tryton.example.org:443</code>

Aktuelle Version vom 14. Juni 2024, 13:08 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 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

Links