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 1. 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. 2. 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