better Readme without Markdown yet

This commit is contained in:
Malte Schröder
2025-12-18 15:06:30 +01:00
parent 9dba343301
commit f300781230

105
README.md
View File

@@ -1,90 +1,99 @@
# bytemalte_de - Community Chat 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/). 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
Stelle sicher, dass du die notwendige Umgebungsvariable für die Datenbank konfiguriert hast. Erstelle eine `.env` Datei im Hauptverzeichnis: Projekt-Setup
```bash 1. Datenbank konfigurieren
Erstelle im Hauptverzeichnis eine .env Datei mit folgendem Inhalt:
DATABASE_URL="sqlite:community.db" DATABASE_URL="sqlite:community.db"
Initialisiere die Datenbank und führe die Migrationen aus:
Bash
Initialisiere anschließend die Datenbank und führe Migrationen aus:
sqlx db create sqlx db create
sqlx migrate run sqlx migrate run
Damit werden die Tabellen für Benutzer und Nachrichten in der Datei community.db angelegt. 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 2. Entwicklungsserver starten
Starte das Projekt mit Hot-Reload:
cargo leptos watch 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 Nach erfolgreicher Kompilierung (WASM für das Frontend und Binärdatei für das Backend) ist die Anwendung unter
Da dieses Projekt kryptografische Funktionen (bcrypt) und Datenbank-Abfragen nutzt, werden zusätzliche Tools und Konfigurationen benötigt: http://127.0.0.1:3000 erreichbar.
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. Zusätzliche Tools und Konfiguration
sudo dnf install dart-sass (Fedora) oder npm install -g sass - Zum Kompilieren der main.scss. Dieses Projekt nutzt kryptografische Funktionen (bcrypt) und Datenbankzugriffe. Stelle sicher, dass folgende Tools installiert sind:
WASM-Krypto: Die Datei .cargo/config.toml muss existieren, um das wasm_js Backend für getrandom zu aktivieren: rustup target add wasm32-unknown-unknown
cargo install sqlx-cli --no-default-features --features sqlite
Ini, TOML 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] [target.wasm32-unknown-unknown]
rustflags = ["--cfg", "getrandom_backend=\"wasm_js\""] rustflags = ["--cfg", "getrandom_backend=\"wasm_js\""]
Compiling for Release
Bash
Produktion / Release Build
Erzeuge eine optimierte Release-Version:
cargo leptos build --release 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 Dieser Befehl erstellt:
Bash - 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 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) Die Tests befinden sich im Verzeichnis end2end/tests.
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 Deployment auf einem entfernten Server (Ubuntu 24.04 VPS)
Die Datenbank: community.db Nach cargo leptos build --release benötigst du auf dem Zielserver folgende Dateien:
- target/release/bytemalte_de
- target/site/
- community.db
- .env
Die Umgebungsvariable: .env Beispielhafte Verzeichnisstruktur:
bytemalte_de/
Die Verzeichnisstruktur auf dem VPS sollte wie folgt aussehen: ├── site/
├── community.db
Plaintext └── .env
bytemalte_de
site/
community.db
.env
Setze die folgenden Umgebungsvariablen für den Betrieb (z.B. in einem Systemd-Service):
Bash
Exportiere die Umgebungsvariablen (z.B. in einem Systemd-Service):
export LEPTOS_OUTPUT_NAME="bytemalte_de" export LEPTOS_OUTPUT_NAME="bytemalte_de"
export LEPTOS_SITE_ROOT="site" export LEPTOS_SITE_ROOT="site"
export LEPTOS_SITE_PKG_DIR="pkg" export LEPTOS_SITE_PKG_DIR="pkg"
export LEPTOS_SITE_ADDR="0.0.0.0:3000" export LEPTOS_SITE_ADDR="0.0.0.0:3000"
export DATABASE_URL="sqlite:community.db" export DATABASE_URL="sqlite:community.db"
Starte die Anwendung durch Ausführen der Binärdatei: ./bytemalte_de
Licensing Starte die Anwendung:
Dieses Projekt basiert auf dem Leptos Axum Starter Template. Die spezifische Chat-Logik und das Design wurden für bytemalte_de angepasst. ./bytemalte_de
Damit ist deine Dokumentation jetzt vollständig und professionell strukturiert! Lizenz & Urheberrecht
**Gibt es noch etwas, das ich an der README anpassen soll, oder bist du bereit für das erste Deployment?** 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