在 fly.io 上运行 Gitea
Gitea 被设计成可以在许多不同的平台上运行,并且对资源的要求非常低。 这是很棒的,因为无论您有什么样的电脑,Gitea 都可以在上面运行。
虽然您可能希望在某些时候自行托管自己的实例,但您可能不想管理服务器的所有移动元素,例如防火墙、Web 服务器、TLS 证书等等。 这就是 fly.io 出场的地方。 fly.io 是一个平台,它拥有一个慷慨的免费层,允许您告诉他们您要运行的 Docker 镜像,他们会处理所有繁琐且耗时的操作开销。
要开始,您需要注册一个 fly.io 帐户。 幸运的是,他们有一个很好的 入门指南,可以引导您完成整个过程。
拥有帐户后,您就可以开始在 fly.io 上运行 Gitea 了。
# create a directory to store fly.io application config
mkdir gitea-on-fly
# enter into the newly created directory
cd gitea-on-fly
# tell fly.io you wish to create a new application in the amsterdam region (there are many other regions you could pick too)
# pick any name for the app that you'd like, in the example we are using `gitea-on-fly`
flyctl launch --name gitea-on-fly --no-deploy --region ams
# give the newely create application persistant storage, so your data persists between app updates
flyctl volumes create gitea_data --size 1 --region ams --app gitea-on-fly
您会注意到,创建应用程序后,将在您刚创建的目录中创建一个名为 fly.toml
的新文件。 它包含很多占位符信息,您需要将其替换为以下内容。 使用您在创建应用程序时选择的名称替换下面配置中出现的所有 gitea-on-fly
。
app = "gitea-on-fly"
kill_timeout = 5
[build]
image = "gitea/gitea:latest" # latest is the most recent stable release
[env]
GITEA__database__DB_TYPE="sqlite3"
GITEA__database__PATH="/data/gitea/gitea.db"
GITEA__server__DOMAIN="gitea-on-fly.fly.dev"
GITEA__server__SSH_DOMAIN="gitea-on-fly.fly.dev"
GITEA__server__ROOT_URL="https://gitea-on-fly.fly.dev"
GITEA__security__INSTALL_LOCK="true" # Don't show installer
# GITEA__service__DISABLE_REGISTRATION="true" # TODO: uncomment once you have created your first user
# persist data
[[mounts]]
destination = "/data"
source = "gitea_data"
# ssh traffic
[[services]]
internal_port = 22
protocol = "tcp"
[[services.ports]]
port = 22
# https traffic
[[services]]
internal_port = 3000
protocol = "tcp"
[[services.ports]]
handlers = ["http"]
force_https = true
port = 80
[[services.ports]]
handlers = ["tls", "http"]
port = 443
更新配置示例后,使用您选择的应用程序名称,运行 flyctl deploy
,它会将所有内容推送到 fly.io 并部署您的 Gitea 实例。
现在您可以访问 https://gitea-on-fly.fly.dev(或您选择的任何名称),并创建帐户并使用您的 Gitea 实例。
如果您希望自己是实例中唯一拥有帐户的人,在注册帐户后,您可以通过取消注释环境变量 GITEA__service__DISABLE_REGISTRATION
并在再次运行 flyctl deploy
来关闭注册。
现在您已经在 fly.io 上运行了一个 Gitea 实例,您可能希望查看备份、使用自己的域名、使用 fly.io cli 扩展 RAM/CPU,甚至使用 fly.io 托管的 postgres 作为数据库而不是 sqlite。