bytemalte_de – Community Chat
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
- Datenbank konfigurieren
Erstelle im Hauptverzeichnis eine .env Datei mit folgendem Inhalt: DATABASE_URL="sqlite:community.db"
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.
- Entwicklungsserver starten
Starte das Projekt mit Hot-Reload: cargo leptos watch
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.
Zusätzliche Tools und Konfiguration
Dieses Projekt nutzt kryptografische Funktionen (bcrypt) und Datenbankzugriffe. Stelle sicher, dass folgende Tools installiert sind:
rustup target add wasm32-unknown-unknown cargo install sqlx-cli --no-default-features --features sqlite
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""]
Produktion / Release Build
Erzeuge eine optimierte Release-Version: cargo leptos build --release
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
Die Tests befinden sich im Verzeichnis end2end/tests.
Deployment auf einem entfernten Server (Ubuntu 24.04 VPS)
Nach cargo leptos build --release benötigst du auf dem Zielserver folgende Dateien:
- target/release/bytemalte_de
- target/site/
- community.db
- .env
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: ./bytemalte_de
Lizenz & Urheberrecht
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