AlexPython / the-zoo

πŸ’ A service registry for humans

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

zoo

A smart service catalogue providing an overview of your services' development and operations.

Python: 3.6 Code style: black Discord Gitlab pipeline status (branch)

Service Detail

What Where
Discussion #the-zoo on Discord
Maintainer Alex Viscreanu

What is The Zoo?

A microservice catalogue that allows performing static code checks and integrates with third party services like Sentry, Datadog or Pingdom.

On top of that we have built a configurable static code analysis module that allows writing your own code checks and The Zoo will keep track of the evolution of those issues. The checks can also be integrated in CI so it can show how the Pull Request affects the status of the issues.

The Zoo also provides analytics about how dependency usage and its versions evolve.

Development

  • Run in debug mode: $ make run
  • Stop: $ make stop
  • Stop and/or delete data: $ make destroy
  • Django shell: $ make shell
  • Containers logs: $ docker-compose logs

Access web locally:

Initial setup

  • Create a database: $ make migrate
  • Create a superuser: $ make superuser

Database changes

  • Generate database migrations: $ make makemigrations
  • Update the database when needed: $ make migrate

Notes

Check Makefile for shell commands if you want to run them with modified parameters.

Testing

Run all tests: $ make test

Tests are run by tox. In order to run only unit tests or a specific test file you need to use the pytest binary from the .tox/tests/bin/ folder. This folder will be created after running tests for the first time.

Testing requirements

PostgreSQL is needed for running the integration tests, you can install it by running brew install postgres

Note that this includes running dockerfile_lint and remark, which you can get with npm install -g dockerfile_lint remark-cli.

Also note that tox doesn't know when you change the requirements.txt and won't automatically install new dependencies for test runs. Run pip install tox-battery to install a plugin which fixes this silliness.

If you want to pass some env vars to environment, you can list them in env var TOX_TESTENV_PASSENV. For example if you want to use custom database for tests, you can run: TEST_DATABASE_URL=postgres://... TOX_TESTENV_PASSENV=TEST_DATABASE_URL tox

Documentation

Architecture Decision Records

We document architecture decisions like it's described in this article.

Records are in dir adr. We are using ADR Tools for working with them.

Documentation for users

We use Sphinx for generating documentation. Docs are in dir docs.

Setup virtual enviroment and install there docs-requirements.txt. Then you can use shortcuts:

  • Build docs: $ make build-docs
  • Open docs: $ make read-docs

About

πŸ’ A service registry for humans

License:MIT License


Languages

Language:Python 77.8%Language:HTML 9.5%Language:Vue 5.2%Language:JavaScript 4.6%Language:CSS 2.4%Language:Dockerfile 0.3%Language:Makefile 0.2%