Zum Inhalt

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

sudo mkdir -p /var/calserver
cd /var/calserver

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:

chmod +x *.sh
./install.sh

Bei bestehenden Installationen verwenden Sie alternativ:

./copy_to_master.sh

Konfiguration anpassen

Wechseln Sie in das Master-Verzeichnis und oeffnen Sie die .env-Datei:

cd ..
nano .env

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:

docker login -u "IhrBenutzername" -p "IhrServicePasswort"
./update.sh

Deployment ausfuehren

./deploy.sh

Pruefen Sie den Container-Status:

docker ps

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:

docker exec -it mysql_db mysql -u root -p

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:

./deploy.sh

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:

  1. Datenbankmigrationen ausgefuehrt (artisan migrate)
  2. RBAC-Operationen und -Gruppen angelegt (artisan app:setup)
  3. Ein Super-Admin-Benutzer erstellt:
    • E-Mail:
    • Passwort:

Warning

Aendern Sie das Standardpasswort des Super-Admin-Benutzers nach der ersten Anmeldung.

V2-Container starten

docker compose -f docker-compose.yml -f docker-compose.v2.yml up -d

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:

docker exec -it calserver-api-v2 php /app/artisan app:setup

Der Befehl ist idempotent — bereits vorhandene Eintraege werden uebersprungen.

V2-Logs einsehen

docker logs calserver-api-v2
docker logs calserver-frontend

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:

scp -r root@YourOldServer:/var/filemanager/ /data/calserver/filemanager

Synchronisation (empfohlen):

rsync -avz -e 'ssh' root@YourOldServer:/var/filemanager/backup/ /data/calserver/filemanager

Datenbank uebertragen

Export vom Quellserver:

mysqldump -u root -p [Datenbankname] > [Datenbankname].sql

Import auf dem Zielserver:

mysql -u root -p newdatabase < /path/to/newdatabase.sql

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.