Installation
Wie kann ich die Software installieren?
Ein Demo-Projekt finden Sie unter Demo.
Das Projekt bietet zwei Möglichkeiten zur Installation. Entweder kann das Projekt über Docker installiert werden oder manuell.
Diese Anleitung ist in zwei Teile unterteilt. Der erste Teil beschreibt die Installation über Docker und der zweite Teil beschreibt die manuelle Installation.
Installation über Docker
Voraussetzungen
- Docker Version 25+
- Mindestens 512 MB freier Arbeitsspeicher
- Mindestens 1 GB freier Festplattenspeicher
Installation
- Erstellen Sie ein neues Verzeichnis und wechseln Sie in dieses Verzeichnis.
- Erstellen Sie eine Datei
docker-compose.yml
im Verzeichnis mit folgendem Inhalt:
Außerdem wird empfohlen in Docker Traefik zu verwenden, um die Anwendung über eine Domain zu erreichen. Hierfür kann folgendes Docker Compose file verwendet werden:
Und eine Datei traefik.yml
im Ordner docker/traefik
mit folgendem Inhalt:
localhost
sollte durch die Domain ersetzt werden, unter der die Anwendung erreichbar sein soll.
Die oben genannten Docker Compose Dateien sind nur Beispiele. Sie können die Dateien an Ihre Bedürfnisse anpassen.
Außerdem finden sie beide Dateien im Ordner
docker
im Repository.
-
Passen Sie die Konfiguration in der Datei
docker-compose.yml
an. - Mehr Informationen dazu finden Sie in der Konfiguration -
Starten Sie das Projekt mit dem Befehl
Manuelle Installation
Voraussetzungen
- Java 21
- Gradle 7
- Node.js 20
- Mindestens 512 MB freier Arbeitsspeicher
- Mindestens 1 GB freier Festplattenspeicher
Installation
Backend
- Klonen Sie das Repository mit dem Befehl
git clone https://github.com/SharedDesk/desk-finder-backend.git
- Wechseln Sie in das Verzeichnis
cd desk-finder-backend
- Passen Sie die Konfiguration in der Datei
application.yml
an. - Mehr Informationen dazu finden Sie in der Konfiguration - Starten Sie das Projekt mit dem Befehl
./gradlew bootRun
- Das Backend ist nun unter
http://localhost:8080
erreichbar
Production Build:
- Erstellen Sie ein JAR-File mit dem Befehl
./gradlew bootJar
- Starten Sie das JAR-File mit dem Befehl
java -jar build/libs/desk-finder-backend-0.0.1-SNAPSHOT.jar
Frontend
- Klonen Sie das Repository mit dem Befehl
git clone https://github.com/SharedDesk/desk-finder-frontend.git
- Wechseln Sie in das Verzeichnis
cd desk-finder-frontend
- Passen Sie die Konfiguration in der Datei
environment.prod.ts
an. - Mehr Informationen dazu finden Sie in der Konfiguration - Installieren Sie die Abhängigkeiten mit dem Befehl
npm install
- Starten Sie das Projekt mit dem Befehl
npm start
- Das Frontend ist nun unter
http://localhost:4200
erreichbar
Production Build:
- Erstellen Sie ein Build mit dem Befehl
npm run build
- Kopieren Sie den Inhalt des Ordners
dist
in einen eignen Webserver
Konfiguration
Backend
Folgende Environment Konfigurationen können in der Datei application.yml
oder docker-compose.yml
vorgenommen werden:
Spring
Database
SPRING_DATASOURCE_URL
- Database URLSPRING_DATASOURCE_USERNAME
- Database UsernameSPRING_DATASOURCE_PASSWORD
- Database Password
Redis
SPRING_REDIS_HOST
- Redis HostSPRING_REDIS_PORT
- Redis Port
Folgende Werte werden benötigt, um den Mailversand zu konfigurieren (Passwort zurücksetzen, etc.)
SPRING_MAIL_HOST
- Mail HostSPRING_MAIL_PORT
- Mail PortSPRING_MAIL_USERNAME
- Mail UsernameSPRING_MAIL_PASSWORD
- Mail PasswordSPRING_MAIL_PROPERTIES_MAIL_SMTP_AUTH
- Mail SMTP AuthSPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_ENABLE
- Mail SMTP StartTLS EnableSPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_REQUIRED
- Mail SMTP StartTLS Required
Custom
JWT
APPLICATION_JWT_SECRET-KEY
- JWT Secret KeyAPPLICATION_JWT_ACCESS-EPIRATION
- JWT Access Token ExpirationAPPLICATION_JWT_REFRESH-EXPIRATION
- JWT Refresh Token Expiration
Cors
APPLICATION_CORS_ALLOWED-ORIGINS
- Allowed Origins (e.g. https://shared-desk.cloud)APPLICATION_PUBLIC-DOMAIN
- Public Domain (e.g. shared-desk.cloud)APPLICATION_PUBLIC-SCHEME
- Public Scheme (http/https)
Sentry
Standardmäßig ist eine Sentry Integration eingebaut. Dieses Feature ist optional.
SENTRY_DSN
- Sentry DSNSENTRY_ENVIRONMENT
- Sentry EnvironmentSENTRY_TRACES_SAMPLE_RATE
- Sentry Traces Sample RateSENTRY_SAMPLE_RATE
- Sentry Sample Rate
Für weitere Informationen zur Konfiguration von Sentry besuchen Sie die Sentry Dokumentation
Auth / Registration / Password Reset
APPLICATION_REGISTRATION-ENABLED
- Registrierung aktiviert (true/false)APPLICATION_REGISTRATION-ROLE-SELECTION-ENABLED
- Registrierung Rolle Auswahl aktiviert (true/false)APPLICATION_REGISTRATION-ROLE-DEFAULT
- Registrierung Rolle Standard (e.g. USER)APPLICATION_REGISTRATION-ROLE-ADMIN-DISABLED-BY-DEFAULT
- Registrierung Rolle Admin standardmäßig deaktiviert ( true/false)APPLICATION_REGISTRATION-MAIL-REGEX
- Registrierung Mail RegexAPPLICATION_REGISTRATION-MAIL-TEMPLATE
- Registrierung Mail Template
Reservation
- Maximale Anzahl an z. B. Tagen oder Wochen, die ein Schreibtisch reserviert werden kann
APPLICATION_RESERVATION-MAX-TIME-AMOUNT
- Anzahl (e.g. 14)APPLICATION_RESERVATION-MAX-TIME-UNIT
- Einheit (e.g. DAYS)
- Ab wann ein alter Reservierungseintrag gelöscht wird
APPLICATION_RESERVATION-OLD-DELETE-TIME-AMOUNT
- Anzahl (e.g. 30)APPLICATION_RESERVATION-OLD-DELETE-TIME-UNIT
- Einheit (e.g. DAYS)
- Maximale Dauer einer Reservierung
APPLICATION_MAX-RESERVATION-DURATION-AMOUNT
- Anzahl (e.g. 7)APPLICATION_MAX-RESERVATION-DURATION-UNIT
- Einheit (e.g. DAYS)
Frontend
Im Frontend ist standardmäßig eine Sentry Integration eingebaut. Dieses Feature ist optional.
Hierfür diese kann in der Datei src/main.ts
die Sentry DSN angepasst werden:
Für weitere Informationen zur Konfiguration von Sentry besuchen Sie die Sentry Dokumentation
CLI
Das Projekt bietet ein CLI-Tool, um die Anwendung zu konfigurieren.
Manuelle Installation
Wenn das Projekt manuell installiert / gebaut wurde, kann das CLI-Tool mit dem
Befehl java -jar desk-finder-backend-0.0.1-SNAPSHOT.jar
gestartet werden.
Dann erscheint eine Console mit den aktuellen Logs und einem Eingabefeld.
- Alle Befehle können mit
help
eingesehen werden. - Eine Liste aller Befehle finden Sie in der CLI Dokumentation
Docker Installation
Using the CLI in Docker
Erstellen sie wenn noch nicht vorhanden eine .env
Datei mit folgendem Inhalt:
Die Umgebungsvariablen müssen an die eigene Konfiguration angepasst werden. Also gleiche Werte wie in
der docker-compose.yml
Datei.
Starte das CLI-Tool mit dem folgenden Befehl:
Nun startet sich eine 2. Instanz des Backends, die nur das CLI-Tool bereitstellt. Dabei ist es egal, ob bereits eine Instanz des Backends läuft oder nicht.
In der Konsole können nun die Befehle ausgeführt werden.
- Alle Befehle können mit
help
eingesehen werden. - Eine Liste aller Befehle finden Sie in der CLI Dokumentation
CLI Commands
User Befehle
user-create firstname lastname email role
- Erstelle einen neuen Benutzer mit den gegebenen Parametern. Die Rolle kannUSER
oderADMIN
sein.user-set-password email password
- Setze das Passwort für den Benutzer mit der gegebenen E-Mail.user-enable email
- Aktiviere den Benutzer mit der gegebenen E-Mail.user-disable email
- Deaktiviere den Benutzer mit der gegebenen E-Mail.
Beispiel Befehle
- Ersten Admin User erstellen, falls zb die Admin-Registrierung deaktiviert ist:
- Passwort für den Benutzer setzen:
Weitere Befehle können in der Konsole mit help
eingesehen werden.
Demo
- Eine laufende Instanz des Projekts ist unter https://production.shared-desk.cloud erreichbar.
- Die API Dokumentation ist unter https://production.shared-desk.cloud/swagger-ui/ erreichbar.
- Bei Fragen oder Problemen können Sie sich gerne an uns wenden. Wir helfen Ihnen gerne weiter.
- Melden Sie sich einfach über das
Problem melden
Feature auf der Webseite.
Was this page helpful?