Le forum personnel est une petite application Web client-serveur pour la communication. C'est quelque chose entre un forum et une salle de discussion, vous permettant de créer plusieurs salles et de démarrer plusieurs discussions dans chaque salle. Il tente de mettre l'accent sur la confidentialité des utilisateurs et de réduire la quantité de trafic entre le serveur et ses clients.
Consultez la page de démonstration.
Ce projet est hébergé sur GitHub.
Cette application Web est divisée en deux parties : un backend et un frontend. Le serveur est écrit en Rust et interagit avec une base de données PostgreSQL. Le frontend est écrit en JavaScript, HTML et CSS simples. Des modèles Tera sont également utilisés.
Le serveur backend du forum personnel est un programme Rust construit avec le framework Rocket. Pour exécuter le serveur localement, vous avez besoin du compilateur Rust (une version nocturne est recommandée) et de Cargo. Vous devez également créer une base de données PostgreSQL et transmettre son URL comme variable d'environnement lors de l'exécution du serveur.
# 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
Remarque : Vous pouvez exécuter le serveur avec l'indicateur
--release
pour activer certaines optimisations. Vous ne devez PAS utiliser cet indicateur lorsque vous travaillez sur le projet, car des fonctionnalités telles que la mise en cache de fichiers statiques pourraient rendre le développement plus difficile.
Vous pouvez faciliter l'exécution du serveur en incluant l'URL de la base de données dans un fichier appelé Rocket.toml
, comme ceci :
[global.databases]
db = { url = "YOUR_DB_URL" }
Cela vous permet d'exécuter le serveur avec uniquement cargo run
.
Ce guide peut vous aider à déployer l'application Web sur une instance Fly.io gratuite, similaire à la page de démonstration.
Vous êtes invités à contribuer à ce projet sur GitHub, via des pull request.
Avant de faire cela, veuillez lire le guide de contribution.
Le forum personnel a été construit à l'aide de nombreux autres projets open source. Si vous souhaitez contribuer, vous familiariser avec eux pourrait vous faciliter la tâche. Certains d'entre eux sont :