Skip to content
/ kbin Public
forked from ernestwisniewski/kbin

A reddit-like content aggregator and micro-blogging platform for the fediverse.

License

Notifications You must be signed in to change notification settings

paboum/kbin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kbin

Maintainability Test Coverage

A reddit-like content aggregator and micro-blogging platform for the fediverse.

This is a very early beta version, and a lot of features are currently broken or in active development, such as federation.


Apps

Libraries

Getting Started

Requirements

https://symfony.com/doc/6.1/reference/requirements.html

  • PHP version: 8.1 or higher
  • GD or Imagemagick php extension
  • NGINX / Apache / Caddy
  • PostgreSQL
  • Redis (optional)
  • Mercure (optional)
  • RabbitMQ (optional)
  • Elasticsearch (optional)
  • Cardano Node, Cardano Wallet (optional)

Frontend

https://github.com/symfony/ux

$ yarn install
$ yarn build

Install with Docker

Based on https://github.com/dunglas/symfony-docker

Develop

  1. If not already done, install Docker Compose
  2. Run docker compose build --pull --no-cache to build fresh images
  3. Run docker compose up (the logs will be displayed in the current shell)
  4. Open https://app.localhost in your favorite web browser and accept the auto-generated TLS certificate
  5. Run docker compose down --remove-orphans to stop the Docker containers.
$ docker compose exec php bin/console doctrine:fixtures:load
$ docker compose exec php bin/phpunit

# Using Xdebug
# Linux / Mac
$ XDEBUG_MODE=debug docker compose up -d
# Windows
$ set XDEBUG_MODE=debug&& docker compose up -d&set XDEBUG_MODE=

Production

$ APP_ENV=dev SERVER_NAME=dev.karab.in \
APP_SECRET=acme \
CADDY_MERCURE_JWT_SECRET='!ChangeThisMercureHubJWTSecretKey!' \
POSTGRES_USER=kbin \
POSTGRES_PASSWORD=acme \
POSTGRES_DB=kbin \
CADDY_MERCURE_URL="https://example.com/.well-known/mercure" \
KBIN_DEFAULT_LANG=pl \
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d

Deploying on Multiple Nodes

If you want to deploy your app on a cluster of machines, you can use Docker Swarm, which is compatible with the provided Compose files.

Configuration

Admin user

# Create new user (without email verification)
$ docker compose exec php bin/console kbin:user:create username [email protected] password
# Grant administrator privileges
$ docker compose exec php bin/console kbin:user:admin username

Elasticsearch

$ docker compose exec php bin/console fos:elastica:create
$ docker compose exec php bin/console fos:elastica:populate

JWT keys

// @todo 

Next, set up your instance https://localhost/admin

Backup and restore

Database

# Backup
$ docker exec -it database pg_dump -U symfony app > dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql
# Restore
$ docker compose exec -T database psql -U symfony app < dump.sql

Images

// @todo rsync

Troubleshooting

Editing Permissions on Linux

If you work on linux and cannot edit some of the project files right after the first installation, you can run docker compose run --rm php chown -R $(id -u):$(id -g) . to set yourself as owner of the project files that were created by the docker container.

Logs

$ docker compose logs -f
$ docker compose exec php tail var/log/prod.log

Cache

$ docker compose exec php bin/console cache:clear

Federation

Official Documents

Unofficial Sources

Documentation

Contributing

License

AGPL-3.0 license

About

A reddit-like content aggregator and micro-blogging platform for the fediverse.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 71.6%
  • Twig 21.4%
  • JavaScript 3.4%
  • SCSS 3.1%
  • Other 0.5%