# 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/). ## Projekt-Setup Stelle sicher, dass du die notwendige Umgebungsvariable für die Datenbank konfiguriert hast. Erstelle eine `.env` Datei im Hauptverzeichnis: ```bash DATABASE_URL="sqlite:community.db" Initialisiere die Datenbank und führe die Migrationen aus: Bash 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 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: 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. sudo dnf install dart-sass (Fedora) oder npm install -g sass - Zum Kompilieren der main.scss. WASM-Krypto: Die Datei .cargo/config.toml muss existieren, um das wasm_js Backend für getrandom zu aktivieren: Ini, TOML [target.wasm32-unknown-unknown] rustflags = ["--cfg", "getrandom_backend=\"wasm_js\""] Compiling for Release Bash 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 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 Server-Binärdatei: target/release/bytemalte_de Das Site-Verzeichnis: target/site Die Datenbank: community.db 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 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. Damit ist deine Dokumentation jetzt vollständig und professionell strukturiert! **Gibt es noch etwas, das ich an der README anpassen soll, oder bist du bereit für das erste Deployment?**