# Installation

# Systemvoraussetzungen

## Systemvoraussetzungen

<table id="bkmrk-komponenteminimumemp"><thead><tr><th>Komponente</th><th>Minimum</th><th>Empfohlen</th></tr></thead><tbody><tr><td>Betriebssystem</td><td>Ubuntu 22.04 LTS</td><td>Ubuntu 24.04 LTS</td></tr><tr><td>CPU</td><td>2 vCPU</td><td>2 vCPU</td></tr><tr><td>RAM</td><td>1 GB</td><td>2 GB</td></tr><tr><td>Speicher</td><td>30 GB</td><td>60 GB SSD</td></tr></tbody></table>

### Software

- Docker Engine 24+
- Docker Compose v2
- Git
- Nginx als Reverse Proxy
- SSL-Zertifikat

### Powerbird SQL-Benutzer benoetigt

- SELECT auf HWTER, HWMIT, LOURL, ELWZV, ELDVD, ELDVV, ELDVK
- INSERT und UPDATE auf HWTER

### Dimensionierung nach Mitarbeiterzahl

Die Last entsteht weniger durch die Node.js-Anwendung selbst als durch SMB-Lesevorgaenge (Werkzeugbilder, Dokumente) und MSSQL-Abfragen gegen Powerbird. Massgeblich ist die Anzahl gleichzeitig aktiver Nutzer, nicht die Gesamtzahl der Accounts.

<table id="bkmrk-mitarbeiter-%28account"><thead><tr><th>Mitarbeiter (Accounts)</th><th>Gleichzeitige Nutzer</th><th>CPU</th><th>RAM</th></tr></thead><tbody><tr><td>bis 25</td><td>bis 10</td><td>1-2 vCPU</td><td>1 GB</td></tr><tr><td>bis 75</td><td>bis 25</td><td>2 vCPU</td><td>2 GB</td></tr><tr><td>bis 150</td><td>bis 50</td><td>2-4 vCPU</td><td>4 GB</td></tr><tr><td>bis 300+</td><td>bis 100</td><td>4 vCPU</td><td>4-8 GB</td></tr></tbody></table>

Bei sehr kleinen Betrieben (unter 30 Mitarbeitern) reicht oft schon ein 1-vCPU/1-GB-Server aus. Die in der Tabelle oben genannten 2 vCPU/2 GB sind der komfortable Standardwert, mit dem auch Lastspitzen (z.B. morgens beim gleichzeitigen App-Start vieler Mitarbeiter) gut abgefedert werden. Der Sync-Job laeuft alle 5 Minuten im Hintergrund und ist fuer die genannten Groessenordnungen vernachlaessigbar.

# Installation Schritt fuer Schritt

## Installation

### 1. Docker und Git

```
curl -fsSL https://get.docker.com | sh
systemctl enable docker
apt-get install -y git
```

### 2. Repository klonen

```
cd /opt
git clone https://github.com/ldroeger/LD-Connect-Portal.git
cd LD-Connect-Portal
```

### 3. Konfiguration

```
cp .env.example .env
nano .env
# DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD, JWT_SECRET anpassen
```

### 4. Starten

```
docker compose up -d --build
```

### 5. Nginx und SSL

```
apt-get install -y nginx certbot python3-certbot-nginx
certbot --nginx -d portal.ihrefirma.de
```

### 6. Einrichtungsassistent

Browser oeffnen: https://portal.ihrefirma.de und den Schritten folgen.

# Backup einrichten

## Backup

Nur die SQLite-Datenbank muss gesichert werden.

```
# Crontab -e
0 2 * * * cp /opt/LD-Connect-Portal/data/local.db /backup/local_$(date +%Y%m%d).db
0 3 * * * find /backup -name local_*.db -mtime +30 -delete
```

### Gesicherte Daten

- Benutzerkonten und Rollen
- Urlaubsantraege
- Krankmeldungen
- Einstellungen und Branding