個人フォーラムは、コミュニケーション用の小さなクライアントサーバー Web アプリです。これはフォーラムとチャット ルームの中間のようなもので、複数のルームを作成し、各ルームで複数のスレッドを開始できます。ユーザーのプライバシーを重視し、サーバーとクライアント間のトラフィック量を削減しようとします。
デモページをチェックしてください。
このプロジェクトは GitHub でホストされています。
この Web アプリは、バックエンドとフロントエンドの 2 つの部分に分かれています。サーバーは Rust で書かれており、PostgreSQL データベースと対話します。フロントエンドはプレーンな JavaScript、HTML、CSS で記述されています。 Tera テンプレートも使用されます。
個人フォーラムのバックエンド サーバーは、Rocket フレームワークで構築された Rust プログラムです。サーバーをローカルで実行するには、Rust コンパイラー (夜間バージョンを推奨) と Cargo が必要です。また、PostgreSQL データベースを作成し、サーバーの実行時にその URL を環境変数として渡す必要があります。
# 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
注:
--release
フラグを指定してサーバーを実行すると、一部の最適化を有効にすることができます。静的ファイルのキャッシュなどの機能により開発が困難になる可能性があるため、プロジェクトで作業するときはこのフラグを使用しないでください。
次のように、 Rocket.toml
というファイルにデータベース URL を含めることで、サーバーの実行を容易にすることができます。
[global.databases]
db = { url = "YOUR_DB_URL" }
これにより、 cargo run
だけでサーバーを実行できるようになります。
このガイドは、デモ ページと同様に、無料の Fly.io インスタンスに Web アプリをデプロイするのに役立ちます。
プル リクエストを通じて、GitHub 上のこのプロジェクトに貢献することを歓迎します。
その前に、投稿ガイドをお読みください。
個人フォーラムは、他の多くのオープンソース プロジェクトを使用して構築されました。貢献したい場合は、彼らのことをよく知ることで仕事が楽になるかもしれません。その一部は次のとおりです。