개인 포럼은 통신을 위한 소규모 클라이언트-서버 웹 앱입니다. 포럼과 채팅방 사이에 있는 것으로, 여러 방을 만들고 각 방에서 여러 스레드를 시작할 수 있습니다. 사용자 개인 정보 보호를 강조하고 서버와 클라이언트 간의 트래픽 양을 줄이려고 합니다.
데모 페이지를 확인해 보세요.
이 프로젝트는 GitHub에서 호스팅됩니다.
이 웹앱은 백엔드와 프런트엔드의 두 부분으로 나뉩니다. 서버는 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 인스턴스에 웹앱을 배포하는 데 도움이 될 수 있습니다.
끌어오기 요청을 통해 GitHub에서 이 프로젝트에 기여하실 수 있습니다.
그 전에 기여 가이드를 읽어보세요.
개인 포럼은 다른 많은 오픈 소스 프로젝트를 사용하여 구축되었습니다. 기여하고 싶다면 이들에 익숙해지면 작업이 더 쉬워질 수 있습니다. 이들 중 일부는 다음과 같습니다: