7
0
Fork
You've already forked LibRate
1
forked from mjh/LibRate
Libre media rating website for the fediverse
  • Go 64.3%
  • Svelte 16.7%
  • TypeScript 12.2%
  • Rust 1.8%
  • JavaScript 1.6%
  • Other 3.4%
2023年10月08日 15:43:05 +00:00
cfg resolve merge conflict with #37 2023年09月28日 01:42:25 +02:00
controllers resolve merge conflict with #37 2023年09月28日 01:42:25 +02:00
db Make it possible to work on LibRate with docker 2023年10月08日 17:34:06 +02:00
deps feat(db): add pguint initalization to main 2023年06月21日 23:01:24 +02:00
fe resolve merge conflict with #37 2023年09月28日 01:42:25 +02:00
internal chore: get rid of cgo dependency for thumbnailing 2023年09月21日 04:57:20 +02:00
lib Database and Docker fixes ( #36 ) 2023年09月26日 17:04:26 +00:00
middleware fix(auth): JWT verification 2023年09月13日 07:03:11 +02:00
models test: add test for reverse language lookup 2023年09月21日 05:01:23 +02:00
recommendation chore: remove broken federation 2023年05月31日 03:42:30 +02:00
routes refactor: naming, dead code removal 2023年09月28日 01:26:50 +02:00
static feat: basic django noscript frontend templates 2023年09月13日 07:03:14 +02:00
tests resolve merge conflict with #37 2023年09月28日 01:42:25 +02:00
views feat: basic django noscript frontend templates 2023年09月13日 07:03:14 +02:00
.dockerignore resolve merge conflict with #37 2023年09月28日 01:42:25 +02:00
.gitignore refactor(fe): add global svelte aliases 2023年09月13日 07:03:13 +02:00
.gitmodules feat(db): add pguint submodule 2023年06月21日 22:30:27 +02:00
.golangci.yaml chore(linter): remove redundant disable-checks from 2023年09月15日 22:10:03 +02:00
config_compose.yml Fix docker-compose 2023年09月28日 02:00:16 +01:00
CONTRIBUTING.md Database and Docker fixes ( #36 ) 2023年09月26日 17:04:26 +00:00
copy_config.sh Database and Docker fixes ( #36 ) 2023年09月26日 17:04:26 +00:00
docker-compose.yml Make it possible to work on LibRate with docker 2023年10月08日 17:34:06 +02:00
Dockerfile Make it possible to work on LibRate with docker 2023年10月08日 17:34:06 +02:00
entrypoint.sh Make it possible to work on LibRate with docker 2023年10月08日 17:34:06 +02:00
example_config.yml Merge branch 'main' into dev 2023年09月27日 23:43:22 +00:00
go.mod Database and Docker fixes ( #36 ) 2023年09月26日 17:04:26 +00:00
go.sum WIP/fix: compose networking 2023年09月28日 01:33:11 +02:00
justfile chore: wait for db connection before initializing 2023年09月26日 20:34:39 +02:00
LICENSE chore: add license 2023年05月04日 02:07:07 +02:00
main.go resolve merge conflict with #37 2023年09月28日 01:42:25 +02:00
noscript.go feat: alternative method of getting latest git tag 2023年09月26日 19:39:47 +02:00
README.md resolve merge conflict with #37 2023年09月28日 01:42:25 +02:00

LibRate

This project aims to bring a website combining the functionality of such projects as Bookwyrm, RateYourMusic/Sonemic, IMDB and similar to the #fediverse.

This project is currently in early alpha stage, bugs are expected and PRs are very welcome.

The first public beta instance is expected to launch by the end of September 2023.

NOTE: we're using the term member to stress inclusivity and openness, as opposed to the term user which is controversial, because it was borrowed from the term drug dealers use to refer to their customers.

Roadmap:

Social features:

  • Basic registration support
  • Member cards with profile info
  • (WIP)Full member profile pages
  • Tagging and mentions
  • Advanced profile and UI customization
  • Groups
  • Direct messages (E2EE)
  • Group chats, more group-friendly design, like Lemmy or Kbin
  • (WIP) Member-generated content tagging and categorization
  • (WIP) Following
  • Sharing
  • (WIP) ActivityPub support, with selective federation

Media features

  • Album cards
  • Carousels showing random media
  • Relevant DB setup
  • Film and series cards
    • Trailers and stills support
  • Release notifications
    • Sending them as DMs to federated service accounts
  • Content filters
  • Book cards and pages
    • Bookwyrm federation
  • Anime and manga cards/pages
  • Games support
  • Customizable, shareable media collections and logging
  • (WIP) Convenient submission form, with decentralized deduplication and POW-based anti-spam (a bit similar to Bookwyrm)
  • Automated imports from 3rd party sources
  • DRM-free audio hosting and streaming, federation with Funkwhale
  • Artwork galleries for visual artists(?)

Reviews

  • Basic review form
  • [?] Backend logic for submission and fetching of reviews
  • (WIP) Review feed
  • Commenting and voting on reviews and media items
  • Importing from 3rd party sources

Recommendations

  • Prototype logic
  • Actual working implementation
    • Personalized feeds
    • Advanced algorithm powered by ML and graph-like database structure - already implemented

Other

  • Extended configurability
  • Signed builds and security mechanisms preventing federation with modified versions of LibRate
  • Admin panel
  • Events, federating with Mobilizon
  • Federated merch and works marketplace, possibly an alternative to Bandcamp
  • Mobile app (although the frontend is and will be mobile friendly, but also never at the expense of desktop experience. We'll also try to make it work with Fedilab, though the number of distinctive features may make it difficult)

Deploying

Just run

just write_tags
docker compose up -d

The git tag part is needed only for displaying the version in the footer

Prerequisites for running natively:

  • pnpm, yarn or npm, for building the frontend
  • Python 3 for setting up the uint Postgres extension
  • working Postgres and Redis instances. You'll also need to install the development files package for postgres since LibRate uses Postgres extensions. You may also need to manually build the sequential UUIDs extension

Development prerequisites

To develop the recommendations feature, you'll need:

  • protoc and protoc-gen-go for generating code from the protocol buffers files.
  • Rust and Go toolchains

Building and installing

If you have installed just, you can simply run:

just first_run

Alternatively, edit the example config file and run:

go mod tidy && \
cd fe && pnpm install \
&& pnpm run build && \
go run . -init -exit && \
go run . migrate -auto-migrate

For subsequent runs of course you shouldn't use the init flag.

You can then test your instance at http://127.0.0.1:3000 (or the other port you've specified)

Testing

In order to test the database code, you should create a librate_test database.

If you set the $CLEANUP_TEST_DB variable to 0, the test database will not be cleaned up by the deferred function in the database initialization unit test.

All images included in this repository are assumed to be fair use.

If you are the copyright holder of an image which you want to be removed, please contact the maintaner.