Kbin is a decentralized content aggregator and microblogging platform running on the Fediverse network. It can communicate with many other ActivityPub services, including Mastodon, Lemmy, Pleroma, Peertube. The initiative aims to promote a free and open internet.
This is a very early beta version, and a lot of features are currently broken or in active development, such as federation.
Currently, a new frontend is being implemented on develop branch. In the next stage, a similar refactor will go through the backend and the project will be prepared for contribution.
https://symfony.com/doc/6.1/reference/requirements.html
https://github.com/symfony/ux
$ yarn install
$ yarn build
Based on https://github.com/dunglas/symfony-docker
docker compose build --pull --no-cache
to build fresh imagesdocker compose up
(the logs will be displayed in the current shell)https://app.localhost
in your favorite web browser
and accept the auto-generated TLS certificatedocker 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=
$ 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
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.
# 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
$ mkdir public/media
$ chmod 755 public/media
$ chown 82:82 public/media
$ docker compose exec php bin/console fos:elastica:create
$ docker compose exec php bin/console fos:elastica:populate
// @todo
Next, set up your instance https://localhost/admin
# Backup
$ docker exec -it database pg_dump -U kbin kbin > dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql
# Restore
$ docker compose exec -T database psql -U kbin kbin < dump.sql
// @todo rsync
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.
$ docker compose logs -f
$ docker compose exec php tail var/log/prod.log
$ docker compose exec php bin/console cache:clear