> Hello World !!!

     

@syaku

협업 개발 도구 커뮤니티 플랫폼 : Discourse 설치 Install

협업 개발 도구 커뮤니티 플랫폼 : Discourse 설치 Install

지식관리와 토론에 특화된 커뮤니티 플랫폼이다. 일반적인 게시판으로도 사용할 수 있으며 사용자를 관리하고 카테고리마다 권한을 부여할 수 있어 게시물을 보호할 수 있다.

배포는 docker를 이용하여 배포를 한다. 그래서 docker 최신버전을 사용하기 위해서는 CentOS 7.x 운영체제가 있어야 한다. 그러나 6.x 버전에도 설치가 가능하나 추후 생기는 문제점에 대한 해결이 어려울 수 있으니 7.x를 사용하는 것을 권장한다.

사이트 정보

사이트 : http://www.discourse.org
Github : https://github.com/discourse/discourse
설치 : https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md

설치

Discourse 는 사용자를 배려하기 위해 최소한의 설치방법을 제공하고자 도커를 사용했다. 만약 도커를 사용하지 않는 다면 레일즈, 루비, 레디스, 파이선등 다양한 플랫폼을 직접 설치해야하는 어려움이 있다.

Docker 설치

도커를 설치하기 위해서는 CentOS 7.x 운영체제가 필수이다. 그래서 설치 메뉴얼에도 7.x 기반으로 설명되어 있다. CentOS 6.x 설치방법과 다르니 주의하도록 한다.

[참고] https://docs.docker.com/engine/installation/linux/centos/

< / > CentOS 7 - docker 설치

$ sudo yum update

$ sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF

$ sudo yum install docker-engine

// 도커 서비스 시작
$ sudo systemctl enable docker.service
$ sudo systemctl start docker.service
$ sudo systemctl status docker.service

< / > CentOS 6 - docker 설치

$ sudo rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

$ sudo yum update
$ sudo yum install docker-io
$ sudo chkconfig docker on
$ service docker start

Discourse 설치

$ sudo mkdir /var/discourse

$ sudo git clone https://github.com/discourse/discourse_docker.git /var/discourse
$ cd /var/discourse
$ sudo ./discourse-setup

Hostname for your Discourse? [discourse.example.com]: 도메인
Email address for admin account? [me@example.com,you@example.com]: 이메일
SMTP server address? [smtp.example.com]: smtp.gmail.com
SMTP port? [587]: 587
SMTP user name? [postmaster@discourse.example.com]: 계정@gmail.com
SMTP password? []: 암호
Let's Encrypt account email? (ENTER to skip) [me@example.com]:

도메인이 없는 경우 아이피를 입력하고 이메일은 꼭 정확하게 작성해야 관리자로 인증받을 수 있다.

구동 준비를 위한 작업이라 2~8분정도 시간이 걸린다. 만약 오류가 발생할 경우 리빌드로 다시 시작할 수 있다.

$ sudo /var/discourse/luncher rebuild app

// centos 6 인 경우
$ sudo /var/discourse/luncher rebuild app  --skip-prereqs

< / > 설정

$ sudo vi /var/discourse/containers/app.yml

// 포트를 변경한다
// 외부접속포트:내부포트
// 8080:80 -> http://localhost:8080
// 443:443 -> https://localhost
expose:
  - "80:80"   # http
#  - "443:443" # https

DISCOURSE_DEVELOPER_EMAILS: '관리자 메일주소'

// 도메인이나 아이피로 등록한다. 실제 아이피나 도메인이 있는 경우 localhost 사용하지 말고  실제 아이피나 도메인을 작성한다. 관지자 메일주소로 메일이 전달되면 접속 경로가 localhost 로 되기 때문이다.
// DISCOURSE_HOSTNAME: 192.168.1.100
DISCOURSE_HOSTNAME: localhost

// 회원 등록 및 비밀번호 변경시 필요함.
// gmail smtp 설정
DISCOURSE_SMTP_ADDRESS: smtp.google.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: 계정@gmail.com
DISCOURSE_SMTP_PASSWORD: "암호"

설정정보를 변경하고 꼭 아래와 같이 반영해야 한다.

$ sudo /var/discourse/luncher rebuild app

// centos 6 인 경우
$ sudo /var/discourse/luncher rebuild app  --skip-prereqs

구동이 완료되면 웹페이지에 접속한다.

http://localhost 

접속 후 상단에 Sign Up 을 눌러 설정된 관리자 메일주소로 회원가입을 한다. 그 후 관리자 메일주소에 발송된 메일을 확인하고 접속하면 된다.

로그를 확인하기 위해 아래와 같이 하면 된다.

$ sudo tail -f /var/discourse/shared/standalone/log/rails/production.log

서비스 시작과 종료

$ sudo /var/discourse/luncher start app
$ sudo /var/discourse/luncher stop app

// centos 6 인 경우
$ sudo /var/discourse/luncher start app  --skip-prereqs
$ sudo /var/discourse/luncher stop app  --skip-prereqs

서비스 한글로 변경하기

오른쪽 상단 메뉴 > Admin > Settings > Basic Setup




Discourse 업데이트

[참고] https://meta.discourse.org/t/how-do-you-update-discourse/10962/2

https://사이트/admin/upgrade 접근하여 웹에서 업데이트를 진행하면 됩니다.




Discourse 플러그인 설치

Slack 메신저와 연동하기 위한 플러그인을 설치한다. 다른 플러그인도 설치 방법은 동일하다.

[참고] https://github.com/discourse/discourse-slack-official/blob/master/README.md

설정파일 app.yml 를 열어서 아래와 같이 Git 경로를 추가한다.

hooks: <-- 이 설정을 찾는다.
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - mkdir -p plugins
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-slack-official.git <-- 이부분에 플러그인을 추가한다. 

Discourse 서버는 중지시킨다. (서버 중지 설명은 위에서 참고한다.)

$ cd /var/discourse
$ git pull

// 다시 빌드한다.

$ sudo /var/discourse/luncher rebuild app

// centos 6 인 경우
$ sudo /var/discourse/luncher rebuild app  --skip-prereqs

추가

$ ./discourse-setup 

Port 443 appears to already be in use.

혹은

Port 80 appears to already be in use.

이미 사용중인 포트라서 발생하는 오류이다. discourse-setup 열어서 해당 포트를 변경한다.


백업 복구할때 설정에서 restore 즉 복구를 활성화 해야 한다.

https://meta.discourse.org/t/cannot-restore-from-backup/47398


복구 후 이미지 경로의 도메인이 변경된 경우 아래와 같이 수정할 수 있다.

https://meta.discourse.org/t/broken-picture-after-changing-hostname/47722

$ ./launcher enter app

$ discourse remap 이전도메인 \ 새로운도메인

$ YES

아래 명령어를 실행하면 원래대로 돌아가더라.

$ rake posts:rebake