Giter Site home page Giter Site logo

lilfade / mbin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mbinorg/mbin

0.0 0.0 0.0 16.47 MB

Mbin: a federated content aggregator, voting, discussion and microblogging platform (By the community, for the community)

License: GNU Affero General Public License v3.0

Shell 0.10% JavaScript 1.54% PHP 86.71% Dockerfile 0.09% SCSS 2.92% Twig 8.64%

mbin's Introduction

Mbin

Mbin is a fork of kbin, community-focused. Feel free to discuss on Matrix and to create Pull Requests.

Important: Mbin is focused on what the community wants, pull requests can be merged by any repo member. Discussions take place on Matrix then consensus has to be reached by the community. If approved by the community, no additional reviews are required on the PR. It's built entirely on trust.

Mbin is a decentralized content aggregator, voting, discussion and microblogging platform running on the fediverse network. It can communicate with many other ActivityPub services, including Kbin, Mastodon, Lemmy, Pleroma, Peertube. The initiative aims to promote a free and open internet.

Unique Features of Mbin for server owners & users alike:

  • Tons of GUI improvements
  • Support of all ActivityPub Actor Types (including also "Service" account support; thus support for robot accounts)
  • Various bug fixes
  • Up-to-date PHP packages and security/vulnerability issues fixed
  • Support for application/json Accept request header on all ActivityPub end-points
  • Easy migration path from Kbin to Mbin (see "Migrating?" below)
  • Introducing a FAQ page

See also: all closed PRs or our releases.

For developers:

  • Improved bare metal/VM guide and Docker guide
  • Improved Docker setup
  • Developer server explained (see "Developers" section down below)
  • GitHub Security advisories, vulnerability reporting, Dependabot and Advanced code scanning enabled
  • Improved code documentation
  • Tight integration with Mbin Weblate project for translations (Two way sync)
  • Last but not least, a community-focus project embracing the Collective Code Construction Contract (C4). No single maintainer.

Instances

Mbin logo

Star History

Star History Chart

Contributing

Getting Started

Migrating?

If you want to migrate from Kbin to Mbin (on bare metal), just follow the easy steps below (default branch is main):

cd /var/www/your-instance
git remote set-url origin https://github.com/MbinOrg/mbin.git
git fetch
git checkout main

./bin/post-upgrade

Done!

Requirements

See also Symfony requirements

  • PHP version: 8.2 or higher
  • GD or Imagemagick PHP extension
  • NGINX / Apache / Caddy
  • PostgreSQL
  • Redis (optional)
  • Mercure (optional)
  • RabbitMQ (optional)

Documentation

Developers

Start development server

Requirements:

  • PHP v8.2
  • NodeJS
  • Redis
  • PostgreSQL
  • Optionally: Mercure

  • Increase execution time in PHP config file: /etc/php/8.2/fpm/php.ini:
max_execution_time = 120
  • Restart the PHP-FPM service: sudo systemctl restart php8.2-fpm.service
  • Connect to PostgreSQL using the postgres user:
sudo -u postgres psql
  • Create new mbin database user:
sudo -u postgres createuser --createdb --createrole --pwprompt mbin
  • Correctly configured .env file (cp .env.example .env), these are only the changes you need to pay attention to:
# Set domain to 127.0.0.1:8000
SERVER_NAME=127.0.0.1:8000
KBIN_DOMAIN=127.0.0.1:8000
KBIN_STORAGE_URL=http://127.0.0.1:8000/media

#Redis (without password)
REDIS_DNS=redis://127.0.0.1:6379

# Set App configs
APP_ENV=dev
APP_SECRET=427f5e2940e5b2472c1b44b2d06e0525

# Configure PostgreSQL
POSTGRES_DB=mbin
POSTGRES_USER=mbin
POSTGRES_PASSWORD=<password>

# Set messenger to Doctrine (= PostgresQL DB)
MESSENGER_TRANSPORT_DSN=doctrine://default
  • If you are using 127.0.0.1 to connect to the PostgreSQL server, edit the following file: /etc/postgresql/<VERSION>/main/pg_hba.conf and add:
local   mbin            mbin                                    md5
  • Restart the PostgreSQL server: sudo systemctl restart postgresql
  • Create database: php bin/console doctrine:database:create
  • Create tables and database structure: php bin/console doctrine:migrations:migrate
  • Build frontend assets: npm install && npm run dev

Starting the server:

  1. Install Symfony CLI: wget https://get.symfony.com/cli/installer -O - | bash
  2. Check the requirements: symfony check:requirements
  3. Install depedencies: composer install
  4. Dump .env into .env.local.php via: composer dump-env dev
  5. Optionally: Increase verbosity log level in: config/packages/monolog.yaml in the when@dev section: level: debug (instead of level: info),
  6. Clear cache: APP_ENV=dev APP_DEBUG=1 php bin/console cache:clear -n
  7. Start Mbin: symfony server:start
  8. Go to: http://127.0.0.1:8000

This will give you a minimal working frontend with PostgreSQL setup. Keep in mind: this will not start federating, for that you also need to setup Mercure to test the full Mbin setup.

Optionally: you could also setup RabbitMQ, but the Doctrine messenger configuration will be sufficient for local development.

More info: Admin guide and Symfony Local Web Server

Linting

Install tooling via:

composer -d tools install

Try to automatically fix linting errors:

tools/vendor/bin/php-cs-fixer fix

Federation

Official Documents

Unofficial Sources

Languages

Following languages are currently supported/translated:

  • English
  • German
  • Greek
  • Esperanto
  • Spanish
  • French
  • Italian
  • Japanese
  • Dutch
  • Polish
  • Turkish
  • Chinese

Credits

License

AGPL-3.0 license

mbin's People

Contributors

ahrotahn avatar asdfzdfj avatar bentigorlich avatar cavebob avatar chall8908 avatar cocopoops avatar comradekingu avatar cooperaj avatar csdummi avatar danielpervan avatar dependabot[bot] avatar drupol avatar e-five256 avatar ernestwisniewski avatar garrettw avatar gauthierplm avatar kkoyung avatar lilfade avatar melroy89 avatar nobodyatroot avatar piotr-sikora-v avatar ryanmonsen avatar simonrcodrington avatar szymonkaminski avatar thevillageguy avatar vpzomtrrfrt avatar weblate 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.