Skip to content
Buildy-Core is a component based gateway for cloud native architectures.
Python CSS HTML Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
buildly Remove RabbitMQ integration Oct 23, 2019
factories Create permission validation logic for LogicModule Oct 27, 2019


A gateway and service discovery system for “micro” services. A light weight Gateway that connects all of your data services, API’s and endpoints to a single easy-to-use URL.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.


  • Docker version 19+


Build first the image:

docker-compose build # --no-cache to force dependencies installation

To run the webserver (go to

docker-compose up # -d for detached

User: admin Password: admin.

To run the webserver with pdb support:

docker-compose run --rm --service-ports buildly

Running the tests

To run the tests (without flake8) and have ipdb open on error:

docker-compose run --entrypoint '/usr/bin/env' --rm buildly bash scripts/ --keepdb --bash_on_finish

To run the tests like if it was CI with flake8:

docker-compose run --entrypoint '/usr/bin/env' --rm buildly bash scripts/ --ci

See pytest --help for more options.


Add additional notes about how to deploy this on a live system and preference for Humanitec and Walhall.

Configure the API authentication

All clients interact with our API using the OAuth2 protocol. In order to configure it, go to admin/oauth2_provider/application/ and add a new application there.

Generating RSA keys

For using JWT as authentication method, we need to configure public and private RSA keys.

The following commands will generate a public and private key. The private key will stay in Buildly and the public one will be supplied to microservices in order to verify the authenticity of the message:

$ openssl genrsa -out private.pem 2048
$ openssl rsa -in private.pem -outform PEM -pubout -out public.pem


The following table lists the configurable parameters of buildly and their default values.

Parameter Description Default
ALLOWED_HOSTS A list of strings representing the domain names the app can serve []
CORS_ORIGIN_WHITELIST A list of origins that are authorized to make cross-site HTTP requests []
DATABASE_ENGINE The database backend to use. (postgresql, mysql, sqlite3 or oracle) ``
DATABASE_NAME The name of the database to use ``
DATABASE_USER The username to use when connecting to the database ``
DATABASE_PASSWORD The password to use when connecting to the database ``
DATABASE_HOST The host to use when connecting to the database ``
DATABASE_PORT The port to use when connecting to the database ``
DEFAULT_ORG The first organization created in the database My Organization
JWT_ISSUER The name of the JWT issuer ``
SOCIAL_AUTH_GITHUB_REDIRECT_URL The redirect URL for GitHub Social auth None
SOCIAL_AUTH_GOOGLE_OAUTH2_REDIRECT_URL The redirect URL for Google Social auth None
SOCIAL_AUTH_LOGIN_REDIRECT_URL Redirect the user once the auth process ended successfully None
SOCIAL_AUTH_MICROSOFT_GRAPH_REDIRECT_URL The redirect URL for Microsoft graph Social auth None
ACCESS_TOKEN_EXPIRE_SECONDS The number of seconds an access token remains valid None
SECRET_KEY Used to provide cryptographic signing, and should be set to a unique, unpredictable value None
OAUTH_CLIENT_ID Used in combination with OAUTH_CLIENT_SECRET to create OAuth2 password grant None
OAUTH_CLIENT_SECRET Used in combination with OAUTH_CLIENT_ID to create OAuth2 password grant None
USE_PASSWORD_MINIMUM_LENGTH_VALIDATOR If true, checks whether the password meets a minimum length None
PASSWORD_MINIMUM_LENGTH The minimum length of passwords 6
USE_PASSWORD_USER_ATTRIBUTE_SIMILARITY_VALIDATOR If true, checks the similarity between the password and a set of attributes of the user None
USE_PASSWORD_COMMON_VALIDATOR If true, checks whether the password occurs in a list of common passwords None
USE_PASSWORD_NUMERIC_VALIDATOR If true, checks whether the password isn’t entirely numeric None
SUPER_USER_PASSWORD Used to define the super user password when it's created for the first time admin in Debug mode and None

Specify each parameter using -e, --env, and --env-file flags to set simple (non-array) environment variables to docker run. For example,

$ docker run -e MYVAR1 --env MYVAR2=foo \
    --env-file ./env.list \
    ubuntu bash

Built With


Please read for details on our code of conduct, and the process for submitting pull requests to us.


We use SemVer for versioning. For the versions available, see the tags on this repository.


  • Buildly - Initial work

See also the list of contributors who participated in this project.


This project is licensed under the GPL v3 License - see the file for details

You can’t perform that action at this time.