Update README.md

This commit is contained in:
2025-12-17 19:46:15 +00:00
parent 506f12adc2
commit f07b1baba0

114
README.md
View File

@@ -3,89 +3,93 @@
<img src="https://raw.githubusercontent.com/leptos-rs/leptos/main/docs/logos/Leptos_logo_RGB.svg" alt="Leptos Logo">
</picture>
# Leptos Axum Starter Template
# bytemalte_de - Community Chat
This is a template for use with the [Leptos](https://github.com/leptos-rs/leptos) web framework and the [cargo-leptos](https://github.com/akesson/cargo-leptos) tool using [Axum](https://github.com/tokio-rs/axum).
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/).
## Creating your template repo
## Projekt-Setup
If you don't have `cargo-leptos` installed you can install it with
Stelle sicher, dass du die notwendige Umgebungsvariable für die Datenbank konfiguriert hast. Erstelle eine `.env` Datei im Hauptverzeichnis:
```bash
cargo install cargo-leptos --locked
```
DATABASE_URL="sqlite:community.db"
Initialisiere die Datenbank und führe die Migrationen aus:
Then run
```bash
cargo leptos new --git https://github.com/leptos-rs/start-axum
```
Bash
to generate a new project template.
sqlx db create
sqlx migrate run
Damit werden die Tabellen für Benutzer und Nachrichten in der Datei community.db angelegt.
```bash
cd bytemalte_de
```
Running your project
Um den Entwicklungs-Server mit Hot-Reload zu starten, führe folgenden Befehl aus:
to go to your newly created project.
Feel free to explore the project structure, but the best place to start with your application code is in `src/app.rs`.
Additionally, Cargo.toml may need updating as new versions of the dependencies are released, especially if things are not working after a `cargo update`.
Bash
## Running your project
```bash
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
Installing Additional Tools
Da dieses Projekt kryptografische Funktionen (bcrypt) und Datenbank-Abfragen nutzt, werden zusätzliche Tools und Konfigurationen benötigt:
By default, `cargo-leptos` uses `nightly` Rust, `cargo-generate`, and `sass`. If you run into any trouble, you may need to install one or more of these tools.
rustup target add wasm32-unknown-unknown - Ermöglicht die Kompilierung von Rust zu WebAssembly.
1. `rustup toolchain install nightly --allow-downgrade` - make sure you have Rust nightly
2. `rustup target add wasm32-unknown-unknown` - add the ability to compile Rust to WebAssembly
3. `cargo install cargo-generate` - install `cargo-generate` binary (should be installed automatically in future)
4. `npm install -g sass` - install `dart-sass` (should be optional in future
5. Run `npm install` in end2end subdirectory before test
cargo install sqlx-cli --no-default-features --features sqlite - Tool für Datenbank-Migrationen.
sudo dnf install dart-sass (Fedora) oder npm install -g sass - Zum Kompilieren der main.scss.
WASM-Krypto: Die Datei .cargo/config.toml muss existieren, um das wasm_js Backend für getrandom zu aktivieren:
Ini, TOML
[target.wasm32-unknown-unknown]
rustflags = ["--cfg", "getrandom_backend=\"wasm_js\""]
Compiling for Release
Bash
## Compiling for Release
```bash
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.
Will generate your server binary in target/release and your site package in target/site
Testing Your Project
Bash
## Testing Your Project
```bash
cargo leptos end-to-end
```
Cargo-leptos nutzt Playwright für End-to-End-Tests. Die Tests befinden sich im Verzeichnis end2end/tests.
```bash
cargo leptos end-to-end --release
```
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:
Cargo-leptos uses Playwright as the end-to-end test tool.
Tests are located in end2end/tests directory.
Die Server-Binärdatei: target/release/bytemalte_de
## Executing a Server on a Remote Machine Without the Toolchain
After running a `cargo leptos build --release` the minimum files needed are:
Das Site-Verzeichnis: target/site
1. The server binary located in `target/server/release`
2. The `site` directory and all files within located in `target/site`
Die Datenbank: community.db
Die Umgebungsvariable: .env
Die Verzeichnisstruktur auf dem VPS sollte wie folgt aussehen:
Plaintext
Copy these files to your remote server. The directory structure should be:
```text
bytemalte_de
site/
```
Set the following environment variables (updating for your project as needed):
```sh
community.db
.env
Setze die folgenden Umgebungsvariablen für den Betrieb (z.B. in einem Systemd-Service):
Bash
export LEPTOS_OUTPUT_NAME="bytemalte_de"
export LEPTOS_SITE_ROOT="site"
export LEPTOS_SITE_PKG_DIR="pkg"
export LEPTOS_SITE_ADDR="127.0.0.1:3000"
export LEPTOS_RELOAD_PORT="3001"
```
Finally, run the server binary.
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
Licensing
Dieses Projekt basiert auf dem Leptos Axum Starter Template. Die spezifische Chat-Logik und das Design wurden für bytemalte_de angepasst.
This template itself is released under the Unlicense. You should replace the LICENSE for your own application with an appropriate license if you plan to release it publicly.
Damit ist deine Dokumentation jetzt vollständig und professionell strukturiert!
**Gibt es noch etwas, das ich an der README anpassen soll, oder bist du bereit für das erste Deployment?**