{"id":13561671,"url":"https://github.com/Toktik-Team/toktik","last_synced_at":"2025-04-03T17:31:26.651Z","repository":{"id":65719781,"uuid":"597483643","full_name":"Toktik-Team/toktik","owner":"Toktik-Team","description":"ChatGPT integrated short video microservice application built with Kitex and Hertz. 第五届字节跳动青训营后端大作业“码如磐石奖（一等奖）”获奖项目","archived":false,"fork":false,"pushed_at":"2023-09-17T06:32:43.000Z","size":1631,"stargazers_count":213,"open_issues_count":13,"forks_count":14,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-11-04T13:37:52.633Z","etag":null,"topics":["backend","bytedance","clone","cloudwego","consul","go","golang","hertz","kitex","microservice","short-video","tik","tiktok","tiktok-clone","tok","video"],"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/Toktik-Team.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}},"created_at":"2023-02-04T17:36:20.000Z","updated_at":"2024-11-03T13:49:49.000Z","dependencies_parsed_at":"2024-01-14T04:02:43.026Z","dependency_job_id":null,"html_url":"https://github.com/Toktik-Team/toktik","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/Toktik-Team%2Ftoktik","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Toktik-Team%2Ftoktik/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Toktik-Team%2Ftoktik/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Toktik-Team%2Ftoktik/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Toktik-Team","download_url":"https://codeload.github.com/Toktik-Team/toktik/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247046931,"owners_count":20874742,"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":["backend","bytedance","clone","cloudwego","consul","go","golang","hertz","kitex","microservice","short-video","tik","tiktok","tiktok-clone","tok","video"],"created_at":"2024-08-01T13:00:59.796Z","updated_at":"2025-04-03T17:31:21.635Z","avatar_url":"https://github.com/Toktik-Team.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# Toktik\n\n| ![logo](https://avatars.githubusercontent.com/u/124244470?s=200\u0026v=4) | ChatGPT integrated short video microservice application built with `Kitex` and `Hertz` , made by [Toktik-Team](https://github.com/Toktik-Team) in _The 5th Bytedance Youth Training Camp_. |\n| -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n\n**English** | [简体中文](README_zh-CN.md)\n\n_The 5th Bytedance Youth Training Camp_ Report Documentation: \u003chttps://qrggpk56b9.feishu.cn/docx/Djwpdm8oZo3JyRx0JwkcZhRDnVd\u003e\n\n## Recommend\n\nNow Recommend for [GuGoTik](https://github.com/GuGoOrg/GuGoTik) !  \n\nTokTik is no longer maintained and has no planned maintenance plans, please go to [GuGoTik](https://github.com/GuGoOrg/GuGoTik). GuGoTik respects and follows TokTik's workline, improving and optimizing almost every components from it and adding more features. For best expermental experience, please use [GuGoTik](https://github.com/GuGoOrg/GuGoTik) instead of TokTik.\n\nGive us your stars if you like our project.  \n\n## Awards\n\nEarned the **_Best Project_** award in _the 5th Bytedance Youth Training Camp_.\n\n![](docs/images/cert-cut.png)\n\n## Demo\n\n\u003e Download Dousheng app from [here](https://bytedance.feishu.cn/docs/doccnM9KkBAdyDhg8qaeGlIz7S7#), and use this URL to test with the demo.\n\nhttps://toktik.xctra.cn/\n\n## Project Structure\n\n- [constant](constant)\n  - [biz](constant/biz) - Business logic related constants\n  - [config](constant/config)\n    - [env.go](constant/config/env.go) - Environment variable configs\n    - [service.go](constant/config/service.go) - Service names and ports\n- [idl](idl)\n  - [auth.proto](idl/auth.proto) - RPC definition of auth service\n  - [comment.proto](idl/comment.proto) - RPC definition of comment service\n  - [favorite.proto](idl/favorite.proto) - RPC definition of favorite service\n  - [feed.proto](idl/feed.proto) - RPC definition of feed service\n  - [publish.proto](idl/publish.proto) - RPC definition of publish service\n  - [relation.proto](idl/relation.proto) - RPC definition of relation service\n  - [user.proto](idl/user.proto) - RPC definition of user service\n  - [wechat.proto](idl/wechat.proto) - RPC definition of chat service\n- [kitex_gen](kitex_gen) - Generated code by Kitex\n- [logging](logging) - Logging middleware\n- [manifests-dev](manifests-dev) - Kubernetes manifests\n- [repo](repo) - Database schemas and generated code by Gorm Gen\n- [service](service)\n  - [auth](service/auth) - Auth service impl\n  - [comment](service/comment) - Comment service impl\n  - [favorite](service/favorite) - Favorite service impl\n  - [feed](service/feed) - Feed service impl\n  - [publish](service/publish) - Publish service impl\n  - [relation](service/relation) - Relation service impl\n  - [user](service/user) - User service impl\n  - [web](service/web) - Web api gateway\n    - [mw](service/web/mw) - Hertz middlewares\n  - [wechat](service/wechat) - Chat service impl\n- [storage](storage) - Storage middleware, s3, local storage \u0026 volcengine [ImageX](https://www.volcengine.com/products/imagex) supported\n- [test](test)\n  - [e2e](test/e2e) - End-to-end test\n  - [mock](test/mock) - Mock data for unit test\n\n## Prerequisite\n\n\u003e This project does not support Windows, as Kitex does not support either.\n\n- Linux / MacOS\n- Go\n- FFmpeg\n- PostgreSQL\n- Redis\n- OpenTelemetry Collector\n\nFor observability infrastructures, it's recommended to use:\n\n- Jaeger All in one\n- Victoria Metrics\n- Grafana\n\n## Build\n\nRun `./build-all.sh` in your Linux environment to compile all services.\n\n## Configurations\n\nCheck out [`constant/config/env.go`](constant/config/env.go)\n\n## Run\n\n- Run `start.sh --service \u003cservice_name\u003e` to start a service.\n- `service_name` could be any of the sub directory of `./service`.\n\n## Test\n\n### Unit Test\n\nRun `./unit-test.sh`\n\n### End-to-End Test\n\nRun `go test toktik/test/e2e -tags=\"e2e\"`\n\n## How to Contribute\n\n1. Please following the [HowToAddServices](docs/HowToAddServices.md) to create your own service.\n2. Create a new branch and make your changes.\n3. Create a pull request to the `main` branch.\n4. Wait for review and merge.\n\n## Contributors\n\n- [Nico](https://github.com/nicognaW)\n- [Eric_Lian](https://github.com/ExerciseBook)\n- [Dark Litss](https://github.com/lss233)\n- [HikariLan](https://github.com/shaokeyibb)\n- [YunShu](https://github.com/Selflocking)\n\n## License\n\nToktik is licensed under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FToktik-Team%2Ftoktik","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FToktik-Team%2Ftoktik","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FToktik-Team%2Ftoktik/lists"}