在 Google 云平台上运行 BaGet

警告

此页面正在完善中!

我们是开源的,欢迎贡献!在 GitHub 上 Fork 我们。

在开始之前,您应该决定使用哪个 AppEngine 区域。为获得最佳性能,Cloud Storage 和 Cloud SQL 应与您的 AppEngine 部署位于同一区域。

Google Cloud Storage

包可以存储在 Google Cloud Storage 中。

设置

按照 使用 Cloud Storage 中的说明创建存储桶。

配置

注意:如果您计划使用 AppEngine,请跳过此部分,按照下方的 AppEngine 说明操作。

设置服务账号并下载凭据。将 GOOGLE_APPLICATION_CREDENTIALS 环境变量设置为下载的 JSON 文件的路径。

通过更新 appsettings.json 文件来配置 BaGet 使用 Google Cloud Storage:

{
    ...

    "Storage": {
        "Type": "GoogleCloud",
        "BucketName": "your-gcs-bucket"
    },

    ...
}

Google Cloud SQL

{
    ...
    "Database": {
        "Type": "MySql",
        "ConnectionString": "Server=YOURIP;User Id=root;Password=***;Database=baget;CertificateFile=C:\\Path\\To\\client.pfx;CACertificateFile=C:\\Path\\To\\server-ca.pem;SSL Mode=VerifyCA"
    },
    ...
}

Google AppEngine

BaGet 可以托管在 Google AppEngine 中。参见这里了解如何创建新 AppEngine 项目的教程。

创建 app.yaml 文件来发布本仓库中 Dockerfile 构建的 Docker 容器。在下面的模板中,进行以下替换:

runtime: custom
env: flex

# 以下设置用于在测试期间降低成本,不一定
# 适用于生产环境。更多信息请参见:
# https://cloud.google.com/appengine/docs/flexible/dotnet/configuring-your-app-with-app-yaml
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

beta_settings:
  cloud_sql_instances: "PROJECT:REGION:DBINSTANCE"

env_variables:
  Database__Type: "MySql"
  Database__ConnectionString: "Server=/cloudsql/PROJECT:REGION:DBINSTANCE;User Id=root;Password=PASSWORD;Database=DBNAME;SslMode=None"
  Storage__Type: "GoogleCloud"
  Storage__BucketName: "BUCKETNAME"
  Search__Type: "Database"
  ASPNETCORE_URLS: "http://0.0.0.0:8080"

运行 gcloud app deploy 发布应用程序。