diff --git a/README.md b/README.md index 2a5ef60..bee5de9 100644 --- a/README.md +++ b/README.md @@ -1,90 +1,99 @@ -# bytemalte_de - Community Chat +bytemalte_de – Community Chat -Dies ist ein Fullstack-Projekt für einen modernen Gruppenchat, entwickelt mit dem [Leptos](https://github.com/leptos-rs/leptos) Web-Framework, dem [cargo-leptos](https://github.com/akesson/cargo-leptos) Tool, [Axum](https://github.com/tokio-rs/axum) und [SQLite](https://sqlite.org/). +Dies ist ein Fullstack-Projekt für einen modernen Gruppenchat, entwickelt mit: +- Leptos – Web-Framework aus Rust +- cargo-leptos – Fullstack-Build-Tool +- Axum – Webserver-Framework +- SQLite – Leichte Embedded-Datenbank -## Projekt-Setup -Stelle sicher, dass du die notwendige Umgebungsvariable für die Datenbank konfiguriert hast. Erstelle eine `.env` Datei im Hauptverzeichnis: +Projekt-Setup -```bash +1. Datenbank konfigurieren + +Erstelle im Hauptverzeichnis eine .env Datei mit folgendem Inhalt: DATABASE_URL="sqlite:community.db" -Initialisiere die Datenbank und führe die Migrationen aus: - -Bash +Initialisiere anschließend die Datenbank und führe Migrationen aus: sqlx db create sqlx migrate run + Damit werden die Tabellen für Benutzer und Nachrichten in der Datei community.db angelegt. -Running your project -Um den Entwicklungs-Server mit Hot-Reload zu starten, führe folgenden Befehl aus: -Bash +2. Entwicklungsserver starten +Starte das Projekt mit Hot-Reload: cargo leptos watch -Das Projekt wird kompiliert (WASM für das Frontend und Binärdatei für das Backend) und ist unter http://127.0.0.1:3000 erreichbar. -Installing Additional Tools -Da dieses Projekt kryptografische Funktionen (bcrypt) und Datenbank-Abfragen nutzt, werden zusätzliche Tools und Konfigurationen benötigt: +Nach erfolgreicher Kompilierung (WASM für das Frontend und Binärdatei für das Backend) ist die Anwendung unter +http://127.0.0.1:3000 erreichbar. -rustup target add wasm32-unknown-unknown - Ermöglicht die Kompilierung von Rust zu WebAssembly. -cargo install sqlx-cli --no-default-features --features sqlite - Tool für Datenbank-Migrationen. +Zusätzliche Tools und Konfiguration -sudo dnf install dart-sass (Fedora) oder npm install -g sass - Zum Kompilieren der main.scss. +Dieses Projekt nutzt kryptografische Funktionen (bcrypt) und Datenbankzugriffe. Stelle sicher, dass folgende Tools installiert sind: -WASM-Krypto: Die Datei .cargo/config.toml muss existieren, um das wasm_js Backend für getrandom zu aktivieren: +rustup target add wasm32-unknown-unknown +cargo install sqlx-cli --no-default-features --features sqlite -Ini, TOML +SASS Compiler: +Fedora: +sudo dnf install dart-sass +oder mit npm: +npm install -g sass +Füge folgende Konfiguration in .cargo/config.toml hinzu, um das WASM-Krypto-Backend zu aktivieren: [target.wasm32-unknown-unknown] rustflags = ["--cfg", "getrandom_backend=\"wasm_js\""] -Compiling for Release -Bash + +Produktion / Release Build + +Erzeuge eine optimierte Release-Version: cargo leptos build --release -Dieser Befehl generiert die optimierte Server-Binärdatei in target/release/bytemalte_de und das Site-Paket (WASM/JS/CSS) in target/site. -Testing Your Project -Bash +Dieser Befehl erstellt: +- Die Server-Binärdatei unter target/release/bytemalte_de +- Das Frontend-Paket (WASM/JS/CSS) unter target/site + +Tests ausführen + +Führe End-to-End-Tests mit Playwright aus: cargo leptos end-to-end -Cargo-leptos nutzt Playwright für End-to-End-Tests. Die Tests befinden sich im Verzeichnis end2end/tests. -Executing a Server on a Remote Machine (Ubuntu 24.04 VPS) -Nach einem erfolgreichen cargo leptos build --release werden folgende Dateien auf dem Zielserver benötigt: +Die Tests befinden sich im Verzeichnis end2end/tests. -Die Server-Binärdatei: target/release/bytemalte_de -Das Site-Verzeichnis: target/site +Deployment auf einem entfernten Server (Ubuntu 24.04 VPS) -Die Datenbank: community.db +Nach cargo leptos build --release benötigst du auf dem Zielserver folgende Dateien: +- target/release/bytemalte_de +- target/site/ +- community.db +- .env -Die Umgebungsvariable: .env - -Die Verzeichnisstruktur auf dem VPS sollte wie folgt aussehen: - -Plaintext - -bytemalte_de -site/ -community.db -.env -Setze die folgenden Umgebungsvariablen für den Betrieb (z.B. in einem Systemd-Service): - -Bash +Beispielhafte Verzeichnisstruktur: +bytemalte_de/ +├── site/ +├── community.db +└── .env +Exportiere die Umgebungsvariablen (z. B. in einem Systemd-Service): export LEPTOS_OUTPUT_NAME="bytemalte_de" export LEPTOS_SITE_ROOT="site" export LEPTOS_SITE_PKG_DIR="pkg" export LEPTOS_SITE_ADDR="0.0.0.0:3000" export DATABASE_URL="sqlite:community.db" -Starte die Anwendung durch Ausführen der Binärdatei: ./bytemalte_de -Licensing -Dieses Projekt basiert auf dem Leptos Axum Starter Template. Die spezifische Chat-Logik und das Design wurden für bytemalte_de angepasst. +Starte die Anwendung: +./bytemalte_de -Damit ist deine Dokumentation jetzt vollständig und professionell strukturiert! +Lizenz & Urheberrecht -**Gibt es noch etwas, das ich an der README anpassen soll, oder bist du bereit für das erste Deployment?** \ No newline at end of file +Dieses Projekt basiert auf dem Leptos Axum Starter Template. +Die spezifische Chat-Logik, das Styling und UI-Design wurden individuell für bytemalte_de entwickelt. + +Entwickelt mit ❤️ von bytemalte