ターゲット URL は https://discourse.example.com:9443 です。
別のサーバーでリバースプロキシ(nginx)を使用しており、設定は以下の通りです。
スポンサー
server {
listen 9443 ssl;
listen [::]:9443 ssl;
client_max_body_size 500m;
server_name discourse.example.com;
ssl_certificate /etc/ssl/certs/example.com.pem;
ssl_certificate_key /etc/ssl/private/example.com.key;
location / {
proxy_pass http://10.250.26.133:3080/;
proxy_set_header Host $host;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
また、コンテナの app.yml は以下の通りです。
スポンサー
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
# - "templates/web.ssl.template.yml"
# - "templates/web.letsencrypt.ssl.template.yml"
expose:
- "3080:80" # http
- "443:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
db_shared_buffers: "2048MB"
env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
UNICORN_WORKERS: 8
DISCOURSE_HOSTNAME: discourse.example.com
DISCOURSE_PORT: 9443 # <- これが機能しません
#DOCKER_USE_HOSTNAME: true
DISCOURSE_DEVELOPER_EMAILS: 'admin@example.com'
DISCOURSE_SMTP_ADDRESS: smtp.example.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: example-username
DISCOURSE_SMTP_PASSWORD: "p@ssw0rd"
DISCOURSE_SMTP_AUTHENTICATION: login
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
DISCOURSE_SMTP_ENABLE_START_TLS: true # (オプション、デフォルトは true)
DISCOURSE_SMTP_DOMAIN: example.com
DISCOURSE_NOTIFICATION_EMAIL: discourse@example.com
LETSENCRYPT_ACCOUNT_EMAIL: me@example.com
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/discourse/discourse-oauth2-basic.git
run:
- exec: echo "カスタムコマンドの開始"
- exec: echo "カスタムコマンドの終了"
./launcher rebuild app を実行しました。
その後、https://discourse.example.com:9443 という URL で動作するようになりました。
しかし、以下の問題が発生しています。
-
管理者ユーザーを作成できません。Discourse がポート 9443 を含まない URL にリダイレクトしてしまうためです。
コンソールから管理者を作成する必要がありました(./launcher enter appを実行し、その後rake admin:createを実行)。 -
同じ理由により、他のユーザーを登録できません。
-
Gitea OAuth で接続できません。Discourse が誤った redirect_uri(URL からポート 9443 が欠落)を含む認可 URL を生成するためです。
DISCOURSE_HOSTNAME の隣に DISCOURSE_PORT を指定する方法はありますか?