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.ymlim Verzeichnis mit folgendem Inhalt:
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.ymlan. - 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.ymlan. - Mehr Informationen dazu finden Sie in der Konfiguration - Starten Sie das Projekt mit dem Befehl
./gradlew bootRun - Das Backend ist nun unter
http://localhost:8080erreichbar
- 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.tsan. - 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:4200erreichbar
- Erstellen Sie ein Build mit dem Befehl
npm run build - Kopieren Sie den Inhalt des Ordners
distin einen eignen Webserver
Konfiguration
Backend
Folgende Environment Konfigurationen können in der Dateiapplication.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
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 Dateisrc/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 Befehljava -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
helpeingesehen 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:
docker-compose.yml Datei.
Starte das CLI-Tool mit dem folgenden Befehl:
- Alle Befehle können mit
helpeingesehen 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 kannUSERoderADMINsein.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:
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 meldenFeature auf der Webseite.

