OpenProject とは
プロジェクト管理ツールは何をお使いですか?
私はJIRAやBacklogを業務で利用することが多いですが、オープンソースで特に制約なく利用できるプロジェクト管理ツールを探した時に OpenProject を見つけました。
どうやら一通りの機能は備わってますし、Dockerでの利用方法も こちら にあったので、これを 無料で作成したOracle Cloud で利用できるようにしてみました。
Docker インストール
まずは Dockerのインストールですね。
SSH接続した状態で、すべてを最新の状態にします。
Oracle Linux は RedHat系 だそうなので、 yum
を利用します。
sudo yum update -y
そしてDockerをインストールです。
yum-config-manager --enable ol7_addons
yum install docker-engine
systemctl start docker
systemctl enable docker
これだけでも Docker はインストールできるのですが、利用するたびに sudo
をつけることがないように rootユーザー以外がDockerコマンドを利用できるようにしたいと思います。
groupadd docker
service docker restart
usermod -a -G docker opc
これで一応利用できることを確認します。
docker run hello-world
docker-compose インストール
インストール手順は こちら を参考にします。
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
権限
sudo chmod +x /usr/local/bin/docker-compose
以下コマンドでバージョンが表示されれば無事インストールされています。
docker-compose --version
docker-compose up
以下の docker-compose.yml をコマンド docker-compose up -d
で利用できるようになりました。(コピペでご利用の際は[]の箇所を適宜書き換えてください)
今回、サーバーエンジンとして nginx
、SSL認証用に Let's Encrypt
も同時に利用したいと思います。
version: '3'
services:
nginx:
image: jwilder/nginx-proxy
container_name: nginx-proxy
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- html:/usr/share/nginx/html
- dhparam:/etc/nginx/dhparam
- vhost:/etc/nginx/vhost.d
- certs:/etc/nginx/certs:ro
- /var/run/docker.sock:/tmp/docker.sock:ro
labels:
- "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy"
networks:
- app-net
letsencrypt:
image: jrcs/letsencrypt-nginx-proxy-companion
container_name: nginx-proxy-lets-encrypt
restart: always
depends_on:
- "nginx"
volumes:
- certs:/etc/nginx/certs:rw
- vhost:/etc/nginx/vhost.d
- html:/usr/share/nginx/html
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- app-net
web:
image: openproject/community:latest
depends_on:
- postgres
- memcached
volumes:
- pg-data:/var/lib/postgresql/data
- ./data:/var/db/openproject
environment:
VIRTUAL_HOST: [ホスト名]
DATABASE_URL: "postgres://opuser:oppassword@postgres:5432/openproject?pool=10&encoding=unicode&timeout=5000&reconnect=true"
SECRET_KEY_BASE: openproject_secret_key
CACHE_MEMCACHE_SERVER: memcached
CACHE_NAMESPACE: openproject
LETSENCRYPT_HOST: [ホスト名]
LETSENCRYPT_EMAIL: [メールアドレス]
EMAIL_DELIVERY_METHOD: smtp
SMTP_ADDRESS: [SMTPサーバーアドレス]
SMTP_PORT: 465
SMTP_DOMAIN: [SMTPサーバードメイン]
SMTP_AUTHENTICATION: login
SMTP_USER_NAME: [SMTPユーザー名]
SMTP_PASSWORD: [SMTPパスワード]
networks:
- app-net
postgres:
image: postgres:9.6-alpine
volumes:
- pg-data:/var/lib/postgresql/data
environment:
POSTGRES_DB: openproject
POSTGRES_USER: opuser
POSTGRES_PASSWORD: oppassword
networks:
- app-net
memcached:
image: memcached:1.5.7-alpine
networks:
- app-net
volumes:
pg-data:
certs:
html:
vhost:
dhparam:
networks:
app-net:
driver: bridge
まとめ
結論からすると Docker と docker-compose を利用して、 OpenProject を手軽利用できるようになりました。
利用してみての感想としては、流石に Always Free で利用できるインスタンスではやや重い・・・。
しかしながら、UIはシンプルですし実運用する価値は高いかなと思います。