{"id":22115331,"url":"https://github.com/abdulrhmangoni/mecha_agent","last_synced_at":"2026-04-02T03:09:50.903Z","repository":{"id":265882996,"uuid":"896582354","full_name":"AbdulrhmanGoni/mecha_agent","owner":"AbdulrhmanGoni","description":"Mecha Agent is where users create their own AI agent chatbots, Give them custom instructions and knowledge as dataset, And publish them for the world to interact and chat with.","archived":false,"fork":false,"pushed_at":"2026-03-31T10:42:03.000Z","size":790,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-31T12:27:46.327Z","etag":null,"topics":["agent","agents","ai","api","dataset","deno","docker","embeddings","inference","instructions","llm","minio","object-storage","ollama","postgres","qdrant","rag","typescript","vector-database"],"latest_commit_sha":null,"homepage":"","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/AbdulrhmanGoni.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-11-30T18:42:53.000Z","updated_at":"2026-03-31T10:42:07.000Z","dependencies_parsed_at":"2024-12-19T19:35:21.053Z","dependency_job_id":"bcc9d9a3-af41-404b-b504-4fd0e0f04a9e","html_url":"https://github.com/AbdulrhmanGoni/mecha_agent","commit_stats":null,"previous_names":["abdulrhmangoni/mecha_agent"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AbdulrhmanGoni/mecha_agent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbdulrhmanGoni%2Fmecha_agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbdulrhmanGoni%2Fmecha_agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbdulrhmanGoni%2Fmecha_agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbdulrhmanGoni%2Fmecha_agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AbdulrhmanGoni","download_url":"https://codeload.github.com/AbdulrhmanGoni/mecha_agent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbdulrhmanGoni%2Fmecha_agent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31294888,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T01:43:37.129Z","status":"online","status_checked_at":"2026-04-02T02:00:08.535Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["agent","agents","ai","api","dataset","deno","docker","embeddings","inference","instructions","llm","minio","object-storage","ollama","postgres","qdrant","rag","typescript","vector-database"],"created_at":"2024-12-01T12:15:26.494Z","updated_at":"2026-04-02T03:09:50.865Z","avatar_url":"https://github.com/AbdulrhmanGoni.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mecha Agent (Web Server)\n\nThis is the server side of **Mecha Agent** platform where users create their own\nAI agent chatbots, Give them custom instructions and knowledge as dataset, And\npublish them for the world to interact and chat with.\n\n## Documentation\n\nGo to the\n[**documentation site**](https:abdulrhmangoni.github.io/mecha_agent_docs) of\n**Mecha Agent** platform for more info\n\n## Contribution\n\nI welcome any kind of contributions.\n\nFell free to open an issue when:\n\n- You encounter any problems in while using **Mecha Agent** platform.\n- You have an idea to enhance **Mecha Agent** platform (e.g New features or\n  improvements).\n\nIf you want to contribute by writing code (e.g Impelementing new features or\nfixing bugs), Don't hesitate to open a pull request, Follow the following\n[Get started](#get-started) guide to set up the **Mecha Agent** server side in\nyour machine and start your contributions!\n\n### Get Started\n\n#### Prerequisites\n\n##### [Deno](https://deno.com/)\n\nThe used JavaScript / TypeScript runtime for building the server. \u003cbr/\u003e If you\ndon't have it, Install it from\n[here](https://docs.deno.com/runtime/getting_started/installation/)\n\n##### [Docker](https://www.docker.com/)\n\nThe platform for running all components of **Mecha Agent**'s Backend System in\ncontainers. \u003cbr/\u003e If you don't have it, Install it from\n[here](https://docs.docker.com/desktop/)\n\n#### Setting up development environment\n\n##### Install system's components\n\nFirst clone the repository and enter project's directory\n\n```\ngit clone https://github.com/AbdulrhmanGoni/mecha_agent.git\ncd mecha_agent\n```\n\nThen Install project's dependencies\n\n```\ndeno install\n```\n\nThen you have to download the docker image of each component in this backend\nsystem which are:\n\n- `denoland/deno`\n- `postgres:17.3`\n- `qdrant/qdrant:v1.13.3`\n- `ollama/ollama`\n- `prom/prometheus:v3.2.1`\n- `grafana/grafana:11.6.0`\n\n```\ndocker pull denoland/deno postgres:17.3 qdrant/qdrant:v1.13.3 ollama/ollama prom/prometheus:v3.2.1 grafana/grafana:11.6.0\n```\n\n##### Set up Environment Variables :ledger:\n\nCreate `.env.development` file inside `docker` folder and set the required\nenvironment variables in order to be able to run the system in development mode\ncorrectly.\n\nYou can simply copy the environment variables with their default values from\n`.env.example` file to get started faster and you can adjust the variables later\nas you need.\n\n```\ncp docker/.env.example docker/.env.development\n```\n\n\u003e [!TIP]\n\u003e Open `.env.example` file for more details about environment variables\n\n\u003e [!NOTE]\n\u003e If you decided to change `MODEL_NAME` or `EMBEDDING_MODEL_NAME` environment\n\u003e variables, Make sure that the models you choose are available on\n\u003e [Ollama platform](https://ollama.com).\n\n##### Build and run the server :rocket:\n\nBuild the image of the server by running the following command\n\n```\ndeno task build:dev\n```\n\nRun the database schema migration to setup the schema of the development database\n\n```\ndeno task migration up\n```\n\nAnd them run the following command to start the backend system of **Mecha Agent**\nplatform in development mode\n\n```\ndeno task start:dev\n```\n\nNow each component of the backend system should be up and running inside a\ndocker container on your machine like this :point_down:\n\n```\ndev_server_container is running on http://localhost:10000\n\ndev_database_container is running on http://localhost:5432\n\ndev_ollama_container doesn't listen to any port\n\ndev_vector_database_container is running on http://localhost:6333\n\ndev_prometheus_container is running on http://localhost:9090\n\ndev_grafana_container is running on http://localhost:4444\n```\n\nLastly, You need to run the following command to download the Large Language\nModel (LLM) that asnwers users queries and the embedding model that converts\ndatasets to vectors that are supposed to be stored in the vector database\n(Qdrant).\n\n\u003e [!NOTE]\n\u003e The following command needs the Ollama container up and running to download\n\u003e the models inside of it, So make sure to run `deno task start:dev` before\n\u003e running the following command.\n\n```\ndeno task pull-models:dev\n```\n\n\u003e [!NOTE]\n\u003e If you made any changes under `src` directory of the project in your machine,\n\u003e The changes will be reflected to the running container of the server and you\n\u003e will see the result of your changes because `src` directory is binded with the\n\u003e one inside the container, but if you made your changes in the other files and\n\u003e directories, You will need to re-build the image of the server (by running\n\u003e `deno task build:dev`) to see the effect of your changes applied.\n\nTo shut down the backend system run :point_down:\n\n```sh\ndeno task stop:dev # Stops and deletes all running containers of the backend system\n```\n\n#### Tests :test_tube:\n\nAll tests are written in Behavior-Driven Development (BDD) style using\n`@std/testing/bdd` module form the\n[standard library of Deno](https://docs.deno.com/runtime/fundamentals/standard_library/).\n\n\u003e [!IMPORTANT]\n\u003e Before you run any integration or end-to-end tests, You have to build the\n\u003e image of testing environment and get it up and running to be able to run the\n\u003e tests because i made the tests run in an isolated testing environment inside a\n\u003e docker container instead of running directly on the host machine.\n\nTo Build the testing image run this command\n\n```\ndeno task build:test\n```\n\nThen you have to get the backend system up running in testing environment by\nrunning run this command\n\n```\ndeno task test:setup\n```\n\nNow each component of the backend system should be up running inside a testing\ndocker container on your machine, You can then run the differet types of tests\nas the following: :point_down:\n\n- To run the integration tests\n\n  ```\n  deno task test:integration\n  ```\n\n- To run the end to end tests\n\n  ```\n  deno task test:e2e\n  ```\n\n- To run the unit tests\n\n  ```\n  deno task test:unit\n  ```\n\n\u003e [!NOTE]\n\u003e If you want to run only unit tests, There is no need to run\n\u003e `deno task test:setup` command to set up the whole backend system in docker\n\u003e containers, You can directly run `deno task test:unit` whenever you want\n\u003e because i made unit tests run directly on the host machine (your machine).\n\n\u003e [!IMPORTANT]\n\u003e If you changed something outside `/src` and `/tests` directories, you may need\n\u003e to re-build the testing image and re-run the testing container to see the\n\u003e effect of your changes on the tests.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabdulrhmangoni%2Fmecha_agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabdulrhmangoni%2Fmecha_agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabdulrhmangoni%2Fmecha_agent/lists"}