3.1 KiB
3.1 KiB
bytemalte_de - Community Chat
Dies ist ein Fullstack-Projekt für einen modernen Gruppenchat, entwickelt mit dem Leptos Web-Framework, dem cargo-leptos Tool, Axum und SQLite.
Projekt-Setup
Stelle sicher, dass du die notwendige Umgebungsvariable für die Datenbank konfiguriert hast. Erstelle eine .env Datei im Hauptverzeichnis:
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?**