{"id":15069166,"url":"https://github.com/dstack-group/butterfly","last_synced_at":"2025-10-05T06:31:20.657Z","repository":{"id":39816985,"uuid":"180881250","full_name":"dstack-group/Butterfly","owner":"dstack-group","description":"Butterfly is the project built by DStack team for the Software Engineering course at UNIPD between 2018 and 2019","archived":true,"fork":false,"pushed_at":"2023-01-03T19:33:15.000Z","size":2267,"stargazers_count":7,"open_issues_count":30,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-09-30T13:03:48.388Z","etag":null,"topics":["java-11","kafka","microservices","nodejs","restful-api"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dstack-group.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-04-11T21:33:45.000Z","updated_at":"2023-07-21T04:58:28.000Z","dependencies_parsed_at":"2023-02-01T09:15:52.289Z","dependency_job_id":null,"html_url":"https://github.com/dstack-group/Butterfly","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dstack-group%2FButterfly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dstack-group%2FButterfly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dstack-group%2FButterfly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dstack-group%2FButterfly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dstack-group","download_url":"https://codeload.github.com/dstack-group/Butterfly/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235370461,"owners_count":18979093,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java-11","kafka","microservices","nodejs","restful-api"],"created_at":"2024-09-25T01:40:52.232Z","updated_at":"2025-10-05T06:31:20.075Z","avatar_url":"https://github.com/dstack-group.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Butterfly\n\n\u003cdiv align=\"center\"\u003e\n  \u003c!-- Build Status --\u003e\n  \u003ca href=\"https://travis-ci.org/dstack-group/Butterfly\"\u003e\n    \u003cimg src=\"https://travis-ci.org/dstack-group/Butterfly.svg?branch=master\" alt=\"Build Status\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003csub\u003eCreated by \u003ca href=\"https://github.com/dstack-group/\"\u003eDStack Group\u003c/a\u003e with ❤️.\u003c/sub\u003e\n\u003c/div\u003e\n\u003cbr /\u003e\n\nButterfly is a set of microservices that communicate via Apache Kafka and REST APIs which aims to simplify\nhow different project notifications are handled.\nThis project has been developed by the DStack team during the Software Engineering course of the University of Padova.\n\n-------------------------------------------------------------------------------------------\n\n# Table of Contents\n\n- [Requirements](#requirements)\n- [References](#references)\n- [Test everything](#test-everything)\n- [Run everything](#run-everything)\n- [Dev Scripts](#dev-scripts)\n- [Exposed services](#exposed-services)\n- [Modules](#modules)\n- [Wiki Links](#wiki-links)\n- [Create Issues](#create-issues)\n- [FAQ](#faq)\n- [Team](#team)\n- [License](#license)\n\n# Requirements\n\nHere's a list of tools you should have installed on your PC:\n\n- docker 18.09.*\n- docker-compose 1.24.*\n\n# References\n\n[Here](https://www.math.unipd.it/~tullio/IS-1/2018/Progetto/C1.pdf) you can find the project requirements and details.\n\n# Test everything\n\n`./run.sh --build test`\n\n# Run everything\n\n`./run.sh prod`\n\n# Dev Scripts\n\n```text\nUsage:\n./run.sh [OPTIONS] COMMAND\n\nA single entry point for building, running, stopping and testing Butterfly.\n\nOptions:\n  -b|--build            If specified, it creates the Java services' jar executables.\n  -h|--help             Show this help.\n\nCommands:\n  install               Install Java services' and User Manager' dependencies.\n  prod                  Executes the services in production mode.\n  dev                   Executes the services in development mode and spins up\n                        utility services too. The utility services are:\n                        - pgadmin [localhost:8080];\n                        - openapi [localhost:8082].\n  prune                 Deletes all the docker virtual networks, volumes and stops\n                        the services if they're currently running.\n  stop                  Stops the services if they're running.\n  ps                    Shows the list of services running.\n  logs                  Fetches the logs for a service.\n  test                  Executes the test battery.\n  sonarcloud            Collects code metrics and uploads them on SonarCloud.\n```\n\n# Exposed services\n\n| Service                    | Port   | Root Endpoint         |\n| -------------------------- | ------ | --------------------- |\n| gitlab-producer            | `3000` | `/webhooks/gitlab`    |\n| redmine-producer           | `4000` | `/webhooks/redmine`   |\n| sonarqube-producer         | `6000` | `/webhooks/sonarqube` |\n| user-manager-rest-api      | `5000` | `/`                   |\n| slack-account-configurator | `5200` | `/slack/events`       |\n| pgadmin                    | `8080` | `/`                   |\n| openapi                    | `8082` | `/`                   |\n\n# Modules\n\n- [gitlab-producer](./butterfly/gitlab-producer)\n- [redmine-producer](./butterfly/redmine-producer)\n- [sonarqube-producer](./butterfly/sonarqube-producer)\n- [middleware-dispatcher](./butterfly/middleware-dispatcher)\n- [email-consumer](./butterfly/email-consumer)\n- [telegram-consumer](./butterfly/telegram-consumer)\n- [slack-consumer](./butterfly/slack-consumer)\n- [slack-account-configurator](./user-manager/slack-account-configurator)\n- [user-manager-rest-api](./user-manager/user-manager-rest-api)\n- [user-manager-database](./user-manager/user-manager-database)\n- [buttercli](./user-manager/buttercli)\n\n# Wiki Links\n\nHere are some in-depth documentation about Butterfly's internals (written in Italian):\n\n- [Message Structures](https://github.com/dstack-group/Butterfly/wiki/Struttura-Messaggi-Interni)\n- [User Manager](https://github.com/dstack-group/Butterfly/wiki/Backend-Gestore-Personale)\n\n# Create Issues\n\nThis repository supports 3 types of issues:\n\n- [**Bug report**](https://github.com/dstack-group/Butterfly/issues/new?assignees=\u0026labels=\u0026template=bug_report.md\u0026title=): Create a report to help us improve and correct a bug in the code;\n- [**Documentation error report**](https://github.com/dstack-group/Butterfly/issues/new?assignees=\u0026labels=\u0026template=documentation-error-report.md\u0026title=): Create a report to help us improve and correct an error in documents;\n- [**Feature request**](https://github.com/dstack-group/Butterfly/issues/new?assignees=\u0026labels=\u0026template=feature_request.md\u0026title=): Suggest an idea for this project.\n\n# FAQ\n\n1) **Q** How to solve the error \"driver failed programming external connectivity on endpoint\"?\n\n\u003cdetails\u003e\n  \u003csummary\u003eExample error\u003c/summary\u003e\n\u003ccode\u003e\nERROR: for zookeeper  Cannot start service zookeeper: driver failed programming external connectivity on endpoint zookeeper (c6225dbb06a1d8b2109f5156bd145e2e61d49278e1a3216d44a515f60f1a7b70): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:2181:tcp:172.31.0.2:2181: input/output error\n\nERROR: for zookeeper  Cannot start service zookeeper: driver failed programming external connectivity on endpoint zookeeper (c6225dbb06a1d8b2109f5156bd145e2e61d49278e1a3216d44a515f60f1a7b70): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:2181:tcp:172.31.0.2:2181: input/output error\nERROR: Encountered errors while bringing up the project.\n\u003c/code\u003e\n\u003c/details\u003e\n\n  - **A**: just restart Docker, it's a known issue, especially on Windows\n\n# Team\n\nDStack is:\n\n- [Alberto Schiabel](https://github.com/jkomyno)\n- [Elton Stafa](https://github.com/eltonst)\n- [Eleonora Signor](https://github.com/eleonorasignor)\n- [Enrico Trinco](https://github.com/Dogemist)\n- [Federico Rispo](https://github.com/federicorispo)\n- [Harwinder Singh](https://github.com/singh-sardar)\n- [Niccolò Vettorello](https://github.com/niccolovettorello)\n\n# License\n\nThis project is [MIT](License.txt) licensed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdstack-group%2Fbutterfly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdstack-group%2Fbutterfly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdstack-group%2Fbutterfly/lists"}