Installation und Konfiguration¶
Info
Die Docker-basierte Installation gilt nur fuer das ENTERPRISE-Abonnement bei On-Premise-Hosting.
Diese Anleitung beschreibt die Installation und Konfiguration von calServer in einer Docker-Umgebung auf einem Linux-System (z. B. Ubuntu 24.04). Sie richtet sich an IT-Administratoren und umfasst alle wesentlichen Schritte von der Einrichtung der Docker-Umgebung bis zur initialen Datenbankeinrichtung.
Voraussetzungen¶
- Betriebssystem: Ubuntu 24.04 oder vergleichbare Linux-Distribution
- Benutzerrechte: Administrator- bzw. sudo-Rechte oder Benutzer in der Docker-Gruppe
- Netzwerk: Freigegebene Ports (80, 443, SSH) und konfigurierte Firewall
- Software: Git, Docker Engine, Docker Compose Plugin
- Systemressourcen: Siehe Systemanforderungen
Docker und Docker Compose installieren¶
Falls Docker noch nicht installiert ist:
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
sudo apt install docker-compose-plugin
docker --version
docker compose version
calServer installieren¶
Arbeitsverzeichnis vorbereiten¶
Falls Sie das Datenverzeichnis extern mappen, stellen Sie sicher, dass die erforderliche Ablagestruktur existiert. Andernfalls wird /data/calserver automatisch mit folgender Struktur erstellt:
sudo mkdir -p /data/calserver /data/calserver/filemanager/dms /data/calserver/filemanager/inbox /data/calserver/filemanager/reports /data/calserver/local
Repository klonen¶
sudo apt install git
git clone https://calhelp@bitbucket.org/calserver/calserver-start.git
cd calserver-start
Installer ausfuehren¶
Das Installationsskript kopiert alle Compose-Dateien, Shell-Skripte und die .env-Vorlage in das Master-Verzeichnis und richtet einen Autostart-Service unter /var/calserver/deploy ein:
Bei bestehenden Installationen verwenden Sie alternativ:
Konfiguration anpassen¶
Wechseln Sie in das Master-Verzeichnis und oeffnen Sie die .env-Datei:
Passen Sie insbesondere folgende Eintraege an:
IMAGE_TAG=release-latest
YII_DEBUG=false
DOMAIN=meinefirma.calserver.com
SUBSCRIPTION=EXPERT
LETSENCRYPT=true
LETSENCRYPT_EMAIL=admin@meinefirma.com
DOCKER_PATH=/var/calserver
SSL_CERT_PATH=/var/calserver/ssl
DB_HOST=mysql_db
DB_ROOT_PASSWORD=MyFirmaRoot!23
DB_DATABASE=calserver
DB_USER=root
DB_PASSWORD=MyFirmaDB!45
MYSQL_DATA_PATH=/data/mysql
BORG_PASSPHRASE=MyFirmaBorg!67
BORG_REMOTE=
BORG_REMOTE_PASS=
BORG_REPO_DIR=
STORAGE_BORG_BACKUP=
FILE_MANAGER_PATH=/data/calserver/filemanager
DMS_PATH=/data/calserver/filemanager/dms
INBOX_PATH=/data/calserver/filemanager/inbox
REPORTS_PATH=/data/calserver/filemanager/reports
LOCAL_PATH=/data/calserver/local
CALSERVER_HOST=meinefirma.calserver.com
Warning
Ersetzen Sie die Beispielpasswoerter durch sichere, individuelle Passwoerter. Die hier gezeigten Werte dienen nur zur Veranschaulichung.
Update und Bereitstellung¶
Container-Images laden¶
Fuer den Download ist ein Docker Hub Login erforderlich, der ueber Ihr Abonnement bereitgestellt wird:
Deployment ausfuehren¶
Pruefen Sie den Container-Status:
Nach dem Deployment ist die Anwendung unter der konfigurierten Domain erreichbar und zeigt die Meldung zur Initialisierung der Datenbank an.
Datenbankeinrichtung im MySQL-Container¶
Nach dem ersten deploy.sh muessen Sie die Datenbank und den Benutzer im MySQL-Container anlegen.
Verbinden Sie sich mit dem MySQL-Container:
Fuehren Sie die folgenden SQL-Befehle aus (Werte aus .env verwenden):
CREATE DATABASE calserver;
CREATE USER 'calhelp'@'%' IDENTIFIED BY 'MyFirmaDB!45';
GRANT ALL PRIVILEGES ON calserver.* TO 'calhelp'@'%';
FLUSH PRIVILEGES;
EXIT;
Warning
Verlassen Sie die Docker-Exec-Session vollstaendig mit exit, bevor Sie fortfahren.
Starten Sie den calServer erneut:
calServer V2 einrichten¶
Die V2-Komponenten (Laravel API + Nuxt Frontend + Redis) werden ueber das zusaetzliche Compose-File docker-compose.v2.yml bereitgestellt.
Erstmalige Einrichtung¶
Beim ersten Start des calserver-api-v2-Containers werden automatisch:
- Datenbankmigrationen ausgefuehrt (
artisan migrate) - RBAC-Operationen und -Gruppen angelegt (
artisan app:setup) - Ein Super-Admin-Benutzer erstellt:
- E-Mail:
- Passwort:
Warning
Aendern Sie das Standardpasswort des Super-Admin-Benutzers nach der ersten Anmeldung.
V2-Container starten¶
V2-Container-Status pruefen¶
docker ps --filter "name=calserver-api-v2"
docker ps --filter "name=calserver-frontend"
docker ps --filter "name=calserver-redis"
Manuelles Setup (bestehende Installation)¶
Falls die V2-Datenbank auf einer bestehenden V1-Datenbank aufsetzt und der Login nicht funktioniert, fuehren Sie das Setup manuell aus:
Der Befehl ist idempotent — bereits vorhandene Eintraege werden uebersprungen.
V2-Logs einsehen¶
Firewall-Konfiguration (UFW)¶
sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose
Datenuebertragung zwischen Systemen¶
Dateidaten uebertragen¶
Einmaliges Kopieren:
Synchronisation (empfohlen):
Datenbank uebertragen¶
Export vom Quellserver:
Import auf dem Zielserver:
Oder kombiniert:
mysqldump -h YourSourceIP -uYourDBUserSource -pYourDBPassSource [Datenbankname] | mysql -h localhost -uYourDBUserTarget -pYourDBPassTarget [Datenbankname]
Fehlerbehebung¶
Bei Problemen waehrend der Installation oder im Betrieb:
- Container-Status pruefen:
docker ps - Log-Ausgaben einsehen:
docker logs <container-name> - Arbeitsverzeichnis pruefen:
pwd - Netzwerk und Firewall testen: Ports 80, 443, 22 muessen geoeffnet sein
- Berechtigungen pruefen: sudo-Rechte oder Docker-Gruppe
Weitergehende Fehlerbehebung finden Sie unter Fehlerbehebung.