【serv00系列教程】部署tgState管理telegram的文件

tgState 是一款以 Telegram 作为免费储存的文件外链系统,目前已支持:

  • 不限制文件大小和格式

  • 支持web上传文件和telegram直接上传

  • 可搭配CloudFlare使用

项目地址

简单上手

编译

感谢 Saika指点

cd ~/domains && wget https://github.com/csznet/tgState/archive/refs/tags/v1.3.8.tar.gz && tar -zxvf v1.3.8.tar.gz && mv tgState-1.3.8/ tgState && cd tgState && sed -i '' 's/go 1.20/go 1.17/' go.mod && go mod tidy && CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -o tgState main.go && find . -maxdepth 1 ! -name 'tgState' -exec rm -rf {} \;

运行

./tgState -token <YOUR_BOT_TOKEN> -target @<YOUR_CHANNEL_LINK> -url <YOUR_DOMAIN> -port <YOUR_PORT>
你也可以编写 ecosystem.config.js 来执行
  • 创建启动文件 start.sh
#!/bin/bash
chmod +x tgState &&  ./tgState -token <YOUR_BOT_TOKEN> -target @<YOUR_CHANNEL_LINK> -url <YOUR_DOMAIN> -port <YOUR_PORT>
  • ecosystem.config.js 添加:
    {
      name: "tgState",
      script: "./start.sh",
      cwd: "/home/$username/domains/tgState",
      interpreter: "bash"
    },

如果你运行不上,可以参考下面的对策

常见问题对策

端口错误

端口 8088 已被占用

这表示端口被占用,如果你的端口是可以使用的,试试清空后台然后再运行:
pkill -kill -u <YOUR_USERNAME>

webhook错误

2024/03/29 01:21:39 Failed to get updates, retrying in 3 seconds…
2024/03/29 01:21:42 Conflict: can’t use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first

这表示存在未退出的webhook,需要先删除:
curl -X POST https://api.telegram.org/bot<YourBotToken>/deleteWebhook

参考链接

11 个赞

就是这种分销类的VPS,总感觉限制了上传
之前想上传个可道云,总是上传一半就卡住不行了(web端)
然后分卷压缩,又是上传一半就不行了
而且可道云挂webdav,也有类似情况,有没有能顺畅挂载webdav的能正常用的?

3 个赞

首先…查看代码可得,没有必要修改 main.go 文件,只是应用默认监听端口为8088,你可以使用 -port 参数指定其监听端口,如:

 ./tgState -token xxxx -target @xxxx -port 12345

然后再看 workflow ,发现原作者修改了构建时的 go 版本为 1.17 ,故最好也按照原作者的操作来,修改 go.mod 文件中的 go 1.20go 1.17
所以我建议把编译步骤改为:

# Update go.mod to use Go 1.17
sed -i '' 's/go 1.20/go 1.17/' go.mod
# Download dependencies
go mod tidy
# Build FreeBSD amd64
CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -o tgState main.go
2 个赞

是哦 :face_with_raised_eyebrow: 我没看 updated

2 个赞

感谢分享

1 个赞

如果打算用来做图床的话,建议直接考虑使用vercel搭建:

1 个赞

编译报错了:

go: error obtaining buildID for go tool compile: fork/exec /usr/local/go120/pkg/tool/freebsd_amd64/compile: resource temporarily unavailable
internal/unsafeheader: open /tmp/go-build3604226690/b009/importcfg: no such file or directory


请教是什么问题?

1 个赞

进程太多,你把后台的进程先退了

1 个赞

厉害了佬,编译通过了

1 个赞

mark

1 个赞

flag provided but not defined: -****
Usage of ./tgState:
-mode string
Run mode
-pass string
Visit Password
-port string
Web Port (default “8088”)
-target string
Channel Name or ID
-token string
Bot Token
-url string
Base Url
运行后出现这个,端口也没被占用

1 个赞

说明你运行的命令不对,这是help消息

已解决