Giter Site home page Giter Site logo

rafaelcaricio / fedimovies Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 0.0 2.12 MB

Federated Movies Reviews with ActivityPub.

Home Page: https://code.caric.io/FediMovies

License: GNU Affero General Public License v3.0

Dockerfile 0.04% Shell 0.22% Makefile 0.02% Rust 99.68% Just 0.04%
activitypub activitypub-server fediverse fediverse-server rust-lang

fedimovies's Introduction

FediMovies

status-badge

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:

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.

OpenAPI spec

CLI

fedimoviesctl is a command-line tool for performing instance maintenance.

Documentation

License

AGPL-3.0

fedimovies's People

Contributors

rafaelcaricio avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.