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"
Initialisiere die Datenbank und führe die Migrationen aus:
Bash
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.
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
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:
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.
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]
rustflags = ["--cfg", "getrandom_backend=\"wasm_js\""]
Compiling for Release
Bash
Produktion / Release Build
Erzeuge eine optimierte Release-Version:
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
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
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 Tests befinden sich im Verzeichnis end2end/tests.
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
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
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 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.
Starte die Anwendung:
./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