Files
bytemalte_de/README.md
2025-12-17 19:46:15 +00:00

3.3 KiB

Leptos Logo

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?**