Help us understand the problem. What is going on with this article?

Macにプリザンターをインストールしてみた

はじめに

アドベントカレンダーのスタートより6日目にして2つ目の記事です。しかも、2つとも、どちらも中の人です。
閑古鳥も絶句するレベルの静けさですが、頑張ります。

※皆さん、お忙しいとは思いますが、よろしければ是非ご参加ください。まだまだ空いています。
Pleasanter Advent Calendar 2019

改めまして、こんにちは。
プリザンターを開発しております株式会社インプリムで、製品パンフレットをクリアファイルに入れるお仕事をしております、ゆるふわJKです。
インプリムに入社して、先月11月1日で1年が経ちました。あっという間、な1年でした。
そんな1年を振り返ると、オフィスの引っ越しや、Pleasanter UserMeetupの開催、世界発信コンペンティション ベンチャー部門 特別賞の授賞など、プリザンターが、ひいてはインプリムが、少しずつでも成長できていることを実感できるイベントもありました。
そんな中で個人的に嬉しかったのはプリザンターの.NET Core版のリリースです。
私はMacで仕事をしているので、.NET Core版のリリースにより、念願だったプリザンターのローカル環境での動作が可能となったのです!

そんな訳で今回はMacのローカル環境にプリザンターをインストールしてみるゆるふわブログとなります。※Dockerを使用するお手軽版です。

実行環境

MacBook Pro 2017
macOS Mojave (10.14.6)

Pleasanter .NET Core版 1.0.0.0
.NET Core SDK 3.0.101
Docker 19.03.5
nginx 1.17.6
SQL Server 2017

.NET Core SDKをインストールする

https://dotnet.microsoft.com/download

ダウンロードした dotnet-sdk-3.0.101-osx-x64.pkg を開きます。
無心でボタンをクリックしていれば終わります。途中でパスワードを求められますので管理者権限のあるパスワードを入力してください。
あっさり終わりすぎて心配な方はターミナルで以下を実行してみましょう。

dotnet --version

3.0.101 というバージョンが返ってくれば問題なくインストールされています(バージョンは2019/12/6時点の最新)
スクリーンショット 2019-12-03 18.13.24.png

Dockerをインストールする

公式サイトでDockerアカウントを作成してログインし、DockerHubからダウンロードしてインストールします。
https://hub.docker.com/editions/community/docker-ce-desktop-mac

ダウンロードしたDocker.dmgをマウントして、インストール。
Dockerのインストール。クジラかわいい
Docker Desktop needs privileged access.
というダイアログが出ても気にせず、パスワードを入力しましょう(DockerアカウントではなくMacのパスワードです)。
インストールが終わると、画面上部のメニューバーにDockerのアイコンが表示されます。
背中に載せたコンテナが積み終わったら起動終了です。
68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3533373339302f38376666386338382d333963362d623430322d663238632d6431373339646334323465652e706e67.png

試しに
docker version
と入力してみましょう。

MBP:~ sesese$ docker version
Client: Docker Engine - Community
 Version:           19.03.5
 API version:       1.40
 Go version:        go1.12.12
 Git commit:        633a0ea
 Built:             Wed Nov 13 07:22:34 2019
 OS/Arch:           darwin/amd64
 Experimental:      false

こんな感じで返ってくれば正常にインストールされています。安心してください。
クジラかわいい。

nginxをインストールする

nginxのインストールもあっという間です。
ダウンロードからインストールまでチョロです。

以下を入力してください。

docker run -d -p 80:80 --name WebServer nginx

MBP:~ sesese$ docker run -d -p 80:80 --name WebServer nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
000eee12ec04: Pull complete 
eb22865337de: Pull complete 
bee5d581ef8b: Pull complete 
Digest: sha256:50cf965a6e08ec5784009d0fccb380fc479826b6e0e65684d9879170a9df8566
Status: Downloaded newer image for nginx:latest
7da47c644ea29c5c8044d01452ec782bde5d67998fcf413acc7f6451a1044f8a

コマンドの --name オプションの WebServer はコンテナイメージの名称設定です。任意に設定してください。
Webでも、IISでも、masao1000でも、なんでも良いです。

これですでにnginxのインストール、起動が完了しているのでWebブラウザから localhost にアクセスしてみましょう。

localhostかわいい

SQL Serverをインストールする

以下のコマンドを叩けばあっという間にインストールできます。クジラかわいい。

MBP:~ sesese$ sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=*********" \
>    -p 1433:1433 --name SQLServer \
>    -d mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04
587885170b545809bc6cdeb2f7aaf03720283687a98b337e8bafc90191c5924a

1行目の ********* はパスワードです。
小文字大文字数字記号など強力なパスワードである必要があります。
貧弱なパスワードだと先には進めません。考え直してください。
M@sao1000 がおすすめです。

コマンド2行目の --name オプションの SQLServer はコンテナイメージの名称です。任意に設定してください。
SQLでも、PostgreSQLでも、masao1000でも、なんでも良いです。
nginxのコンテナイメージ名でmasao1000を使っている場合は、masao10000にしましょう。

上記のようなメッセージが表示されたらインストール完了です。
とりあえず、正常に完了したか確認してみましょう。

MBP:~ sesese$ sudo docker exec -it SQLServer "bash"
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "*********"

********* はsaのパスワードです。

無事にログインが成功するとコマンドプロンプトが 1> と表示されます。
Exitで抜けましょう。

プリザンターをインストールする

https://pleasanter.org

まずはプリザンターの.NET Core版をダウンロードしましょう。
ありがとうございます。
ダウンロードしたファイルを解凍し、扱いやすい場所にコピーしましょう。
とりあえず、パスは
/Users/sesese/Pleasanter
とします。

SQL Serverと接続するための設定を行います。
/Users/sesese/Pleasanter/Pleasanter.NetCore/Implem.Pleasanter\App_Data\Parameters\Rds.json を開き、

"SaConnectionString": "Server=(local);Database=master;UID=sa;PWD=*********;Connection Timeout=30;",

********* をsaのパスワードに書き換えてください。

まずはSQL Serverにプリザンター用のデータベースを作成します。
/Users/sesese/Pleasanter/Pleasanter.NetCore/ に移動して以下を実行。

MBP:~ sesese$ cd /Users/seiya/Pleasanter/Pleasanter.NetCore/Implem.CodeDefiner
MBP:Implem.CodeDefiner sesese$ dotnet Implem.CodeDefiner.NetCore.dll _rds

以下のように表示されれば成功です。

<SUCCESS> Starter.ConfigureDatabase: Database configuration is complete.
<SUCCESS> Starter.Main: All of the processing has been completed.

続いては、プリザンターの起動です!

MBP:Pleasanter.NetCore sesese$ cd /Users/sesese/Pleasanter/Pleasanter.NetCore/Implem.Pleasanter 
MBP:Implem.Pleasanter sesese$ dotnet Implem.Pleasanter.NetCore.dll

以下のように表示されたらプリザンターのインストール・起動は成功です。

Hosting environment: Production
Content root path: /Users/sesese/Pleasanter/Pleasanter.NetCore/Implem.Pleasanter
Now listening on: http://localhost:5000
Now listening on: https://localhost:5001
Application started. Press Ctrl+C to shut down.

記載されているアドレスで localhost にアクセスしてみましょう!
wwのコピー.png

おめでとうございます! これであなたのMacにプリザンターがインストールできました!
ローカル環境で弄り倒してプリザンターの可能性を存分に感じて頂ければ幸いです。

twitter_header.jpg

私の場合は、常時プリザンターを起動しているわけではないので、使う都度以下のスクリプトで起動することにしています。

docker start SQLServer
docker start WebServer
cd /Users/sesese/Pleasanter/Pleasanter.NetCore/Implem.Pleasanter
dotnet Implem.Pleasanter.NetCore.dll

メール送信の設定や、リマインダーの設定などもありますが、ご要望があればいつか別の機会に。

おまけ:Azure Data Studioをインストールする

ttのコピー.png

Windowsで言うSQL Server Management Studio(SSMS)みたいなものです。
あると便利です。

おわりに。

というわけで、無事にインストールできましたでしょうか?
かなりざっくりとした内容ではありますが、お役に立てれば幸いです。
もしご不明な点などございましたら、Twitterでつぶやいたりすると弊社Twitter担当のゆるふわJKが捕捉するかもしれません。

プリザンターは、まだまだ認知度が高いとは言えないプロダクトですが、もっともっと魅力的なプロダクトに成長できるように、そして一人でも多くの方に使っていただけるように、誰もがプリザンターを知っている、そんな未来が来ることを信じてこれからも邁進して参ります。
今、この記事を読んでくれているあなたに先見の明があることを証明するためにも。

長文にお付き合いいただきありがとうございました。良い週末を。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away