Youji ist das das Hausmeister Ticketsystem der Industrieschule Chemnitz
- Ticketverwaltung mit anpassbaren Prioritäten, Gebäuden, Status
- Kommentarfunktion
- Datei und Bilderupload
- Ticketexport via PDF
- Berechtigungssystem
- Admin
- Hausmeister
- Lehrer
- Email Benachrichtigungen
- Konfigurierbare automatische Ticketlöschung
- Duplikat Vermeidung bei Anlegen von Tickets
- Mehrsprachigkeit in Deutsch und Englisch
- Dark und White Mode
Das Deployment von Youji erfolgt mithilfe von Docker. Im Verzeichnis deployment befinden sich:
- Eine docker-compose.yml-Datei, die alle notwendigen Container definiert.
- Zusätzliche Konfigurationsdateien, z. B. für die Backend-Einstellungen.
Um Youji zu starten, navigiere in das deployment-Verzeichnis und führe den folgenden Befehl aus:
docker compose up -d- Datenbank (Youji_Database)
- PostgreSQL-Datenbank
- Speichert persistente Daten in einem Docker-Volume
- Bei Bedarf kann eine eigene PostgresSQL Datenbank verwendet werden. Dafür muss dieser Service aus der docker-compose.yml entfernt werden und der Datenbank Connection String in der
- Backend (Youji-Backend)
- Backend-Anwendung von Youji
- Abhängig von der Datenbank. Startet erst sobald die Datenbank bereit und initialisiert ist.
- Erstellt eigenständig die vollständige Datenbankstruktur oder updated diese bei bedarf
- Läuft unter Port 3001
- Konfigurationsdatei (appsettings.json) wird per Volume eingebunden
- Frontend (Youji-Frontend)
- Web-Oberfläche von Youji
- Abhängig vom Backend. Startet erst sobald das Backend startet
- Läuft unter Port 3000
- Über die Umgebungsvariable NUXT_PUBLIC_BACKEND_URL(.env) wird bestimmt, über welche öffentlich Domain das Backend erreichbar ist.
In den folgenden Dateien des deployment Verzeichnisses müssen folgende Konfigurationen festgelegt werden:
Warning
Diese Datei muss zu .env umbenannt werden
| Name | Beschreibung | Beispiel |
|---|---|---|
| POSTGRES_USER | Benutzername für die Datenbank (Nach dem ersten Start nicht veränderbar) | youji |
| POSTGRES_PASSWORD | Passwort für die Datenbank (Nach dem ersten Start nicht veränderbar) | mysecurepassword |
| POSTGRES_DB | Name der Datenbank (Nach dem ersten Start nicht veränderbar) | youji_db |
| PUBLIC_BACKEND_URL | Öffentliche URL des Backends | http://localhost:3001 |
| Name | Beschreibung | Datentyp | Beispiel |
|---|---|---|---|
| Logging.LogLevel.Default | Standard-Log-Level | string | "Information" |
| Logging.LogLevel.Microsoft.AspNetCore | Log-Level für ASP.NET Core | string | "Warning" |
| ConnectionStrings.DefaultConnection | Verbindungs-String zur Datenbank | string | "Host=database;Database=youji_db;Username=youji;Password=secret" |
| DevAuth | Entwicklungsmodus für Authentifizierung | bool | false |
| JWTKey | Schlüssel für JWT-Signatur | string | "my-secret-jwt-key" |
| SessionLifeTime | Lebensdauer der Sitzung in Minuten. Kann mit refresh-token verlängert werden | int | 720 |
| LDAP.Host | Host des LDAP-Servers | string | "ldap.example.com" |
| LDAP.Port | Port des LDAP-Servers | int | 389 |
| LDAP.BaseDN | Basis-DN für LDAP-Suche | string | "dc=example,dc=com" |
| LDAP.EMailAttributeName | Attribut für die E-Mail-Adresse im LDAP | string | "userPrincipalName" |
| CORS.AllowedOrigins | Liste der erlaubten Client Origins (CORS) | string[] | ["http://localhost:3000"] |
| CORS.AllowedHeaders | Erlaubte HTTP-Header (CORS) | string[] | ["Authorization", "content-type"] (Diese sind zwingend benötigt) |
| CORS.AllowedMethods | Erlaubte HTTP-Methoden (CORS) | string[] | ["GET", "POST", "PUT", "PATCH", "DELETE"] (Diese sind zwingend benötigt) |
| Mail.SenderName | Anzeigename des Absenders | string | "Youji Hausmeister Ticketsystem" |
| Mail.SenderAddress | E-Mail-Adresse des Absenders | string | "no-repy@youji.com" |
| Mail.SmtpAddress | Adresse des SMTP-Servers | string | "smtp.youji.com" |
| Mail.SmtpPort | Port des SMTP-Servers | int | 587 |
| Mail.UseSsl | Ob SSL für SMTP verwendet wird | bool | true |
| Mail.SubjectFormat | Format des E-Mail-Betreffs | string | "[Youji] {0}" |
| Mail.SmtpUser | Benutzername für SMTP-Login | string? | "youji-smtp-user" |
| Mail.SmtpPassword | Passwort für SMTP-Login | string? | "supersecretpassword" |
| Mail.FrontendTicketBaseUri | Uri zur Basis-Route der Ticket-Detailansicht, welche für die Generierung eines Links in E-Mails verwendet wird | string? | "https://localhost:3000/tickets/" |
| Images.UnrenderableMimeTypes | Nicht darstellbare Bildformate. Für diese Formate wird kein BlurHash generiert und im Frontend keine Bilddarstellung angezeigt | string | "image/svg+xml" |
Caution
Der Wert DevAuth sollte in Produktiv Umgebungen IMMER auf false sein. Ist dieser aktiv werden Login Mechaniken effektiv ausgehebelt. Dann ist ein Login mit einem beliebigen Nutzer und Passwort immer möglich. Nicht bekannte Nutzer werden angelegt
Tip
Für die Generierung des JWTKey kann jwtsecret verwendet werden.
Tip
In dem Wert Mail.SubjectFormat wird {0} mit dem einem Betreff Text ersetzt. Aus "[Youji] {0}" wird z.B "[Youji] New comment on ticket 'Defekte Heizung im Keller'"
Tip
Wenn Mail.SmtpUser und Mail.SmtpPassword beide null sind, wird sich ohne Authentifizierung an dem SMTP Server angemeldet




