Rafael Caricio
d8bea2c868
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
|
||
---|---|---|
.cargo | ||
build | ||
contrib | ||
docs | ||
fedimovies-cli | ||
fedimovies-config | ||
fedimovies-models | ||
fedimovies-utils | ||
files | ||
scripts | ||
src | ||
.dockerignore | ||
.editorconfig | ||
.env | ||
.gitignore | ||
.woodpecker.yml | ||
Cargo.lock | ||
Cargo.toml | ||
CHANGELOG.md | ||
config.yaml.example | ||
CONTRIBUTING.md | ||
docker-compose.yaml | ||
FEDERATION.md | ||
justfile | ||
LICENSE | ||
README.md |
FediMovies
Lively federated movies reviews platform.
Built on ActivityPub protocol, self-hosted, lightweight. Part of the Fediverse.
Features:
- Micro-blogging service (includes support for quote posts, custom emojis and more).
- Mastodon API.
- Account migrations (from one server to another). Identity can be detached from the server.
- Federation over Tor.
Instances
Demo instance: https://nullpointer.social/ (invite-only)
Code
Server: https://code.caric.io/reef/reef (this repo)
Web client:
Requirements
- Rust 1.57+ (when building from source)
- PostgreSQL 12+
Optional:
- IPFS node (see guide)
Installation
Building from source
Run:
cargo build --release --features production
This command will produce two binaries in target/release
directory, fedimovies
and fedimoviesctl
.
Install PostgreSQL and create the database:
CREATE USER fedimovies WITH PASSWORD 'fedimovies';
CREATE DATABASE fedimovies OWNER fedimovies;
Create configuration file by copying contrib/fedimovies_config.yaml
and configure the instance. Default config file path is /etc/fedimovies/config.yaml
, but it can be changed using CONFIG_PATH
environment variable.
Put any static files into the directory specified in configuration file. Building instructions for fedimovies-web
frontend can be found at https://code.caric.io/FediMovies/fedimovies#project-setup.
Start Fedimovies:
./fedimovies
An HTTP server will be needed to handle HTTPS requests. See the example of nginx configuration file.
To run Fedimovies as a systemd service, check out the systemd unit file example.
Debian package
Download and install Fedimovies package:
dpkg -i fedimovies.deb
Install PostgreSQL and create the database:
CREATE USER fedimovies WITH PASSWORD 'fedimovies';
CREATE DATABASE fedimovies OWNER fedimovies;
Open configuration file /etc/fedimovies/config.yaml
and configure the instance.
Start Fedimovies:
systemctl start fedimovies
An HTTP server will be needed to handle HTTPS requests. See the example of nginx configuration file.
Tor federation
See guide.
Development
See CONTRIBUTING.md
Start database server
docker-compose up -d
Test connection:
psql -h localhost -p 55432 -U fedimovies fedimovies
Run web service
Create config file, adjust settings if needed:
cp config.yaml.example config.yaml
Compile and run service:
cargo run
Run CLI
cargo run --bin fedimoviesctl
Run linter
cargo clippy
Run tests
cargo test
Federation
See FEDERATION.md
Client API
Most methods are similar to Mastodon API, but Fedimovies is not fully compatible.
CLI
fedimoviesctl
is a command-line tool for performing instance maintenance.