<a href="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg">
<img src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg" alt="semantic-release">
</a>
<a href="https://pkg.go.dev/github.com/UESTCByteDance/ByteRhythm/v2">
<img src="https://godoc.org/github.com/UESTCByteDance/ByteRhythm?status.svg" alt="Godoc">
</a>
<a href="https://github.com/UESTCByteDance/ByteRhythm/blob/master/LICENSE">
<img src="https://img.shields.io/github/license/UESTCByteDance/ByteRhythm?style=flat-square" alt="license">
</a>
<a href="https://github.com/UESTCByteDance/ByteRhythm/issues">
<img src="https://img.shields.io/github/issues/UESTCByteDance/ByteRhythm?style=flat-square" alt="GitHub issues">
</a>
<a href="#">
<img src="https://img.shields.io/github/stars/UESTCByteDance/ByteRhythm?style=flat-square" alt="GitHub stars">
</a>
<a href="https://github.com/UESTCByteDance/ByteRhythm/network">
<img src="https://img.shields.io/github/forks/UESTCByteDance/ByteRhythm?style=flat-square" alt="GitHub forks">
</a>
<a href="https://github.com/UESTCByteDance/ByteRhythm/releases/latest">
<img src="https://img.shields.io/github/release/UESTCByteDance/ByteRhythm.svg" alt="Release">
</a>
<span>
<img src="https://img.shields.io/github/languages/top/UESTCByteDance/ByteRhythm" alt="language">
</span>
<span>
<img src="https://img.shields.io/github/last-commit/UESTCByteDance/ByteRhythm" alt="last commit">
</span>
本项目有v1、v2两个版本,可前往Releases下载使用,前者是传统的单体架构,用beego实现,后者是微服务架构,由gin+go-micro实现。
下面介绍v2版的使用:
如果不使用docker进行容器化部署(docker部署参照文末),可以参考以下步骤进行本地部署。建议使用环境为Ubuntu20.04。
git clone https://github.com/UESTCByteDance/ByteRhythm.git
go mod tidy
打开config.ini,修改以下内容:
DBHost = 127.0.0.1
DBPort = 3306
DBUser = root
DBPassWord = 123456
DBName = tiktok
确保你的Ubuntu20.04已经装了MySQL,并且能够连接上,然后新建数据库tiktok
ffmpeg环境打开终端,依次执行下列命令(逐条执行):
sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texi2html zlib1g-dev
sudo apt install -y libavdevice-dev libavfilter-dev libswscale-dev libavcodec-dev libavformat-dev libswresample-dev libavutil-dev
sudo apt-get install yasm
export FFMPEG_ROOT=$HOME/ffmpeg
export CGO_LDFLAGS="-L$FFMPEG_ROOT/lib/ -lavcodec -lavformat -lavutil -lswscale -lswresample -lavdevice -lavfilter"
export CGO_CFLAGS="-I$FFMPEG_ROOT/include"
export LD_LIBRARY_PATH=$HOME/ffmpeg/lib
如果未安装,前往官方网站:https://github.com/etcd-io/etcd/releases/tag/v3.5.9下载适合你系统的安装包并解压。
按需修改配置:
EtcdHost = 127.0.0.1
EtcdPort = 2379
在对应终端执行:
./etcd
如果权限不够,可以使用chmod +x etcd赋予可执行权限再执行./etcd。
可以安装etcdkeeper进入UI界面进行查看。
如果未安装,前往官方网站:https://www.jaegertracing.io/download/下载适合你系统的安装包并解压。
按需修改配置:
JaegerHost = 127.0.0.1
JaegerPort = 6831
在对应终端执行:
./jaeger-all-in-one --collector.zipkin.host-port=:9411
如果权限不够,可以使用chmod +x jaeger-all-in-one
赋予可执行权限再执行./jaeger-all-in-one --collector.zipkin.host-port=:9411。
可以访问:http://localhost:16686进入UI界面。
如果未安装,前往官方网站:https://www.rabbitmq.com/install-debian.html下载安装。
按需修改配置:
RabbitMQ = amqp
RabbitMQHost = 127.0.0.1
RabbitMQPort = 5672
RabbitMQUser = guest
RabbitMQPassWord = guest
确保RabbitMQ能在本地运行。
如果未安装,打开终端,依次执行下列命令(逐条执行):
sudo apt update
sudo apt install redis-server
按需修改配置:
RedisHost = 127.0.0.1
RedisPort = 6379
确保Redis能在本地运行。
根据你的七牛云账户信息,修改以下配置:
Bucket = your bucket
AccessKey = your access key
SecretKey = your secret key
Domain = your domain
//构建项目
chmod +x build.sh
./build.sh
//运行项目
chmod +x run.sh
./run.sh
如果你是将项目克隆到Windows系统里,再转移到Ubuntu系统里,很可能会遇到Windows和Linux换行不兼容的问题,建议先执行命令sed -i -e 's/\r$//' build.sh run.sh,再执行上述命令。
cd test
go test -v
注:测试文件的参数可能会需要根据实际情况更改。
tips:由于服务器性能限制,因此将所有微服务放在同一个容器中,后续可用docker-compose部署为7个业务容器
docker run -d -p 3306:3306 --name tiktok-mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=tiktok mysql/mysql-server:latest
docker run -it -p 8080:8080/tcp -p 16686:16686/tcp --name byterhythm david945/byterhythm:v2.1
$ claude mcp add ByteRhythm \
-- python -m otcore.mcp_server <graph>