개요
이 문서에서는 Amazon AWS의 가상서버 EC2를 활용하여 Redmine 단독 서버를 구축하는 방법에 대해 설명합니다.
구축 환경
AWS EC2 instance, Docker, docker-compose
목차
1. AWS EC2 인스턴스 생성
2. Redmine (on docker) 설치
3. Redmine 메일 발송 설정
1. AWS EC2 인스턴스 생성
이 단원에서는 스크린샷 위주로 간단하게 설명하므로 AWS EC2에 대한 자세한 내용은 공식 문서를 참고하시기 바랍니다.
먼저 Amazon AWS에 가입된 계정으로 로그인합니다. (AWS 가입에는 결제 가능한 카드가 필요합니다.)
[퍼블릭 IP 자동 할당]을 "활성화"로 해주셔야 외부에서 접근 가능한 공인 IP를 할당받을 수 있습니다.
CPU 버스트에 대한 크레딧 설정은 추후에도 변경할 수 있으므로 여기서는 해제하겠습니다.
인스턴스 종료 시 데이터를 보존하려면 "종료 시 삭제"를 체크 해제합니다.
다음으로 진행하며 [단계 5: 태그 추가]는 건너뛰고 그 다음으로 이동합니다.
제가 자주 하는 실수인데 default 정책을 적용하여 실행할 경우 외부에서 ssh 등의 접속이 불가합니다.
새로운 보안그룹을 생성하여 ssh 포트를 열거나 전체 포트를 열어주시기 바랍니다.
새로 생성하여도 무방하며 기존에 있는 경우에는 그대로 사용하실 수 있습니다.
SSH 접속 시 key pair 설정에서 생성하거나 다운로드 한 pem 파일이 필요합니다.
접속에 성공하면 위와 같은 환영 메시지가 표시됩니다.
2. Redmine (on docker) 설치
레드마인 설치는 공식 사이트(https://www.redmine.org)에서 소스를 받아 Ruby, Rails 및 웹서버를 구축하여 설치하여야 합니다.
이 문서에서는 Docker를 활용하여 Redmine Image를 사용하는 방식으로 설치하도록 하겠습니다.
1. Amazon Linux에 Docker를 설치합니다. (자세한 내용은 공식 메뉴얼를 참고)
sudo yum update -y
sudo amazon-linux-extras install docker
sudo systemctl enable docker --now
2. docker를 편리하게 사용할 수 있는 툴인 docker-compose를 설치합니다.
sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
3. 기본 위치에 redmine 디렉토리를 생성하고 docker-compose.yml 파일을 생성합니다.
cd ~
mkdir redmine
cd redmine
cat > docker-compose.yml # 입력 완료 후 Ctrl+D로 저장
version: '3.1'
services:
redmine:
image: redmine
restart: always
ports:
- 80:3000
volumes:
- ./docker/redmine:/usr/src/redmine/files
- ./docker/redmine_conf/configuration.yml:/usr/src/redmine/config/configuration.yml
- ./docker/share:/share
- /home/git:/git
- /etc/localtime:/etc/localtime
environment:
REDMINE_DB_MYSQL: db
REDMINE_DB_PASSWORD: dbpassword1234
REDMINE_DB_ENCODING: utf8
db:
image: mysql:5.7
restart: always
volumes:
- ./docker/db:/var/lib/mysql
- ./docker/db_conf:/etc/mysql/conf.d
- ./docker/share:/share
- /etc/localtime:/etc/localtime
environment:
MYSQL_ROOT_PASSWORD: dbpassword1234
MYSQL_DATABASE: redmine
db password는 외부로 오픈되지는 않지만 보안상의 이유로 변경하시는걸 추천합니다.
redmine은 혼자 사용한다면 sqlite로도 가능하지만 여러명에서 사용한다면 mysql같은 DBMS를 사용하셔야 합니다.
4. root 권한으로 redmine 디렉토리로 이동 후 docker를 실행합니다.
sudo su -
cd /home/ec2-user/redmine
docker-compose up -d
5. 웹브라우저를 열고 서버의 IP 혹은 도메인 주소 접속하여 레드마인이 열리는지 확인합니다.
기본으로 설정된 아이디와 비밀번호는 admin / admin 으로 로그인 하실 수 있습니다.
3. Redmine 메일 발송 설정
신규 issue나 기존 issue의 변경사항을 메일로 받는 건 issue tracker를 쓰는 주요 이유중 하나입니다.
기본 설치만으로는 메일이 발송되지 않으며 이 문서에서는 Gmail의 SMTP 서버를 이용하여 설정하도록 하겠습니다.
1. redmine 도커의 bash 쉘을 실행하여, 설정 예제파일을 공유폴더로 복사 합니다.
docker-compose exec redmine /bin/bash
cp config/configuration.yml.example /share/configuration.yml
2. 공유폴더의 설정파일을 실제 위치로 심볼릭 링크를 생성합니다.
ln -s /share/configuration.yml config/configuration.yml
3. docker 쉘을 종료하고 편집기를 이용해 configuration.yml 내용을 수정합니다.
exit
vi docker/share/configuration.yml
파일 내용 중 email_delivery: 다음 줄에 아래와 같이 추가합니다.
delivery_method: :smtp
smtp_settings:
address: "smtp.gmail.com"
port: 587
enable_starttls_auto: true
domain: "smtp.gmail.com"
authentication: :plain
user_name: "[구글 이메일]"
password: "[구글 비밀번호]"
4. docker를 재시작합니다.
docker-compose restart
5. 레드마인에서 "사용자에게 계정정보 보내기" 등의 기능으로 메일을 발송하고 수신되는지 확인합니다.
이메일 주소 입력 후 "사용자에게 계정정보를 보내기" 체크한 뒤에 저장해도 메일이 수신되지 않는다면
다음 명령으로 redmine 로그를 확인할 수 있습니다.
docker-compose logs redmine
구글 계정을 이메일 발송으로 사용할 경우 낮은 보안수준 설정 등이 필요합니다.
인증 오류가 발생한다면 아래 내용을 참고하여 진행합니다.
1) Login to your gmail account.
2) Go to https://www.google.com/settings/security/lesssecureapps and Turn On this feature.
3) Go to https://accounts.google.com/DisplayUnlockCaptcha and click Continue.
(by https://serverfault.com/questions/635139/how-to-fix-send-mail-authorization-failed-534-5-7-14)
AWS EC2 instance 위에 Redmine을 설치하고 메일 발송까지 성공적으로 완료하였습니다.
플러그인을 이용해 일감 템플릿이나 스킨, MS Teams Webhook 등을 이용하고 설정하는 방법 등은 추후 포스팅을 통해 다루도록 하겠습니다.
Redmine 사용법과 설치방법 등 같은 주제 내용만 연속으로 올렸는데요,
다음에는 완전 새로운 주제로 포스팅 하도록 하겠습니다. 감사합니다!
'기술' 카테고리의 다른 글
[React] AWS Amplify Hosting을 이용한 손쉬운 배포 (0) | 2022.01.21 |
---|---|
Codeigniter 4 버전 마이그레이션 기록 (0) | 2021.08.30 |
[iOS]하이브리드 앱을 위한 WKWebView 설정 방법 (0) | 2021.05.21 |
레드마인(Redmine) 기초 사용법 (2) | 2021.04.04 |