{"id":26584170,"url":"https://github.com/atomostechhq/translator-monorepo","last_synced_at":"2026-04-13T20:02:02.335Z","repository":{"id":282017126,"uuid":"947185698","full_name":"atomostechhq/translator-monorepo","owner":"atomostechhq","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-13T00:52:17.000Z","size":20,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-23T09:19:53.533Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atomostechhq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-03-12T09:38:34.000Z","updated_at":"2025-03-12T10:16:33.000Z","dependencies_parsed_at":"2025-03-12T11:25:56.727Z","dependency_job_id":"5e6dd980-9c6c-44c9-86a3-d86ebe08e3c9","html_url":"https://github.com/atomostechhq/translator-monorepo","commit_stats":null,"previous_names":["atomostechhq/translator-monorepo"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/atomostechhq/translator-monorepo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomostechhq%2Ftranslator-monorepo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomostechhq%2Ftranslator-monorepo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomostechhq%2Ftranslator-monorepo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomostechhq%2Ftranslator-monorepo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atomostechhq","download_url":"https://codeload.github.com/atomostechhq/translator-monorepo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomostechhq%2Ftranslator-monorepo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31768649,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T15:25:13.801Z","status":"ssl_error","status_checked_at":"2026-04-13T15:25:09.162Z","response_time":93,"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":"2025-03-23T09:19:46.988Z","updated_at":"2026-04-13T20:02:02.313Z","avatar_url":"https://github.com/atomostechhq.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Translator Monorepo\n\nThis open-source monorepo combines two main services:\n1. **Translator Service (Python)** – uses the M2M100 model to translate text.\n2. **Go API** – provides an HTTP endpoint that calls the Translator service.\n\n---\n\n## Tech Specs\n- **Python 3.11** for the Translator Service\n- **Golang 1.22** for the Go API\n- **Minimum Specs**: 2 CPU / 4 GB RAM\n- **Docker** \u003e= 20.x\n- **Docker Compose** \u003e= v2\n\n---\n\n## Container Images\nImages are hosted on a Harbor-like registry:\n\n- **Translator Service**: `https://registry.mirats.cloud/openkits/translator-service:1.0.0`\n- **Go API**: `https://registry.mirats.cloud/openkits/go-api:1.0.0`\n\nThe `docker-compose.yml` references these images directly.\n\n---\n\n## Repository Structure\n\n```\ntranslator-monorepo\n├── .gitignore\n├── .dockerignore\n├── README.md\n├── docker-compose.yml\n├── install.sh\n├── build-images.sh       # Private script (excluded from Git)\n├── translator\n│   ├── Dockerfile\n│   ├── requirements.txt\n│   └── translator.py\n└── api\n    ├── Dockerfile\n    ├── main.go\n    ├── go.mod\n    └── go.sum\n```\n\n### `.gitignore`\nExcludes OS junk, compiled artifacts, logs, and `build-images.sh`.\n\n### `.dockerignore`\nPrevents Git, node_modules, and build artifacts from bloating the Docker image.\n\n### `install.sh`\nAutomates Docker \u0026 Docker Compose installation if missing, then pulls and runs the services.\n\n### `build-images.sh`\nFor maintainers to locally build \u0026 push images to the registry. Excluded from Git by default.\n\n---\n\n## Setup \u0026 Usage\n\n1. **Clone the Repository**:\n    ```bash\n    git clone \u003crepo-url\u003e\n    cd translator-monorepo\n    ```\n\n2. **Run the Installer**:\n    ```bash\n    chmod +x install.sh\n    ./install.sh\n    ```\n    This checks/install Docker \u0026 Docker Compose if needed, then pulls and starts the containers in detached mode.\n\n3. **Access the Services**:\n    - **Go API**: [http://localhost:8080/api/v1/translate](http://localhost:8080/api/v1/translate)\n    - **Translator** (Python FastAPI): [http://localhost:8000/translate](http://localhost:8000/translate)\n\n---\n\n## Testing the Translation Endpoint\n\nSend a POST request to `go-api`:\n```bash\ncurl -X POST \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\"text\": \"Hello, world!\", \"target_lang\": \"fr\"}' \\\n     http://localhost:8080/api/v1/translate\n```\n\n**Sample Response**:\n```json\n{\n  \"translated_text\": \"Bonjour le monde!\",\n  \"detected_source_lang\": \"en\"\n}\n```\n\n---\n\n## Managing Containers\n\n- Stop containers:\n  ```bash\n  docker-compose down\n  ```\n- Check logs:\n  ```bash\n  docker-compose logs -f\n  ```\n\n---\n\n## Building \u0026 Pushing Images (Maintainers Only)\n\nUse `build-images.sh` for internal workflows:\n\n```bash\nchmod +x build-images.sh\n./build-images.sh\n```\n\nThis will:\n1. Build \u0026 push `translator-service`.\n2. Build \u0026 push `go-api`.\n\nBecause `build-images.sh` is private, it’s excluded via `.gitignore`.\n\n---\n\n## Contributing\n\nFeel free to open PRs or issues for bug fixes, improvements, or new features. We welcome community support!\n\n---\n\n## License\nThis project is [MIT Licensed](https://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatomostechhq%2Ftranslator-monorepo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatomostechhq%2Ftranslator-monorepo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatomostechhq%2Ftranslator-monorepo/lists"}