Tine20: Unterschied zwischen den Versionen
F (Diskussion | Beiträge) (→Versionen) |
F (Diskussion | Beiträge) (→Thunderbird) |
||
(23 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
+ | = Administration = | ||
== Installation == | == Installation == | ||
=== git === | === git === | ||
* https://wiki.tine20.org/Developers/Getting_Started/Working_with_GIT | * https://wiki.tine20.org/Developers/Getting_Started/Working_with_GIT | ||
+ | ==== clone ==== | ||
<source lang="bash"> | <source lang="bash"> | ||
git clone http://git.tine20.org/git/tine20 | git clone http://git.tine20.org/git/tine20 | ||
+ | </source> | ||
+ | |||
+ | ==== composer ==== | ||
+ | <source lang=bash> | ||
+ | apt-get install curl | ||
+ | |||
+ | cd /root/ | ||
+ | mkdir composer | ||
+ | test -d bin || mkdir bin | ||
+ | curl -sS https://getcomposer.org/installer | php -- --install-dir=composer | ||
+ | ln -s ../composer/composer.phar bin/composer | ||
+ | |||
+ | echo "PATH=$PATH:/root/bin" >> /root/.bashrc | ||
+ | |||
+ | |||
+ | composer --prefer-source --no-interaction | ||
+ | composer -V | ||
+ | |||
+ | |||
+ | apt-get install php5-xsl | ||
+ | |||
+ | cd tine20/tine20/ | ||
+ | composer install | ||
+ | chown www-data:www-data config.inc.php | ||
+ | chown www-data:www-data vendor/ -R | ||
+ | |||
</source> | </source> | ||
Zeile 57: | Zeile 85: | ||
* [http://www.tine20.org/wiki/index.php/Admins/Install_Howto#Install_Debian.2FUbuntu_packages Install Debian/Ubuntu packages] | * [http://www.tine20.org/wiki/index.php/Admins/Install_Howto#Install_Debian.2FUbuntu_packages Install Debian/Ubuntu packages] | ||
+ | |||
+ | === nodejs === | ||
+ | https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions | ||
+ | |||
+ | <source lang=bash> | ||
+ | curl -sL https://deb.nodesource.com/setup_7.x | bash - | ||
+ | apt-get update | ||
+ | apt-get install nodejs | ||
+ | apt-get install -y build-essential | ||
+ | </source> | ||
== Konfiguration == | == Konfiguration == | ||
Zeile 71: | Zeile 109: | ||
* jeder neu erstellte Benutzer sollte entweder der Gruppe Users oder Administrators angehören | * jeder neu erstellte Benutzer sollte entweder der Gruppe Users oder Administrators angehören | ||
− | == Syncronisation == | + | == Syncronisation 2021 == |
+ | |||
+ | === Thunderbird === | ||
+ | |||
+ | * tbsync https://addons.thunderbird.net/de/thunderbird/addon/tbsync/ | ||
+ | ** exchange/active sync: https://addons.thunderbird.net/de/thunderbird/addon/eas-4-tbsync/ | ||
+ | ** cal dav: https://addons.thunderbird.net/de/thunderbird/addon/dav-4-tbsync/ | ||
+ | ** https://addons.thunderbird.net/de/thunderbird/addon/categorymanager/ | ||
+ | |||
+ | == Syncronisation seit jahren nicht getestet== | ||
=== ActiveSync - Microsoft Exchange === | === ActiveSync - Microsoft Exchange === | ||
Zeile 249: | Zeile 296: | ||
== update == | == update == | ||
* Verzeichnis tine20 umbenennen -> tine20-old | * Verzeichnis tine20 umbenennen -> tine20-old | ||
+ | * Datenbank backupen | ||
+ | <source lang=bash> | ||
+ | mysqldump --single-transaction --default-character-set=utf8 -u root -p tinedb > mysql.tinedb.20170423.sql | ||
+ | </source> | ||
* Neuen Verzeichnis tine20 anlegen | * Neuen Verzeichnis tine20 anlegen | ||
** zb per [[#git]] | ** zb per [[#git]] | ||
+ | <source lang=bash> | ||
+ | git clone http://git.tine20.org/git/tine20 | ||
+ | </source> | ||
+ | * [[#composer]] stuff | ||
* Neues Releas dorthin entpacken | * Neues Releas dorthin entpacken | ||
* config.inc.php aus altem Verzeichnis in neues Verzeichnis kopieren | * config.inc.php aus altem Verzeichnis in neues Verzeichnis kopieren | ||
+ | * wo liegen denn ganzen dateien aus dem filemanger | ||
+ | <source lang=bash> | ||
+ | more config.inc.php | grep filesdir | ||
+ | </source> | ||
+ | * updaten | ||
+ | <source lang=php> | ||
+ | php setup.php --update | ||
+ | </source> | ||
+ | |||
+ | |||
+ | === update pfade === | ||
+ | |||
+ | ==== von 2017.02.2 zu 2018.08.4 ==== | ||
+ | |||
+ | |||
+ | * php 5.6 | ||
+ | ** 2017.02.2 > 2017.08.1 http://packages.tine20.org/source/2017.08.1/ | ||
+ | ** 2017.08.1 > 2017.08.11 http://packages.tine20.org/source/2017.08.11/ | ||
+ | * php 7.2 | ||
+ | ** 2017.08.11 > 2018.08.4 https://github.com/tine20/tine20/wiki/EN:Install-Howto | https://github.com/tine20/tine20/wiki/EN%3AUpdate-Howto | ||
+ | *** Achtung | ||
+ | **** nicht vergessen: apt-get install zendframework | ||
+ | **** per apt auf ubuntu 18.04 installiert, es rät sich erstmal nicht die Verzeichnisstruktur in der config zu ändern, führt zu Fehlern die schwer zu finden sind | ||
+ | **** tine und apache log Dateien checken | ||
+ | |||
+ | ==== von 2018.08.4 zu 2020.08.5 ==== | ||
+ | |||
+ | <source lang=bash> | ||
+ | mysqldump --single-transaction --default-character-set=utf8 -u root -p sync_db > sync_db.2018.08.4.sql | ||
+ | |||
+ | wget https://packages.tine20.org/source/2019.02.1/tine20-allinone_2019.02.1.zip | ||
+ | unzip tine20-allinone_2019.02.1.zip tine20-allinone_2019.02.1 | ||
+ | cd tine20-allinone_2019.02.1 | ||
+ | php setup.php --config /etc/tine20/config.inc.php --update Tinebase | ||
+ | # Tinebase_Exception_Backend: you already have some utf8mb4 tables, but your db config says utf8, this is bad! in 2019.02.1 Setup/Controller.php:673 | ||
+ | php setup.php --config /etc/tine20/config.inc.php --migrateUtf8mb4 | ||
+ | php setup.php --config /etc/tine20/config.inc.php --update Tinebase | ||
+ | # Tinebase_Exception: waited for Action Queue to become empty for more than 300 sec in /root/tine20/tine20-allinone_2019.02.1/Setup/Controller.php:985 | ||
+ | redis-cli | ||
+ | FLUSHDB | ||
+ | php setup.php --config /etc/tine20/config.inc.php --update Tinebase | ||
+ | cd .. | ||
+ | |||
+ | wget https://packages.tine20.org/source/2019.08.1/tine20-allinone_2019.08.1.zip | ||
+ | unzip tine20-allinone_2019.08.1.zip -d tine20-allinone_2019.08.1 | ||
+ | cd tine20-allinone_2019.08.1/ | ||
+ | php setup.php --config /etc/tine20/config.inc.php --update | ||
+ | cd .. | ||
+ | |||
+ | https://packages.tine20.org/source/2019.08.4/tine20-allinone_2019.08.4.zip | ||
+ | unzip tine20-allinone_2019.08.4.zip -d tine20-allinone_2019.08.4 | ||
+ | cd tine20-allinone_2019.08.4 | ||
+ | |||
+ | |||
+ | wget https://packages.tine20.org/source/2019.12.1/tine20-allinone_2019.12.1.zip # Major version jumps are not allowed. 2019.08.4 muss vorher installiert sein | ||
+ | unzip tine20-allinone_2019.12.1.zip -d tine20-allinone_2019.12.1 | ||
+ | cd tine20-allinone_2019.12.1/ | ||
+ | php setup.php --config /etc/tine20/config.inc.php --check_requirements | ||
+ | apt-get install php-bcmath | ||
+ | php setup.php --config /etc/tine20/config.inc.php --update | ||
+ | cd .. | ||
+ | |||
+ | wget https://packages.tine20.org/source/2020.03.1/tine20-allinone_2020.03.1.zip | ||
+ | unzip tine20-allinone_2020.03.1.zip -d tine20-allinone_2020.03.1 | ||
+ | cd tine20-allinone_2020.03.1 | ||
+ | php setup.php --config /etc/tine20/config.inc.php --update | ||
+ | cd .. | ||
+ | |||
+ | wget https://packages.tine20.org/source/2020.08.1/tine20-allinone_2020.08.1.zip | ||
+ | unzip tine20-allinone_2020.08.1.zip -d tine20-allinone_2020.08.1 | ||
+ | cd tine20-allinone_2020.08.1 | ||
+ | php setup.php --config /etc/tine20/config.inc.php --update | ||
+ | cd .. | ||
+ | |||
+ | wget https://packages.tine20.org/source/2020.08.5/tine20-allinone_2020.08.5.zip | ||
+ | unzip tine20-allinone_2020.08.5.zip -d tine20-allinone_2020.08.5 | ||
+ | cd tine20-allinone_2020.08.5/ | ||
+ | php setup.php --config /etc/tine20/config.inc.php --update | ||
+ | </source> | ||
+ | |||
+ | == Probleme == | ||
+ | === PHP Fatal error: require(): Failed opening required 'vendor/autoload.php' (include_path='.:/usr/share/php:/usr/share/pear') in tine20/bootstrap.php on line 29 === | ||
+ | sie [[Tine20#composer]] | ||
− | = | + | = Nutzung = |
− | == | + | == sales == |
− | + | Abbildung eines Prozessen | |
− | + | # Kostenstelle | |
+ | # Kunde | ||
+ | # Angebot | ||
+ | # Vertrag |
Aktuelle Version vom 25. Juli 2021, 09:23 Uhr
Inhaltsverzeichnis
- 1 Administration
- 1.1 Installation
- 1.2 Konfiguration
- 1.3 Administration
- 1.4 Syncronisation 2021
- 1.5 Syncronisation seit jahren nicht getestet
- 1.5.1 ActiveSync - Microsoft Exchange
- 1.5.2 CalDAV / WebDAV
- 1.5.2.1 Server - auf der tine Seite
- 1.5.2.2 Clients
- 1.5.2.3 Notizen
- 1.6 Sipgate Einbindung
- 1.7 update
- 1.8 Probleme
- 2 Nutzung
Administration
Installation
git
clone
git clone http://git.tine20.org/git/tine20
composer
apt-get install curl
cd /root/
mkdir composer
test -d bin || mkdir bin
curl -sS https://getcomposer.org/installer | php -- --install-dir=composer
ln -s ../composer/composer.phar bin/composer
echo "PATH=$PATH:/root/bin" >> /root/.bashrc
composer --prefer-source --no-interaction
composer -V
apt-get install php5-xsl
cd tine20/tine20/
composer install
chown www-data:www-data config.inc.php
chown www-data:www-data vendor/ -R
deb
echo "deb http://packages.tine20.org/debian squeeze stable" > /etc/apt/sources.list.d/tine.list
apt-key adv --recv-keys --keyserver keys.gnupg.net 7F6F6895
apt-get update
apt-get install tine20
echo "
<VirtualHost *:80>
ServerName tine.domain.tld
ServerAlias www.tine.domain.tld
ServerAdmin kontakt@tine.domain.tld
RewriteEngine on
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://tine.domain.tld/$1 [R=301,L]
</VirtualHost>
<VirtualHost *:443>
ServerAdmin kontakt@tine.domain.tld
DocumentRoot /usr/share/tine20/
ServerName tine.domain.tld
ServerAlias www.tine.domain.tld
RewriteEngine on
# Microsoft Exchange
RewriteRule /Microsoft-Server-ActiveSync(.*) /usr/share/tine20//index.php?frontend=activesync [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
# Cal- & CardDAV
RewriteCond %{REQUEST_METHOD} !^(GET|POST)$
RewriteRule ^$ /index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
RewriteRule ^addressbooks /index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
RewriteRule ^calendars /index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
RewriteRule ^principals /index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
RewriteRule ^webdav /index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
<Directory /usr/share/tine20/ >
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
SSLEngine On
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
SSLCertificateFile /etc/apache2/ssl/multidomain.crt
SSLCertificateKeyFile /etc/apache2/ssl/multidomain-private.key
</VirtualHost>
" > /etc/apache2/sites-available/tine.domain.tld
/etc/init.d/apache2 reload
nodejs
https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions
curl -sL https://deb.nodesource.com/setup_7.x | bash -
apt-get update
apt-get install nodejs
apt-get install -y build-essential
Konfiguration
im Browser tine.domain.tld aufrufen, sollte nun automatisch auf https://tine.domain.tld/setup.php weiterleiten
einloggen mit den Benutzerdaten die während der apt-get Installation abgefragt wurden und den setup Dialog einmal durch gehen
- ActiveSync aktivieren!!!!
Administration
Benutzer, Gruppen und Rollen
- jeder neu erstellte Benutzer sollte entweder der Gruppe Users oder Administrators angehören
Syncronisation 2021
Thunderbird
Syncronisation seit jahren nicht getestet
ActiveSync - Microsoft Exchange
client:
1. trashdaten angeben um auf die richtigen Einstellungen zu kommen
- Email: irgendein mail string
- Passwort: irgend ein zeichen
ios
z.B.: ipad 4
- Email: eine mail adressen angeben
- Server: tine.domain.tld
- Domain: Microsoft-Server-ActiveSync
- User: Tine Benutzer Anmelde Name
- Passwort:
android im test funzt noch nicht
getestet:
- Android 4.1.1 (Cynus T2)
- Android
Einstellungsparameter
- Domain-/Nutzername: \tine_user_name
- Passwort: ****
- Server: tine.domain.tld
- Sichere Verbindung (SSL) verwenden
- Alle SSL Zertifikate akzeptieren aussser mensch hat Geld bezahlt
- Port: 443
- Quellen
CalDAV / WebDAV
- jeder Kalender/Adressbuch wird einzeln hinzugefügt
- Vorteil: Termine/Adressen können individuell im jeweiligen Kaldender/Adressbuch gespeichert werden
- Nachteil: mehr Konfiguration
Server - auf der tine Seite
- einloggen in tine.domain.tld
- Kalender (oder Adressbuch) öffnen
- links unter der Kalenderstruktur mit der rechten Maustaste auf ein Kalender klicken und Kalender Eigenschaften öffnen
- CalDAV URL kopieren
Clients
Thunderbird(icedove)/Lightning(iceowl) mit dem SOGo Connector Thunderbird Addon -- irgendwie funzt da was noch nicht!!!
- dowload Addon von www.sogo.nu
wget http://www.sogo.nu/files/downloads/extensions/sogo-connector-17.0.5.xpi
- Installation
- installieren von einer Datei versteckt sich hinter dem Werkzeug Button neben dem Suchfeld
Adressbuch
- Adressbuch öffnen
- Dateileiste > File > New > Remote-Adressbuch
- Verbindungsname: tine
- Url: CardDAV URL einfügen
- kurz warten! und danach über rechte Maustaste auf tine Adressbuch syncronisieren
Kalender
- Thunderbird öffnen und dort den Kalender (lightning/iceowl) (oder Adressbuch) öffnen (im Zweifel Egroupware#mozilla Addon erst installieren)
- links unter Kalender rechte Maustaste "New Calender" - Dialog Fenster öffnet sich
- On the Network => next
- Format: Caldav
- Location: CalDAV URL einfügen => next
- Name angeben => next
- Finish
Thunderbird(icedove)/Lightning(iceowl)
- iceowl/lightning -- funktioniert ohne addon, aber erinnerung macht probleme
- kalender starten
- reiter: calenders
- rechte Maustaste => New Calender
- on the network
- caldav
- Location: CalDAV URL einfügen => next
- name angeben
Android (not working)
- android: aCal App => funktioniert nicht wirklich, Adressbücher und Kalender werden nicht angezeigt!!!!!!!
- im fdroid Store downloaden und installieren
- aCal öffnen
- Einstellungen
- Server => Server hinzufügen => Manuelle Konfiguration
- Name angeben
- aktiv aktivieren
- Benutzername: tineuser
- Passwort: ***
- Benutzer Url: CalDAV URL einfügen
- warten und hoffen das was kommt ..... ;( ... noch nicht ganz klar obs funzt
- android: CalDAV Sync Adapter
- im fdroid Store downloaden und installieren
- Android Einstellungen öffnen => Konten => Konto hinzufügen
- CalDav Sync Adapter auswählen
- User
- Passwort
- Url
- android: aCal App => funktioniert nicht wirklich, Adressbücher und Kalender werden nicht angezeigt!!!!!!!
Dateien / Filemanager
im Browser: https://tine.domain.tld/webdav/Filemanager
kde: dolphin
- dolphin starten
- links unter Orte auf Netzwerk gehen
- Netzwerkordner hinzufügen
- Web-Ordner (webdav)
- Name: tine
- Benutzer: tineusername
- Server: tine.domain.tld
- Port: 443
- Ordner: webdav/Filemanager/
- Verschlüsselung verwenden
- alternativ webdavs://TINEUSER@tine.domain.tld/webdav/Filemanager/personal/TINEUSER/
getestet mit dolphin 4.11.2 und #Collin
Probleme
= 0 Bytes beim Dateiupload / Zugriff verweigert / log: [isEmpty] => You must give a non-empty value for field 'session_id' =
Probleme bei Version Kristina (2013.03.4)
cd /usr/share/tine20/Tinebase/
mv TempFile.php TempFile.php.original
jetzt irgendwie TempFile.php von mantis Bugtracker in das Verzeichnis bringen
Notizen
Sipgate Einbindung
- sipgate Paket tine20-sipgate_2013.03.4.zip von tine20.org
cd /usr/share/tine20
wget http://www.tine20.org/downloads/2013.03.4/tine20-sipgate_2013.03.4.zip
unzip tine20-sipgate_2013.03.4.zip
- im Browser https://tine.domain.tld//setup.php aufrufen und Sipgate installieren
- danach als root ganz normal https://tine.domain.tld/ einloggen
- Sipgate => Konto hinzufügen
- Beschreibung ....
- Mobilnummer, deine Nummer angeben: 49VorwahlNummer
- Sipgate Benutzername: Weblogin Benutzer
- Passwort: Weblogin Passwort
- Sipgate => Konto hinzufügen
Probleme
der credential key wird folgendermaßen in die config.inc.php eingetragen, er muss 24 stellen haben:
return array(
'database' => array(...),
'shared_credential_key' => 'string-mit-24-zeichen',
...
);
danach kannst du folgendes cli-skript ausführen, um die bestehende Konfiguration zu übernehmen:
cd /etc/tine20/
php /usr/share/tine20/tine20.php --username root --password xxx --method Sipgate.take_config
# No sipgate config could be found in config.php.inc!
- übernommen von [2] aksel
update
- Verzeichnis tine20 umbenennen -> tine20-old
- Datenbank backupen
mysqldump --single-transaction --default-character-set=utf8 -u root -p tinedb > mysql.tinedb.20170423.sql
- Neuen Verzeichnis tine20 anlegen
- zb per #git
git clone http://git.tine20.org/git/tine20
- #composer stuff
- Neues Releas dorthin entpacken
- config.inc.php aus altem Verzeichnis in neues Verzeichnis kopieren
- wo liegen denn ganzen dateien aus dem filemanger
more config.inc.php | grep filesdir
- updaten
php setup.php --update
update pfade
von 2017.02.2 zu 2018.08.4
- php 5.6
- 2017.02.2 > 2017.08.1 http://packages.tine20.org/source/2017.08.1/
- 2017.08.1 > 2017.08.11 http://packages.tine20.org/source/2017.08.11/
- php 7.2
- 2017.08.11 > 2018.08.4 https://github.com/tine20/tine20/wiki/EN:Install-Howto | https://github.com/tine20/tine20/wiki/EN%3AUpdate-Howto
- Achtung
- nicht vergessen: apt-get install zendframework
- per apt auf ubuntu 18.04 installiert, es rät sich erstmal nicht die Verzeichnisstruktur in der config zu ändern, führt zu Fehlern die schwer zu finden sind
- tine und apache log Dateien checken
- Achtung
- 2017.08.11 > 2018.08.4 https://github.com/tine20/tine20/wiki/EN:Install-Howto | https://github.com/tine20/tine20/wiki/EN%3AUpdate-Howto
von 2018.08.4 zu 2020.08.5
mysqldump --single-transaction --default-character-set=utf8 -u root -p sync_db > sync_db.2018.08.4.sql
wget https://packages.tine20.org/source/2019.02.1/tine20-allinone_2019.02.1.zip
unzip tine20-allinone_2019.02.1.zip tine20-allinone_2019.02.1
cd tine20-allinone_2019.02.1
php setup.php --config /etc/tine20/config.inc.php --update Tinebase
# Tinebase_Exception_Backend: you already have some utf8mb4 tables, but your db config says utf8, this is bad! in 2019.02.1 Setup/Controller.php:673
php setup.php --config /etc/tine20/config.inc.php --migrateUtf8mb4
php setup.php --config /etc/tine20/config.inc.php --update Tinebase
# Tinebase_Exception: waited for Action Queue to become empty for more than 300 sec in /root/tine20/tine20-allinone_2019.02.1/Setup/Controller.php:985
redis-cli
FLUSHDB
php setup.php --config /etc/tine20/config.inc.php --update Tinebase
cd ..
wget https://packages.tine20.org/source/2019.08.1/tine20-allinone_2019.08.1.zip
unzip tine20-allinone_2019.08.1.zip -d tine20-allinone_2019.08.1
cd tine20-allinone_2019.08.1/
php setup.php --config /etc/tine20/config.inc.php --update
cd ..
https://packages.tine20.org/source/2019.08.4/tine20-allinone_2019.08.4.zip
unzip tine20-allinone_2019.08.4.zip -d tine20-allinone_2019.08.4
cd tine20-allinone_2019.08.4
wget https://packages.tine20.org/source/2019.12.1/tine20-allinone_2019.12.1.zip # Major version jumps are not allowed. 2019.08.4 muss vorher installiert sein
unzip tine20-allinone_2019.12.1.zip -d tine20-allinone_2019.12.1
cd tine20-allinone_2019.12.1/
php setup.php --config /etc/tine20/config.inc.php --check_requirements
apt-get install php-bcmath
php setup.php --config /etc/tine20/config.inc.php --update
cd ..
wget https://packages.tine20.org/source/2020.03.1/tine20-allinone_2020.03.1.zip
unzip tine20-allinone_2020.03.1.zip -d tine20-allinone_2020.03.1
cd tine20-allinone_2020.03.1
php setup.php --config /etc/tine20/config.inc.php --update
cd ..
wget https://packages.tine20.org/source/2020.08.1/tine20-allinone_2020.08.1.zip
unzip tine20-allinone_2020.08.1.zip -d tine20-allinone_2020.08.1
cd tine20-allinone_2020.08.1
php setup.php --config /etc/tine20/config.inc.php --update
cd ..
wget https://packages.tine20.org/source/2020.08.5/tine20-allinone_2020.08.5.zip
unzip tine20-allinone_2020.08.5.zip -d tine20-allinone_2020.08.5
cd tine20-allinone_2020.08.5/
php setup.php --config /etc/tine20/config.inc.php --update
Probleme
sie Tine20#composer
Nutzung
sales
Abbildung eines Prozessen
- Kostenstelle
- Kunde
- Angebot
- Vertrag