From f07b1baba07fec4cfc0e967d6693fc25ed4b7e8f Mon Sep 17 00:00:00 2001 From: Bytemalte Date: Wed, 17 Dec 2025 19:46:15 +0000 Subject: [PATCH] Update README.md --- README.md | 114 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 59 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index e3f9ec6..3658ea1 100644 --- a/README.md +++ b/README.md @@ -3,89 +3,93 @@ Leptos Logo -# 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?** \ No newline at end of file