/GuGoTik

第六届字节跳动青训营后端进阶实战项目第一名,迷你抖音后端

Primary LanguageGoGNU General Public License v3.0GPL-3.0

GuGoTik

GuGoTik

✨ 第六届字节跳动青训营进阶班后端实战项目第一名,迷你抖音后端 GuGoTik ✨

license release action

Download · Contribute · Document

GIVE US A STAR PLEASE MY SIR !!! | 请给我们一个 Star 求求了 !!!

GuGoTik is sixth practice project of ByteDance campus, themed of a micro TikTok backend.

If you want to learn more information, please wait util the competition finished. GuGoTik will provide the whole develop document, please give us a star~

English | 简体中文

Contributor

Project Developer: This is a group of Contributors from all over the world, from WHU, HNU, NJUPT.

Special Thanks:

And the friends who can not participle in our development due to the personal things:

File structure

  • docker: Built as basic image for project's dockerfile or kubernetes's basic infrastructure.
  • scripts: Build scripts
  • src: The source of the project
    • constant: The project constant
    • extra: The service being relied upon
    • idl: idl
    • models: Data model
    • rpc: Rpc code
    • services: Micro services instance
    • storage: About storage
    • utils: Utils code
    • web: Gateway code
  • test: Test of the project
  • Others:Docker Compose file and demo env

Extern service

  • Redis (Cluster)
  • PostgreSQL
  • Consul
  • OpenTelemetry Collector
  • FFMpeg
  • Go

Recommend:

  • Jaeger
  • Victoria Metrics
  • Grafana

Profile Analysis:

  • Pyroscope

Build process

RyzeBot of 梦想珈 will build image and push to kubernetes
The PR to Dev branch can be merged into the Master branch after the Action based UnitTest + Code Analysis + Lint + BuildCheck.
The Master branch will automatically trigger the CD, build the image and push it, and RyzeBot will complete the push to K8S for automatic deployment.

Config

GuGoTik can automatically capture environement variables or provide them manually as .env files in the order of coverage:
.Env > environement variable > DefaultEnv > EmptyEnv (that is, null value is provided by default, and runtime special judgment is provided by GuGoTik)

Build

Standalone

Run the build-all script in the scripts folder, and then run the run-all script. Please select the script supported by your platform.

Docker

docker pull epicmo/gugotik:latest

After entering the container through the interactive end point, run the programs under the GateWay folder and the Services folder by yourself

Docker-Compose

Run in the project root directory:
Note: The relevant account password settings are viewed in the .env.docker.compose file

docker compose up -d