better Readme without Markdown yet
This commit is contained in:
105
README.md
105
README.md
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user