Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 109 additions & 8 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 10 additions & 9 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@ version = "0.1.0"
edition = "2024"

[dependencies]
argon2 = { version = "0.5.3", features = ["std"] }
argon2 = { version = "0.5", features = ["std"] }
axum = "0.8.4"
base64 = "0.22.1"
dotenvy = "0.15.7"
rand = "0.9.2"
serde = { version = "1.0.225", features = ["derive"] }
serde_with = { version = "3.14.0", features = ["base64"] }
tokio = { version = "1.47.1", features = ["rt-multi-thread"] }
tokio-postgres = { version = "0.7.13", features = ["with-uuid-1"] }
uuid = "1.18.1"
base64 = "0.22"
dotenvy = "0.15"
jsonwebtoken = "9.3"
rand = "0.9"
serde = { version = "1.0", features = ["derive"] }
serde_with = { version = "3.14", features = ["base64"] }
tokio = { version = "1.47", features = ["rt-multi-thread"] }
tokio-postgres = { version = "0.7", features = ["with-uuid-1"] }
uuid = { version = "1.18", features = ["v4", "serde"] }
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/D1D31GU3L5)

# FairPlay MVP, Backend
The backend rest api for fairplay
# acrilic.org Backend
The backend rest api for acrilic.org (formerly FairPlay)

➡️ The repository for the **currently running website** ([fairplay.video](https://fairplay.video)) can be found here: [FairPlay-Website\_DEMO](https://github.com/FairPlayTeam/FairPlay-Website_DEMO)
➡️ You can find the frontend code here : [https://github.com/FairPlayTeam/](https://github.com/FairPlayTeam/FairPlay-Website/)

## 🛠 Tech Stack

* **Next.js** for the frontend and website
* **rust** with **axum** for the publicly available rest api
* **Rust** with **Axum** for the publicly available REST API
* **PostgreSQL** for the database
* **Argon2** & **JWT** for security and stateless authentication

## 🤝 Contribute

Expand Down Expand Up @@ -41,8 +43,8 @@ Want to participate? Join our development community on Discord:

* **Authentication & Connection System**

* [ ] Implement secure user login and registration (email/password, OAuth).
* [ ] Manage sessions or JWT tokens for API access.
* [x] Implement secure user login and registration (email/password).
* [x] Manage sessions or JWT tokens for API access.

* **Private Video Access Control**

Expand Down Expand Up @@ -110,4 +112,4 @@ Want to participate? Join our development community on Discord:

* **Donate to the Creator Button**

* [ ] Add a dedicated button for one-time or recurring donations.
* [ ] Add a dedicated button for one-time or recurring donations.
5 changes: 3 additions & 2 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
## TODO:

- jwt for tokens with https://github.com/Keats/jsonwebtoken
- [x] jwt for tokens with https://github.com/Keats/jsonwebtoken
- [x] stateless architecture refactor (remove in-memory token store)
- video storage on minio
- much much more
- ffmpeg transcoding pipeline
20 changes: 20 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
version: '3.8'

services:
db:
image: postgres:15-alpine
container_name: fairplay_db
restart: always
environment:
POSTGRES_USER: fairplay-test
POSTGRES_PASSWORD: fairplay
POSTGRES_DB: fairplay-test
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
# Initialize schema automatically if you want (optional)
# ./schema.sql:/docker-entrypoint-initdb.d/init.sql

volumes:
postgres_data:
Loading
Loading