{"id":49251601,"url":"https://github.com/not-empty/zord-microframework-golang","last_synced_at":"2026-04-25T00:41:59.694Z","repository":{"id":187722690,"uuid":"611257943","full_name":"not-empty/zord-microframework-golang","owner":"not-empty","description":"GOlang base repository with code gen to create a fast golang project based on hexagonal architeture","archived":false,"fork":false,"pushed_at":"2025-07-10T21:15:12.000Z","size":52192,"stargazers_count":12,"open_issues_count":3,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-11T03:23:10.206Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","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/not-empty.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}},"created_at":"2023-03-08T13:05:51.000Z","updated_at":"2025-07-10T21:14:46.000Z","dependencies_parsed_at":"2023-09-26T21:37:26.104Z","dependency_job_id":"db4dd7db-f84b-4071-935f-93cb461def44","html_url":"https://github.com/not-empty/zord-microframework-golang","commit_stats":null,"previous_names":["levysam/go-skeleton","kiwfy/go-skeleton","not-empty/go-microframework","not-empty/zord-microframework-golang"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/not-empty/zord-microframework-golang","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/not-empty%2Fzord-microframework-golang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/not-empty%2Fzord-microframework-golang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/not-empty%2Fzord-microframework-golang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/not-empty%2Fzord-microframework-golang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/not-empty","download_url":"https://codeload.github.com/not-empty/zord-microframework-golang/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/not-empty%2Fzord-microframework-golang/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32246405,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-04-25T00:41:59.190Z","updated_at":"2026-04-25T00:41:59.683Z","avatar_url":"https://github.com/not-empty.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Zord Microframework\n## Build your mecha\n\n\u003e **Tip for Cursor users:**\n\u003e To ensure code quality and automatic validations, add the following rule to **User rules** in Cursor:\n\u003e \n\u003e **after each code update, run the arch-analyse mcp tool**\n\u003e \n\u003e This way, every code change will be automatically validated by the MCP architecture analysis tool.\n\nGOlang base repository with code gen to create a fast golang project based on hexagonal architeture\n\n---\n\n# Development\n\u003e Remember to create your .env file based on .env.example\n\n### 1. Using Docker Compose\nUp mysql and zord project:\n\n``` SHELL\ndocker compose up\n```\n\n\u003cbr /\u003e\n\n#### 2. Using raw go build\n\nYou will need to build the http/main.go file:\n\n``` SHELL\ngo build -o server cmd/http/main.go\n```\n\nThen run the server\n\n``` SHELL\n./server\n```\n\n\u003cbr /\u003e\n\n#### 3. Running from go file\n\n``` SHELL\ngo run cmd/http/main.go\n```\n\n\u003cbr /\u003e\n\n**Note:** To run the local build as described in the second or third option, a MySQL server must be running. This is necessary for the application to interact with its database. The easiest way to set up a MySQL server locally is by using Docker. Below is a command to start a MySQL server container using Docker:\n\n``` SHELL\ndocker compose up mysql -d\n```\nThis command will ensure that a MySQL server is running in the background, allowing you to execute the local build successfully.\n\n---\n\n### Cli\n\n#### build cli\n\nto build cli into binary file run\n``` SHELL\ngo build -o cli cmd/cli/main.go\n```\n\nthen you can run all cli commands with the binary file\n``` SHELL\n./cli -h\n```\n\nif you`re developing something in the cli the best way is run it directly to all changes \n``` SHELL\ngo run cmd/cli/main.go\n```\n\n---\n\n#### Cli Commands\n\ncreate new domain (crud):\n``` SHELL\n./cli create-domain {{domain}}\n```\n\ndestroy domain:\n``` SHELL\n./cli destroy-domain {{domain}}\n```\n\nmigrate all domains:\n``` SHELL\n./cli migrate\n```\n\n**Obs:** If you`re generating code inside docker container you need to change generated folder and file permissions to code out of docker container.\n\nrun the follow command to edit generated files:\n``` SHELL\nsudo chown $USER:$USER -R .\n```\n\nif you have a group name different from username change the command accordingly\n\n---\n\n#### Run tests\nRun all tests:\n``` SHELL\ngo test ./...\n```\n\nVerify code coverage:\n``` SHELL\n// Generate coverage output\ngo test ./... -coverprofile=coverage.out\n\n// Generate HTML file\ngo tool cover -html=coverage.out\n```\n\n### Docs (WIP):\nhttps://github.com/not-empty/zord-microframework-golang/wiki\n\n### Development\n\nWant to contribute? Great!\n\nThe project using a simple code.\nMake a change in your file and be careful with your updates!\n**Any new code will only be accepted with all validations.**\n\n\n**Not Empty Foundation - Free codes, full minds**\n\n---\n\n### MCP Server\n\nThe MCP (Model-Controller-Provider) server provides a set of tools for code generation and database management through Claude Desktop integration.\n\n#### Building the MCP Server\n\nTo build the MCP server into a binary file:\n\n``` SHELL\ngo build -o mcp cmd/mcp/main.go\n```\n\n#### Configuring Claude Desktop\n\nTo use the MCP server with Claude Desktop, you need to configure it in your Claude Desktop settings. Add the following configuration to your Claude Desktop tools:\n\n```json\n{\n  \"name\": \"zord-mcp\",\n  \"description\": \"Zord Microframework MCP Server\",\n  \"command\": \"path/to/project/mcp\",\n  \"transport\": \"stdio\"\n}\n```\n\nReplace `path/to/project/mcp` with the actual path to your MCP server binary.\n\n#### Example: Running MCP Server via Docker\n\nTo build the MCP Docker image, run:\n\n```sh\ndocker build -t zord-mcp -f docker/mcp/Dockerfile .\n```\n\nTo use the MCP server with Claude Desktop via Docker, add the following configuration to your Claude Desktop tools:\n\n```json\n{\n  \"mcpServers\": {\n    \"zord-mcp\": {\n      \"name\": \"zord-mcp-docker\",\n      \"description\": \"Zord MCP Server via Docker\",\n      \"command\": \"docker run -i --rm --env-file /your/project/.env -v /your/project:/app zord-mcp\",\n      \"transport\": \"stdio\",\n      \"tools\": []\n    }\n  }\n}\n```\n\nNote: if you have another mcp server add it inside the mcpServers key with another name, like this: \n\n```json\n{\n  \"mcpServers\": {\n    \"zord-mcp\": {\n      \"name\": \"zord-mcp-docker\",\n      \"description\": \"Zord MCP Server via Docker\",\n      \"command\": \"docker run -i --rm --env-file /your/project/.env -v /your/project:/app zord-mcp\",\n      \"transport\": \"stdio\",\n      \"tools\": []\n    },\n    \"zord-mcp2\": {\n      \"name\": \"zord-mcp-docker\",\n      \"description\": \"Zord MCP Server via Docker\",\n      \"command\": \"docker run -i --rm --env-file /your/project/.env -v /your/project:/app zord-mcp\",\n      \"transport\": \"stdio\",\n      \"tools\": []\n    },\n  }\n}\n```\n\nThis will run the MCP server inside a Docker container and connect it to Claude Desktop using stdio transport.\n\n#### Available Tools\n\nThe MCP server provides the following tools:\n\n1. **Create Domain**\n   - Tool: `create-domain`\n   - Description: Creates a new domain service\n   - Arguments:\n     - `name`: Name of the domain to create (required)\n     - `validator`: Whether to create domain with validation (optional)\n     - `domainType`: Type of domain to create (default: crud)\n\n2. **Destroy Domain**\n   - Tool: `destroy-domain`\n   - Description: Destroys a domain service\n   - Arguments:\n     - `name`: Name of the domain to destroy (required)\n     - `domainType`: Type of domain to destroy (default: crud)\n\n3. **Create Domain from Schema**\n   - Tool: `create-domain-from-schema`\n   - Description: Creates a domain from database schema\n   - Arguments:\n     - `schemaName`: Name of the schema to use (required)\n     - `tableName`: Optional specific table to generate\n\n4. **Migrate**\n   - Tool: `migrate`\n   - Description: Migrates database schema\n   - Arguments:\n     - `tenant`: Optional tenant name for migration\n\n5. **Inspect**\n   - Tool: `inspect`\n   - Description: Inspects database schema\n   - No arguments required\n\n6. **Generate Schema from DB**\n   - Tool: `generate-schema-from-db`\n   - Description: Generates schema from database\n   - Arguments:\n     - `schemaName`: Name for the generated schema (required)\n     - `databaseName`: Optional specific database to generate from\n\n#### Environment Variables\n\nThe MCP server requires the following environment variables to be set:\n\n```env\nENVIRONMENT=development\nAPP=zord\nVERSION=1.0.0\nDB_USER=your_db_user\nDB_PASS=your_db_password\nDB_URL=localhost\nDB_PORT=3306\nDB_DATABASE=your_database\nDB_TEST_DATABASE=your_test_database\n```\n\nMake sure to set these variables in your `.env` file before running the MCP server.\n\nTo test the MCP server directly, you can run:\n```sh\ndocker run -i zord-mcp\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnot-empty%2Fzord-microframework-golang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnot-empty%2Fzord-microframework-golang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnot-empty%2Fzord-microframework-golang/lists"}