是的,当然。
由 Ansible 管理。请勿在服务器上直接修改
这是 Discourse Docker 容器的独立一体化模板
修改此文件后,您必须重新构建
/var/discourse/launcher rebuild app
编辑时请非常小心!
YAML 文件对空白字符或缩进的错误极其敏感!
如有需要,请访问 http://www.yamllint.com/ 验证此文件
templates:
#- “templates/postgres.template.yml”
#- “templates/redis.template.yml”
- “templates/web.template.yml”
- “templates/web.ratelimited.template.yml”
如果您想添加 Lets Encrypt (https),请取消注释以下两行
- “templates/web.ssl.template.yml”
#- “templates/web.letsencrypt.ssl.template.yml”
此容器应暴露哪些 TCP/IP 端口?
如果您希望 Discourse 与 Apache 或 nginx 等其他 Web 服务器共享端口,
请参阅 Run other websites on the same machine as Discourse 了解详情
expose:
- “80:80” # http
- “443:443” # https
params:
db_default_text_search_config: “pg_catalog.english”
将 db_shared_buffers 设置为总内存的最大 25%。
将基于检测到的 RAM 由 bootstrap 自动设置,您也可以覆盖
db_shared_buffers: ‘16GB’
可提高排序性能,但会增加每个连接的内存使用量
#db_work_mem: “40MB”
此容器应使用哪个 Git 修订版?(默认:tests-passed)
#version: tests-passed
env:
LANG: en_US.UTF-8
DISCOURSE_DEFAULT_LOCALE: en
支持多少并发 Web 请求?取决于内存和 CPU 核心数。
将基于检测到的 CPU 由 bootstrap 自动设置,您也可以覆盖
UNICORN_WORKERS: 8
TODO: 此 Discourse 实例将响应的域名
必填项。Discourse 无法在纯 IP 地址上运行。
DISCOURSE_HOSTNAME: ‘community-dev.stackit.cloud’
如果您希望容器以与上述指定的相同主机名(-h 选项)启动,请取消注释
(默认为 “$hostname-$config”)
#DOCKER_USE_HOSTNAME: true
TODO: 初始注册时将设为管理员和开发者的逗号分隔邮箱列表
示例:‘user1@example.com,user2@example.com’
DISCOURSE_DEVELOPER_EMAILS: ‘xxx’
TODO: 用于验证新账户和发送通知的 SMTP 邮件服务器
SMTP 地址、用户名和密码为必填项
警告:SMTP 密码中的字符 ‘#’ 可能导致问题!
DISCOURSE_SMTP_ADDRESS: ‘1.2.3.4’
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: ‘xx@xx.de’
DISCOURSE_SMTP_PASSWORD: ‘xxx’
DISCOURSE_SMTP_ENABLE_START_TLS: true
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
如果您添加了 Lets Encrypt 模板,请取消注释以下行以获取免费 SSL 证书
#LETSENCRYPT_ACCOUNT_EMAIL: info@ediri.de
此 Discourse 实例的 http 或 https CDN 地址(配置为拉取)
请参阅 Enable a CDN for your Discourse 了解详情
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
#DISCOURSE_CDN_URL: community-cdn.change.me
MaxMind 地理位置 IP 地址查询密钥
请参阅 Upgrade / Rebuilds Fail due to MaxMind DB EOL - #23 by sam 了解详情
#DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456
DISCOURSE_DB_POOL: 16
DISCOURSE_DB_USERNAME: ‘discourse’
DISCOURSE_DB_PASSWORD: ‘yyy’
DISCOURSE_DB_HOST: 1.2.3.4
DISCOURSE_DB_NAME: ‘discourse’
DISCOURSE_DB_PORT: 5432
DISCOURSE_REDIS_HOST: ‘y.de’
DISCOURSE_REDIS_PASSWORD: ‘xxx’
DISCOURSE_REDIS_PORT: 49456
DISCOURSE_MESSAGE_BUS_REDIS_ENABLED: true
DISCOURSE_MESSAGE_BUS_REDIS_HOST: ‘y.de’
DISCOURSE_MESSAGE_BUS_REDIS_PORT: 49456
DISCOURSE_MESSAGE_BUS_REDIS_PASSWORD: ‘xxx’
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: whatever
DISCOURSE_S3_ENDPOINT: https://assets.xxx
DISCOURSE_S3_ACCESS_KEY_ID: ‘discourse-dev’
DISCOURSE_S3_SECRET_ACCESS_KEY: ‘xxx’
DISCOURSE_S3_CDN_URL: https://discourse-dev.assets.xxx
DISCOURSE_S3_BUCKET: ‘discourse-dev’
DISCOURSE_S3_BACKUP_BUCKET: ‘discourse-dev/backups’
DISCOURSE_BACKUP_LOCATION: s3
DISCOURSE_S3_INSTALL_CORS_RULE: false
Docker 容器是无状态的;所有数据都存储在 /shared 中
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared - volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
插件放在此处
请参阅 Install plugins on a self-hosted site 了解详情
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone GitHub - discourse/docker_manager: Plugin for use with discourse docker image · GitHub
- git clone GitHub - discourse/discourse-cakeday: Show a birthday cake emoji beside the names of members on their join anniversary, or their actual birthday -- and a browsable directory of upcoming anniversaries / birthdays. · GitHub
- git clone GitHub - discourse/discourse-oauth2-basic: A basic OAuth2 plugin for use with Discourse · GitHub
#- git clone GitHub - discourse/discourse-bbcode: vBulletin BBCode plugin · GitHub
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
构建后运行的任何自定义命令
run:
- exec: echo “开始自定义命令”
如果您想设置首次注册的“发件人”邮箱地址,请取消注释并修改:
收到首次注册邮件后,请重新注释该行。该行只需运行一次。
- exec: rails r “SiteSetting.notification_email=‘xxx@xxx.de’”
- exec: echo “结束自定义命令”