Das persönliche Forum ist eine kleine Client-Server-Webanwendung zur Kommunikation. Es ist eine Art Mittelding zwischen einem Forum und einem Chatroom und ermöglicht es Ihnen, mehrere Räume zu erstellen und in jedem Raum mehrere Threads zu starten. Es versucht, die Privatsphäre der Benutzer zu betonen und den Datenverkehr zwischen dem Server und seinen Clients zu reduzieren.
Schauen Sie sich die Demoseite an.
Dieses Projekt wird auf GitHub gehostet.
Diese Web-App besteht aus zwei Teilen: einem Backend und einem Frontend. Der Server ist in Rust geschrieben und interagiert mit einer PostgreSQL-Datenbank. Das Frontend ist in einfachem JavaScript, HTML und CSS geschrieben. Es werden auch Tera-Vorlagen verwendet.
Der Backend-Server des persönlichen Forums ist ein Rust-Programm, das mit dem Rocket-Framework erstellt wurde. Um den Server lokal auszuführen, benötigen Sie den Rust-Compiler (eine Nightly-Version wird empfohlen) und Cargo. Sie müssen außerdem eine PostgreSQL-Datenbank erstellen und deren URL beim Ausführen des Servers als Umgebungsvariable übergeben.
# Create a new PostgreSQL user and database.
sudo - u postgres psql
create database YOUR_DB ;
# It's easier if you choose the username you are logged in as.
create user YOUR_USER with encrypted password ' YOUR_PASSWORD ' ;
grant all privileges on database YOUR_DB to YOUR_USER;
# Use the nightly version of the Rust compiler.
rustup override set nightly
# Start the server.
# Your database URL probably looks like: postgres://YOUR_USER:YOUR_PASSWORD@localhost/YOUR_DB
ROCKET_DATABASES={db={url= " YOUR_DB_URL " }} cargo run
Hinweis : Sie können den Server mit dem Flag
--release
ausführen, um einige Optimierungen zu aktivieren. Sie sollten dieses Flag NICHT verwenden, wenn Sie am Projekt arbeiten, da Funktionen wie das Zwischenspeichern statischer Dateien die Entwicklung erschweren könnten.
Sie können den Betrieb des Servers vereinfachen, indem Sie die Datenbank-URL wie folgt in eine Datei namens Rocket.toml
einfügen:
[global.databases]
db = { url = "YOUR_DB_URL" }
Dadurch können Sie den Server nur mit cargo run
betreiben.
Dieser Leitfaden kann Ihnen bei der Bereitstellung der Web-App auf einer kostenlosen Fly.io-Instanz helfen, ähnlich wie auf der Demoseite.
Sie können gerne über Pull-Requests auf GitHub zu diesem Projekt beitragen.
Bevor Sie dies tun, lesen Sie bitte den Beitragsleitfaden.
Das persönliche Forum wurde unter Verwendung vieler anderer Open-Source-Projekte erstellt. Wenn Sie einen Beitrag leisten möchten, kann es Ihre Arbeit einfacher machen, sich mit ihnen vertraut zu machen. Einige davon sind: