Skip to content

SailSlick/rabble

 
 

Repository files navigation

Rabble

Building

Requirements

The only requirement to build Rabble is to have docker installed.

Steps

Run build.sh and the output binaries will be written to a build_out directory.

Configuration

There are a few parameters you can use to configure your Rabble instance. To change these options set the corresponding environment variable when running build.sh. Unset values have sensible defaults.

  • RABBLE_SEARCH_TYPE:
    • bleve (default)
    • simple-search
  • RABBLE_FOLLOW_RECOMMENDER_METHOD:
    • none (default)
    • surprise
    • cn
    • graphdist
  • RABBLE_POSTS_RECOMMENDER_METHOD:
    • none (default)
    • random

Running Rabble

After doing a build you can run Rabble by executing the start.sh script. Docker and docker-compose are both required.

NOTE: If you have made changes to a microservice it will only be rebuilt if its context directory changes. To manually rebuild run docker-compose build --no-cache <service_name>

Adding a new microservice to the build

To add a new microservice follow these steps:

  • Add new build dependencies (compilers, libraries, ...) to containers/build_container/Dockerfile
  • Add the build commands to containers/build_container/build.sh
  • Create a Dockerfile in the microservice's directory that runs the microservice
  • Add the new service to docker-compose.yml
  • Test!

Running Rabble in Production

To run Rabble on a production server, first go and edit your configs.

Config Path Description
containers/gen_first_config.sh Build Environment Variables
chump/rabble_config.js Frontend constants

The most important environment variables to change are:

  • RABBLE_EXTERNAL_ADDRESS - gen_first_config.sh - this should be the domain of the your instance

To set up continuous integration, read the redeploy instructions

About

Rabble is a federated blogging platform

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Python 45.4%
  • Go 22.5%
  • TypeScript 21.8%
  • Jupyter Notebook 6.2%
  • Shell 2.1%
  • CSS 0.9%
  • Other 1.1%