{"id":15157987,"url":"https://github.com/chatyx/backend","last_synced_at":"2026-01-12T06:36:14.758Z","repository":{"id":44745358,"uuid":"408375107","full_name":"Chatyx/backend","owner":"Chatyx","description":"Simple, powerful and scalable chat backend in Go","archived":false,"fork":false,"pushed_at":"2024-02-04T09:26:52.000Z","size":681,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-31T02:17:08.139Z","etag":null,"topics":["go","golang","postgres","postgresql","redis","rest-api","websocket"],"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/Chatyx.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}},"created_at":"2021-09-20T09:02:36.000Z","updated_at":"2024-04-30T15:18:33.000Z","dependencies_parsed_at":"2023-10-14T20:14:14.734Z","dependency_job_id":"9154923c-9963-438f-b508-e61f65f98e83","html_url":"https://github.com/Chatyx/backend","commit_stats":null,"previous_names":["mort4lis/scht-backend"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chatyx%2Fbackend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chatyx%2Fbackend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chatyx%2Fbackend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chatyx%2Fbackend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Chatyx","download_url":"https://codeload.github.com/Chatyx/backend/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237982389,"owners_count":19397251,"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":["go","golang","postgres","postgresql","redis","rest-api","websocket"],"created_at":"2024-09-26T20:21:40.014Z","updated_at":"2025-10-24T14:31:22.498Z","avatar_url":"https://github.com/Chatyx.png","language":"Go","readme":"# Chatyx Backend\n![Coverage](https://img.shields.io/badge/Coverage-70.7%25-brightgreen)\n![ci](https://github.com/Chatyx/backend/actions/workflows/release.yml/badge.svg)\n![license](https://img.shields.io/github/license/Chatyx/backend)\n![go-version](https://img.shields.io/github/go-mod/go-version/Chatyx/backend)\n[![Go Report Card](https://goreportcard.com/badge/github.com/Chatyx/backend)](https://goreportcard.com/report/github.com/Chatyx/backend)\n\n## 📖 Description\n\nChatyx backend is an MVP monolith message service implemented in Go. The project will evolve \ntowards a microservice architecture. The target design is described in [this page](./docs/system_design/README.md).\n\n## 🚀 Features\n\nAlready done:\n* ✅ Support groups and dialogs\n* ✅ Support for sending text messages both via REST and Websocket\n* ✅ Add and remove participants for group chats\n* ✅ Participants can leave from group chats\n* ✅ Block partners in dialogs \n\nNot done yet:\n* ❌ Support uploading images\n* ❌ View unread messages\n* ❌ Show online/offline statuses of users, as well as when the user was last online\n* ❌ Notifications if user isn't online\n* ❌ Support cross-device synchronization\n\n## 🔧 Installation\n\n### Using single docker container\n\n```bash\ndocker run --rm --volume=$(PWD)/configs:/chatyx-backend/configs \\\n  --publish=8080:8080 --publish=8081:8081 --detach \\\n  --name=chatyx-backend mortalis/chatyx-backend:latest\n\n# Apply migrations\ndocker exec chatyx-backend ./migrate -path=./db/migrations/ -database 'postgres://\u003cPOSTGRES_USER\u003e:\u003cPOSTGRES_PASSWORD\u003e@\u003cPOSTGRES_HOST\u003e:\u003cPOSTGRES_PORT\u003e/\u003cPOSTGRES_DB\u003e?sslmode=disable' up\n```\n\n### Manually building from source code\n\n```bash\ngit clone git@github.com:Chatyx/backend.git chatyx-backend \u0026\u0026 cd chatyx-backend\nmake build\n\n# Apply migrations\n./bin/migrate -path=./db/migrations/ -database 'postgres://\u003cPOSTGRES_USER\u003e:\u003cPOSTGRES_PASSWORD\u003e@\u003cPOSTGRES_HOST\u003e:\u003cPOSTGRES_PORT\u003e/\u003cPOSTGRES_DB\u003e?sslmode=disable' up\n\n# Run the application\n./build/chatyx-backend --config=\u003cPATH_TO_THE_CONFIG\u003e\n```\n\n## ⚙️ Configuration\n\nBasic configuration defined as a single [YAML file](./configs/config.yaml):\n\nYou can configure part of parameters with environment variables like these: \n`POSTGRES_USER`, `POSTGRES_PASSWORD`, etc. The full list of supported environment variables\nare described in a config file after comment prefix `# env: `.\n\nTo run the application with substituted config you should perform:\n\n```bash\n$ ./chatyx-backend --config=\u003cPATH_TO_THE_CONFIG\u003e\n```\n\n## 📈 How to use\n\nAfter running the application you can use REST API for creating groups and dialogs, adding participants\nsending messages and so on. See swagger documentation `http://localhost:8080/swagger` for more details.\n\nAlso, available to you WebSocket API for sending and receiving messages in the real time.\n(by default at `ws://localhost:8081`). For getting that you should generate code for your \nlanguage from [proto file](./internal/transport/websocket/model/message.proto) and use `MessageCreate` to\nsend messages and `Message` to receive message.\n\nSee [documentation](https://developers.google.com/protocol-buffers) for more details.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchatyx%2Fbackend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchatyx%2Fbackend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchatyx%2Fbackend/lists"}