협업 개발 도구 커뮤니티 플랫폼 : 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
'DevOps' 카테고리의 다른 글
Docker Manual :: 도커 메뉴얼 (0) | 2018.09.13 |
---|---|
리눅스 유닉스 맥 터미널 명령어 정리 (0) | 2018.09.13 |
JAVA APM Tool PINPOINT : 자바 모니터링툴 핀포인트 (0) | 2016.12.15 |
형상관리를 위한 협업 개발 도구 GitLab (0) | 2016.09.20 |