ãã®ããã¥ã¡ã³ãã¯ãdiscourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub ããŒãžã®å 容ã翻蚳ãããã®ã§ãã
翻蚳å ã®åæã¯ä»¥äžã®å Žæã§å ¬éãããŠããŸãïŒhttps://www.isharkfly.com/t/discourse/13590ãè°è«ãžã®åå ãæè¿ããŸãã
ã¯ã©ãŠããã©ãããã©ãŒã ãžã®ã€ã³ã¹ããŒã«
ã¯ã©ãŠããã©ãããã©ãŒã ã§ã® Discourse ã€ã³ã¹ããŒã«ã¯éåžž 30 å以å ã§å®äºããŸããRails ã Linux ã·ã§ã«ã®ç¥èãå šããªããŠããã¹ã ãŒãºã«ã€ã³ã¹ããŒã«ã§ããŸãã以äžã§ã¯ãDigitalOcean ãµãŒãã¹ãããã€ããŒã䜿çšããŠã€ã³ã¹ããŒã«ãã¹ããè¡ã£ãŠããŸããããã¹ãŠã®ã€ã³ã¹ããŒã«æé 㯠Docker ã«æºæ ãããã¹ãŠã®ã¯ã©ãŠãã³ã³ãã¥ãŒãã£ã³ã°ãã©ãããã©ãŒã ã§å®è¡å¯èœã§ãããããŒã«ã«ãµãŒããŒã§ã®ã€ã³ã¹ããŒã«ãå¯èœã§ãã
30 åãæéããªãå Žåã¯ïŒDiscourse ã³ãã¥ããã£ã«ã€ã³ã¹ããŒã«ãäŸé Œããããšãã§ããŸããDiscourse ã³ãã¥ããã£ã§ã¯ãäžåéãã® 150 ãã«ã®ææ°æã城åããŸãããã¡ãã®ãªã³ã¯ãããµãŒãã¹ãè³Œå ¥ããŠãã ããã
äºåæºå
ãã¡ã€ã³å
Discourse 㯠IP ã¢ãã¬ã¹ã§ã¯åäœããŸãããã€ã³ã¹ããŒã«ã«ã¯ãã¡ã€ã³åãŸãã¯ãµããã¡ã€ã³ïŒäŸïŒ
example.comïŒãå¿ èŠã§ãã
- ãã¡ã€ã³åããã§ã«ææããŠããå Žåã¯ãä»»æã®ãµããã¡ã€ã³ïŒäŸïŒ
discourse.example.comãtalk.example.comãforum.example.comïŒãéžæã㊠Discourse ã€ã³ã¹ã¿ã³ã¹ãã€ã³ã¹ããŒã«ã§ããŸãã - ãã¡ã€ã³åãæã£ãŠããªãå Žåã¯ãNameCheap ãŠã§ããµã€ãã§ã奜ã¿ã®ãã¡ã€ã³ãæ€çŽ¢ããããGoogle ã§ great domain name registrars ãæ€çŽ¢ããŠãã奜ã¿ã®ãã¡ã€ã³ç»é²äºæ¥è ãéžæããŠãã ããã
- ãã¡ã€ã³åã賌å
¥ããåŸãDNS èšå®ã«ã¢ã¯ã»ã¹ã㊠DNS ãèšå®ã§ããå¿
èŠããããŸããã€ã³ã¹ããŒã«ãã Discourse ãŠã§ããµã€ãã«ã€ããŠã¯ãDNS ãä»ããŠ
Aã¬ã³ãŒã ãäœæããå¿ èŠããããŸãããã® A ã¬ã³ãŒãã¯ãã€ã³ã¹ããŒã«ãããã¡ã€ã³åãç¹å®ã® IP ã¢ãã¬ã¹ïŒé垞㯠1 段éç®ã§è³Œå ¥ãããµãŒããŒã® IP ã¢ãã¬ã¹ïŒã«æã瀺ãããã«èšå®ããŸãã
ã¡ãŒã«
ã¡ãŒã«ã·ã¹ãã ã¯ãDiscourse ã§ã®ãŠãŒã¶ãŒäœæããã»ã¹ã«ãããŠéåžžã«éèŠã§ãã ã€ã³ã¹ããŒã«åã«ã¡ãŒã« SMTP ãµãŒããŒãèšå®ããŠããªãå Žåãã€ã³ã¹ããŒã«ããã Discourse ã«ã¯ã¢ã¯ã»ã¹ã§ããããã°ã€ã³ãã§ããŸããïŒãµã€ããç Žæããç¶æ ã«ãªããŸãïŒïŒ
- ãã§ã«ç¬èªã® SMTP ã¡ãŒã«ãµãŒããŒãæã£ãŠããå Žåã¯ãæ¢åã®ã¡ãŒã«ãµãŒããŒèšå®æ å ±ããã®ãŸãŸäœ¿çšã§ããŸãã
- ã¡ãŒã«ãµãŒããŒãæã£ãŠããªãå Žåã¯ãDiscourse ãæšå¥šããã¡ãŒã«ãµãŒã㌠ãåç §ããŠãã ããã
- ã¡ãŒã«ãæ£åžžã«é ä¿¡ãããããã«ããã«ã¯ãDNS ã«æå¹ãª SPF ããã³ DKIM ã¬ã³ãŒã ã远å ããå¿ èŠããããŸããèšå®æ¹æ³ã«ã€ããŠã¯ãã¡ãŒã«ãµãŒãã¹ãããã€ããŒã®ããã¥ã¡ã³ããåç §ããŠãã ããã
å®éã®äœ¿çšçµéšã«åºã¥ããšãDiscourse ã®ã€ã³ã¹ããŒã«ã«ã¯å¿ é ãšããŠäœ¿çšå¯èœãªãã¡ã€ã³åãšã¡ãŒã«ãµãŒããŒã®æ§æãå¿ èŠã§ããäžåœåœå ã®å Žåãã¢ãªããã¯ã©ãŠãããã³ã»ã³ãã¯ã©ãŠããæäŸããäŒæ¥ã¡ãŒã«ã䜿çšã§ããŸããéåžžãAWS SES ã MailGun ãªã©ã®æµ·å€ã®ã¡ãŒã«ãµãŒããŒã䜿çšããããšããå§ãããŸããèªèšŒã«ã¯åœéã¯ã¬ãžããã«ãŒããå¿ èŠã«ãªãå ŽåããããŸãããã ãããã®ã¹ãããã¯å¿ é ã§ããããããçç¥ãããš Discourse ã®ã€ã³ã¹ããŒã«ã¯å®äºããŸããã
ã€ã³ã¹ããŒã«
æ°ããã¯ã©ãŠããµãŒããŒã®äœæ
æ°ããã¯ã©ãŠããµãŒããŒãäœæããŸããäŸïŒDigitalOcean ã§ãããä»ã®ãã©ãããã©ãŒã ãæäŸãããµãŒããŒã䜿çšããããšãå¯èœã§ãã
äžåœæ¬åå ã®ãµãŒããŒãéžæããå Žåããããã¯ãŒã¯ã®åé¡ã«ééããå¯èœæ§ãé«ãã§ãããã®ç¿»èš³çã§ã¯ããããã¯ãŒã¯åé¡ã®è§£æ±ºçã«é¢ããã»ã¯ã·ã§ã³ã远å ããŠããŸãã
- ããã©ã«ãèšå®ã§ã¯ãçŸåšã® LTS Ubuntu ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãæ£åžžã«åäœããŸããæäœéã64 ããã Linux ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãå¿ èŠã§ãããã«ãŒãã«ã¯ææ°ããŒãžã§ã³ã«æŽæ°ãããŠããå¿ èŠããããŸãã
- ããã©ã«ãèšå®ã§ã¯ã1 GB ã®ã¡ã¢ãªã§å°èŠæš¡ãª Discourse ã³ãã¥ããã£ãååã«åäœãããããšãã§ããŸãããã ããå€§èŠæš¡ãªã³ãã¥ããã£ã«ã¯ 2 GB ã®ã¡ã¢ãªãæšå¥šããŸãã
- ããã©ã«ãèšå®ã§ã¯ããã¥ãŒãšãŒã¯ã®ããŒã¿ã»ã³ã¿ãŒãåç±³ããã³ãšãŒãããã«ãšã£ãŠå°ççã«åªããéžæè¢ã§ããDiscourse ãŠãŒã¶ãŒãä»ã®å°ççãªäœçœ®ã«ããããšãå€ããã°ãããè¿ãããŒã¿ã»ã³ã¿ãŒãéžæã§ããŸãã
- DigitalOcean ã§ DropletïŒDroplet 㯠DigitalOcean ã«ããããµãŒããŒåã®å®çŸ©ïŒãäœæããããã«ããã¡ã€ã³å
discourse.example.comãå ¥åããŠãã ããããã¡ãããç¬èªã®ãã¡ã€ã³åãè³Œå ¥ããŠäœ¿çšããããšãã§ããŸããéåžžãDiscourse ã®ã€ã³ã¹ããŒã«ã«ã¯å®éã®ãã¡ã€ã³åãå¿ èŠã§ãããIP ã¢ãã¬ã¹ã§ã¯ã€ã³ã¹ããŒã«ã§ããªãããããŸããã¡ã€ã³åãè³Œå ¥ããããæ¢åã®ãã¡ã€ã³åã®ãµããã¡ã€ã³ã䜿çšããããšããå§ãããŸãã
æ°ãã Droplet ãäœæããããã»ã¹ã¯ãDigitalOcean äžã§ãµãŒããŒãäœæããããšãšåçã§ãããä»ã®ãã©ãããã©ãŒã ã§ VPS ããµãŒããŒãäœæããããšã«ãçžåœããŸããäœæãå®äºãããšãRoot ãŠãŒã¶ãŒã®ãã¹ã¯ãŒããèšèŒãããé»åã¡ãŒã«ãå±ããŸãããã ãããµãŒããŒãžã®ã¢ã¯ã»ã¹ã»ãã¥ãªãã£ã匷åããããã«ãSSH ããŒã®èšå® ãè¡ãããšããå§ãããŸãã
ã¯ã©ãŠããµãŒããŒãžã®ã¢ã¯ã»ã¹
IP ã¢ãã¬ã¹ã䜿çšã㊠SSH ã§æ¥ç¶ããäœæãããµãŒããŒã«ã¢ã¯ã»ã¹ããããWindows ãã©ãããã©ãŒã ã®å Žå㯠Putty ãã€ã³ã¹ããŒã«ããŠä»¥äžã®ã³ãã³ããå®è¡ããŠæ¥ç¶ããŸãã
ssh root@192.168.1.1
SSH ããŒãèšå®ããŠããªãå Žåã¯ãDigitalOcean ããéä¿¡ãããé»åã¡ãŒã«ã«èšèŒããããã¹ã¯ãŒãã䜿çšããŠãã°ã€ã³ããããããŒã«ã«ã® SSH ããŒã䜿çšããŠæ¥ç¶ããŸãã
Docker / Git ã®ã€ã³ã¹ããŒã«ïŒãªãã·ã§ã³ïŒ
sudo apt install docker.io
sudo apt install git
ç¬èªã® Docker ããŒãžã§ã³ã䜿çšãããå Žåã¯ãæ°èŠèšå®ãããµãŒããŒã§çŸåšã€ã³ã¹ããŒã«ã§ããŸãããµãŒããŒã«ããã©ã«ãã§ Docker ãã€ã³ã¹ããŒã«ãããŠããªãå Žåãdiscourse-setup ãèªåçã« get.docker.com ããããŠã³ããŒãããŠã€ã³ã¹ããŒã«ããŸãã
Discourse ã®ã€ã³ã¹ããŒã«
å
¬åŒ Discourse Docker ã€ã³ã¹ããŒã« ãªããžããªããã³ãŒããããŒã«ã«ã³ã³ãã¥ãŒã¿ãŒã® /var/discourse ãã£ã¬ã¯ããªã«ã¯ããŒã³ããŸãã
sudo -s
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
äžèšã®ã³ãã³ããå®è¡ããã ãã§ãDiscourse ã€ã³ã¹ããŒã«äžã« root æš©éãå¿ èŠã§ãã
Docker ã€ã¡ãŒãžã®è¿œå ïŒäžåœæ¬åã®ãµãŒããŒã®ã¿ïŒ
ãµãŒããŒãäžåœæ¬åã«ããå Žåã以äžã®æé ã§ Docker ã®ã¹ãããã§åæ¢ããå¯èœæ§ãé«ãã§ããDocker ã€ã¡ãŒãžã®è¿œå ã詊ã¿ãŠãã ããã
ãã³ã»ã³ãã¯ã©ãŠããäŸã«æãããšãã奜ã¿ã®ãšãã£ã¿ãŒã§ Linux ã® /etc/docker/daemon.json ãç·šéãã以äžã®å
容ã远å ããŠãã ãããhttps://mirror.ccs.tencentyun.com ãã¯ã©ãŠããµãŒããŒãããã€ããŒãæäŸãã Docker ã€ã¡ãŒãžã® URL ã«å€æŽããŠã¿ãŠãã ããã
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}
Docker ã€ã¡ãŒãžã远å ããåŸãsudo systemctl restart docker ãå®è¡ã㊠Docker ã¢ããªã±ãŒã·ã§ã³ã®å€æŽãåèµ·åããŸãã
Discourse èšå®ã®ç·šé
以äžã®ã³ãã³ãã§èšå®ããŒã«ãå®è¡ããŸãã
./discourse-setup
以äžã®ããã³ããã«åŸã£ãŠãã¹ãŠã®ãã©ã¡ãŒã¿ãèšå®ããŠãã ããã
Hostname for your Discourse? [discourse.example.com]:
Email address for admin account(s)? [me@example.com,you@example.com]:
SMTP server address? [smtp.example.com]:
SMTP port? [587]:
SMTP user name? [user@example.com]:
SMTP password? [pa$word]:
Let's Encrypt account email? (ENTER to skip) [me@example.com]:
äžèšã®å
¥åããŒã¿ã¯ãDiscourse ã€ã³ã¹ã¿ã³ã¹çšã® app.yml ãã¡ã€ã«ãäœæããã€ã³ã¹ããŒã«åŸã« Discourse ã€ã³ã¹ã¿ã³ã¹ãèšå®ããŸããã€ã³ã¹ããŒã«ã®èµ·åããã»ã¹ã«ã¯ãDiscourse ã®èšå®ã« 2ã8 å çšåºŠãããå ŽåããããŸããã€ã³ã¹ããŒã«äžã«ãšã©ãŒãçºçããå ŽåããŸãã¯ã€ã³ã¹ããŒã«åŸã«èšå®ã倿Žããå¿
èŠãããå Žåã¯ã./discourse-setup ã³ãã³ããå床å®è¡ããŠãã ããïŒãã®ã³ãã³ãã¯æ¢åã® app.yml ãã¡ã€ã«ãåèªã¿èŸŒã¿ããŸãïŒããããã¯ã/containers/app.yml ãã¡ã€ã«ã®å
容ãæåã§çŽæ¥ç·šéãããã®åŸ ./launcher rebuild app ãå床å®è¡ããŠãã ãããããããªããšã倿Žã¯åæ ãããŸããã
äžåœã®ãããã¯ãŒã¯ç°å¢ã®æé©å
ã¯ã©ãŠããµãŒããŒãäžåœæ¬åã«ããå Žåã./discourse-setup ãŸã㯠./launcher rebuild app ãå®è¡ããéã«ãããã¯ãŒã¯åé¡ã«ééããå¯èœæ§ãé«ãã§ããDocker 以å€ã®ã€ã¡ãŒãžãµãŒãã¹ã¯ Discourse ã«ãã£ãŠæ¢ã«çšæãããŠããŸãã®ã§ãcontainers/app.yml ã®ä»¥äžã®éšåã« 1 è¡ã远å ããã ãã§æžã¿ãŸãã
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.china.template.yml" # ãã®è¡ã远å ããŠãnpmãrubygems ãªã©ã®ããã±ãŒãžãããŒãžã£ãŒã®ãã©ãŒãèšå®
ããã§è§£æ±ºããŸãã
Discourse ã®èµ·å
åæã€ã³ã¹ããŒã«èšå®ãå®äºãããšãDiscourse ã€ã³ã¹ã¿ã³ã¹ã¯èšå®ãããã¡ã€ã³å discourse.example.com ãä»ããŠãã©ãŠã¶ããã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã
äžåœæ¬åã®ãµãŒããŒã®å Žåãã¯ã©ãŠããµãŒããŒãããã€ããŒã®æç€ºã«åŸã£ãŠ ICP ç»é²ïŒåæ¡ïŒãå®äºãããŠããæ¬¡ã®ã¹ãããã«é²ãå¿ èŠãããå ŽåããããŸãã
æ°ãã管çè ã¢ã«ãŠã³ãã®ç»é²
èµ·åèšå®ããã»ã¹ã§å ¥åããã¡ãŒã«ã¢ãã¬ã¹ã䜿çšããŠã管çè ã¢ã«ãŠã³ããç»é²ããŸãã
ïŒç®¡çè
ã¢ã«ãŠã³ãïŒAdminïŒãç»é²ã§ããªãå Žåã¯ããã¹ /var/discourse/shared/standalone/log/rails/production.log ã®ãã°ã確èªããããã¡ãŒã«åé¡ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ãã§ãã¯ãªã¹ã ãåç
§ããŠãã ãããïŒ
管çè ã¢ã«ãŠã³ãã®ç»é²ãå®äºãããšãã»ããã¢ãããŠã£ã¶ãŒããèµ·åããDiscourse ã€ã³ã¹ã¿ã³ã¹ã®èšå®æ¹æ³ã«ã€ããŠæ¡å ãããŸãã
ãã¹ãŠã®ã»ããã¢ãããŠã£ã¶ãŒããå®äºãããšãStaff topicsïŒã¹ã¿ãããããã¯ïŒãš READ ME FIRST: Admin Quick Start Guide ã衚瀺ãããŸãããã®èšå®ãŠã£ã¶ãŒãã«ã¯ã以éã®èšå®ã«é¢ããææ¡ããDiscourse ã€ã³ã¹ã¿ã³ã¹ã®ã«ã¹ã¿ãã€ãºæ¹æ³ãå«ãŸããŠããŸãã
ã€ã³ã¹ããŒã«åŸã®ã¡ã³ããã³ã¹
- ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ã»ãã¥ãªãã£èªåæŽæ°ãæå¹ã«ããããšã匷ããå§ãããŸããUbuntu ã§ã¯
dpkg-reconfigure -plow unattended-upgradesã³ãã³ãã䜿çšããŸããCentOS/RHEL ã§ã¯yum-cronããã±ãŒãžã䜿çšããŸãã - SSH ããŒã§ã¯ãªããã¹ã¯ãŒãã§ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«ãã°ã€ã³ããŠããå Žåã¯ã匷åãªãã¹ã¯ãŒãã䜿çšããŠããããšã確èªããŠãã ãããUbuntu ã§ã¯
apt-get install libpam-cracklibããã±ãŒãžã䜿çšããŸããfail2banã®äœ¿çšãæšå¥šããŸããããã¯ã3 åãã°ã€ã³ã«å€±æãã IP ã¢ãã¬ã¹ã 10 åéãã°ã€ã³çŠæ¢ã«ãããã®ã§ãã - Ubuntu:
apt-get install fail2ban - CentOS/RHEL:
sudo yum install fail2banïŒEPEL ãå¿ èŠã§ãïŒ - ããã©ã«ãã§ãã¡ã€ã¢ãŠã©ãŒã«ãã€ã³ã¹ããŒã«ãããå Žåã¯ãUbuntu ã®å Žå㯠ufw ãæå¹å ããCentOS/RHEL 7 以éã®å Žåã¯
firewalldã䜿çšããŠãã ããã
Discourse ã«æ°ããããŒãžã§ã³ã®æŽæ°ãããå Žåãã¡ãŒã«ã¢ãã¬ã¹ã«æŽæ°éç¥ãå±ããŸãããã¹ãŠã®ã»ãã¥ãªãã£åé¡ãä¿®æ£ããããããDiscourse ã€ã³ã¹ã¿ã³ã¹ãåžžã«ææ°ããŒãžã§ã³ã«æŽæ°ããŠãã ãããYou will get email reminders as new versions of Discourse are released. Please stay current to get the latest features and security fixes. Discourse ãææ°ããŒãžã§ã³ã«æŽæ°ããã«ã¯ããã©ãŠã¶ãã /admin/upgrade ã«ã¢ã¯ã»ã¹ããæŽæ°ãã¿ã³ãã¯ãªãã¯ããŠãã ããã
/var/discourse ãã£ã¬ã¯ããªå
ã® launcher ã³ãã³ãã¯ãã·ã¹ãã ã¬ãã«ã®ã¡ã³ããã³ã¹ã«äœ¿çšãããŸãã
Usage: launcher COMMAND CONFIG [--skip-prereqs] [--docker-args STRING]
Commands:
start: Start/initialize a containerïŒã³ã³ããã®èµ·å/åæåïŒ
stop: Stop a running containerïŒå®è¡äžã®ã³ã³ããã®åæ¢ïŒ
restart: Restart a containerïŒã³ã³ããã®åèµ·åïŒ
destroy: Stop and remove a containerïŒã³ã³ããã®åæ¢ãšåé€ïŒ
enter: Use nsenter to get a shell into a containerïŒnsenter ã䜿çšããŠã³ã³ããå
ã®ã·ã§ã«ã«ã¢ã¯ã»ã¹ïŒ
logs: View the Docker logs for a containerïŒã³ã³ããã® Docker ãã°ã®è¡šç€ºïŒ
bootstrap: Bootstrap a container for the config based on a templateïŒãã³ãã¬ãŒãã«åºã¥ããŠã³ã³ããã®èšå®ãåæåãèµ·åïŒ
rebuild: Rebuild a container (destroy old, bootstrap, start new)ïŒã³ã³ããã®åæ§ç¯ïŒå€ãã³ã³ãããåé€ããåæåããæ°ããã³ã³ãããèµ·åïŒ
cleanup: Remove all containers that have stopped for > 24 hoursïŒ24 æé以äžåæ¢ããŠããã³ã³ããã®åé€ïŒ
Options:
--skip-prereqs Don't check launcher prerequisitesïŒã€ã³ã¹ããŒã©ãŒã®ç°å¢ãã§ãã¯ãã¹ãããïŒ
--docker-args Extra arguments to pass when running dockerïŒã³ã³ããå®è¡æã«æž¡ã远å åŒæ°ïŒ





