Phabricator를 회사에도 적용하기로 하고, 설치를 했다.
그 설치 과정을 정리해 본다.
bitnami phabricator를 택했으며, 단 DB만은 mariadb가 아닌 mysql로 했다. 나만의 문제일지는 모르겠지만, mariadb로 db migration했을 google 검색으로 잘 안나오는 문제들이 발생하여 결국 mariadb 사용은 포기했다.
서버야 언제든지 갈아탈 수 있도록 docker 환경으로 구성하기로 하고, cloud 서버는 google cloud, 그리고 docker-compose 이다.
초기 docker-compose.yml은 아래와 같다.
sungyong@phabricator:/opt/phabricator$ cat docker-compose.yml
version: '3'
services:
mysql:
restart: always
image: 'mysql:5.7'
command: --default-authentication-plugin=mysql_native_password
environment:
- ALLOW_EMPTY_PASSWORD=yes
- MYSQL_ROOT_HOST=%
- MYSQL_ROOT_PASSWORD=root_password
ports:
- '33306:3306'
volumes:
- ./mysql_data:/var/lib/mysql
phabricator:
restart: always
image: 'bitnami/phabricator:2019'
depends_on:
- mysql
ports:
- '80:80'
- '443:443'
- '2222:2222'
environment:
- PHABRICATOR_HOST=phabricator.helele.com
- PHABRICATOR_EMAIL=helele@gmail.com
- PHABRICATOR_USERNAME=sungyong
- PHABRICATOR_PASSWORD=root_password
- PHABRICATOR_SSH_PORT_NUMBER=2222
- PHABRICATOR_ENABLE_GIT_SSH_REPOSITORY=yes
- MARIADB_HOST=mysql
- MARIADB_USER=root
- MARIADB_PASSWORD=root_password
volumes:
- ./phabricator_data:/bitnami/phabricator
위에서 포트 2222은 ssh-git을 쓰기 위함이다. 기본적으로 22번 포트는 도커 호스트가 사용하므로 2222를 phabricator container가 ssh git으로 설정했다.
이제 docker-compose 실행하면서 로그까지 같이 확인한다.
$docker-compose up -d;docker-compose logs -f
아래와 같이 쭉 기동된다.
이제 phabricator 설치는 되었고, 설정을 시작하면 된다.
설치한 서버로 접속한다. https://1.2.3.4 이렇게 접속하면 된다. http로도 접속은 되나, 인증관련된 모듈들이 다 https가 기본이라 http 사용은 포기하는편이 좋다.
아직 인증서를 설치하지도 발급받지도 않았으므로 경고페이지가 뜬다. 나중에 인증서 설치할 것이므로 일단 "고급"에서 무시하고 진행한다.
위와 같은 화면이 뜨면, 설치는 잘 된 것이다. docker-compose.yml에서 환경변수로 잡은 id, password로 로그인하여, 기본 설정을 한다.
이제 메일 설정을 할 때다. 메일 설정 없이는 아직 사용자 추가도 할 수 없다. 비번 초기화가 메일을 통해서 발송되기 때문이다.
먼저 폴더 권한 설정부터 phabricator로 바꿔야 한다. docker-compose에서 volume mount를 했기 때문에 phabricator_data 폴더 권한이 docker 실행한 user로 되어 있다.
$docker-compose exec phabricator bashroot@7110514197bd:/opt/bitnami/phabricator# chown -R phabricator:phabricator /bitnami/phabricator
메일은 Mailgun으로 했다. local 서버의 smtp는 거의 스팸으로 분류될 테고, 개인 gmail계정도 이런 메일 발송으로 막힐 가능성이 많다. Mailgun이 한달 3만건까지 무료이므로, 일반 소규모 회사에서는 초과하기 어려울테니..
Mailgun 설정하기 위해서는 도메인 소유자임을 확인하는 과정을 DNS record등록하는 것으로 하므로, 미리 네임서버 설정 준비는 하고 있어야 한다.
phabricator container 내 command line을 통해 mailgun 설정한다.
root@7110514197bd:/opt/bitnami/phabricator# cat > /tmp/mailers.json
[
{
"key": "mailgun",
"type": "mailgun",
"options": {
"api-key": "your mailgun api key",
"domain": "mail.helele.com"
}
}
]
root@7110514197bd:/opt/bitnami/phabricator# bin/config set cluster.mailers --stdin < /tmp/mailers.json
Reading value from stdin...
DONE Wrote configuration key "cluster.mailers" to local storage (in file "conf/local/local.json").
메일 설정을 마치고, 이제 Google Auth 설정을 할 차례.
Google Auth 설정은 이것도 제법 과정이 복잡해서 다음에..