LoginSignup
5
8

More than 3 years have passed since last update.

Ubuntu20.04にプリザンターをインストール(.NetCore3.1/PostgreSQL版)

Last updated at Posted at 2020-08-18

Ubuntuに.NETCore3.1版のプリザンターをインストールしようと思ったが、
公式ページにはRHEL/CentOSのインストール方法しか無かったため実際にやってみた。

結論から言うと、普通に動いた。

Pleasanter with PostgreSQLをRHEL8/CentOS8にインストールする
https://pleasanter.net/fs/publishes/1490231/edit

.NET Core 3.1をインストール

$ wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb

$ sudo apt update
$ sudo apt install -y apt-transport-https
$ sudo apt update
$ sudo apt install -y dotnet-sdk-3.1

$ sudo apt install -y libgdiplus

PostgreSQL12のインストール

$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
$ sudo apt-add-repository 'deb http://apt.postgresql.org/pub/repos/apt focal-pgdg main'

$ sudo vi /etc/apt/sources.list

deb http://apt.postgresql.org/pub/repos/apt focal-pgdg main
↓
deb [arch=amd64] http://apt.postgresql.org/pub/repos/apt focal-pgdg main

$ sudo apt update
$ sudo apt install postgresql-12 pgadmin4 postgresql-contrib

# 成功しました。以下のようにしてデータベースサーバを起動することができます:
# 
#     pg_ctlcluster 12 main start
# 
# Ver Cluster Port Status Owner    Data directory              Log file
# 12  main    5432 down   postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log

ログ出力設定

以下を設定します。

$ sudo vi /etc/postgresql/12/main/postgresql.conf

log_destination = 'stderr'
logging_collector = on
log_line_prefix = '[%t]%u %d %p[%l]'

ユーザー設定&DB作成

パスワードを設定後、PostgreSQLを起動

$ sudo passwd postgres

$ su - postgres
$ psql -U postgres

postgres=# alter role postgres with password 'パスワード';

# DB作成
postgres=# create database "Implem.Pleasanter";

全文検索用モジュール(pg_trgm)インストール

postgres=# \c "Implem.Pleasanter";
Implem.Pleasanter=# CREATE EXTENSION pg_trgm;

プリザンターの導入

Pleasanterをダウンロードして、解凍

$ unzip Pleasanter.NetCore_1.1.5.1.zip

DBの構成

pleasanter/Implem.Pleasanter/App_Data/Parameters/Rds.json を以下のように設定します。

{
       "Dbms": "PostgreSQL",
       "Provider": "Local",
       "TimeZoneInfo": "Tokyo Standard Time",
       "SaConnectionString":"Server=localhost;Port=5432;Database=postgres;UID=postgres;PWD=<設定したパスワード>",
       "OwnerConnectionString":"Server=localhost;Port=5432;Database=#ServiceName#;UID=#ServiceName#_Owner;PWD=SetAdminsPWD",
       "UserConnectionString":"Server=localhost;Port=5432;Database=#ServiceName#;UID=#ServiceName#_User;PWD=SetUsersPWD",
       "SqlCommandTimeOut": 600,
       "MinimumTime": 3,
       "DeadlockRetryCount": 4,
       "DeadlockRetryInterval": 1000
}

Implem.CodeDefinerフォルダーに移動し、CodeDefinerを実行します。

$ cd pleasanter/Implem.CodeDefiner
$ dotnet Implem.CodeDefiner.NetCore.dll _rds

以下のコマンドでPleasnterを実行し、起動確認を行います。

$ cd ../Implem.Pleasanter
$ dotnet Implem.Pleasanter.NetCore.dll

別のターミナルで "http://localhost:5000/" にアクセスし、正常なレスポンスが帰ってくることを確認します。

$ curl -v http://localhost:5000/

* About to connect() to localhost port 5000 (#0)
*   Trying ::1...
* Connected to localhost (::1) port 5000 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: localhost:5000
> Accept: */*
>
< HTTP/1.1 302 Found
< Date: Mon, 25 May 2020 15:13:08 GMT
< Server: Kestrel
< Content-Length: 0
< Location: http://localhost:5000/users/login?ReturnUrl=%2F
確認できたらCtrl+Cで終了します。

Pleasanterサービス用スクリプトの作成

$ sudo vi /etc/systemd/system/pleasanter.service

[Unit]
Description = Pleasanter
Documentation =
Wants=network.target
After=network.target

[Service]
ExecStart = /usr/bin/dotnet Implem.Pleasanter.NetCore.dll
WorkingDirectory = /home/hogehoge/pleasanter/Implem.Pleasanter
Restart = always
RestartSec = 10
KillSignal=SIGINT
SyslogIdentifier=dotnet-pleasanter
User = root
Group = root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy = multi-user.target

サービスとして登録・起動

$ sudo systemctl daemon-reload
$ sudo systemctl enable pleasanter
$ sudo systemctl start pleasanter

Nginx(Webサーバ)をインストール

$ sudo apt install nginx-extras
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
$ sudo addgroup ユーザー名 www-data

リバースプロキシの設定

/etc/nginx/conf.d/pleasanter.conf を以下の内容で作成します。

server {
    listen  80;
    server_name   192.168.0.200;
    location / {
       proxy_pass         http://localhost:5000;
       proxy_http_version 1.1;
       proxy_set_header   Upgrade $http_upgrade;
       proxy_set_header   Connection keep-alive;
       proxy_set_header   Host $host;
       proxy_cache_bypass $http_upgrade;
       proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header   X-Forwarded-Proto $scheme;
    }
}

$ sudo systemctl restart nginx

ここまでできたら、下記にアクセス。
http://192.168.0.200/

参考

Pleasanter with PostgreSQLをRHEL8/CentOS8にインストールする
https://pleasanter.net/fs/publishes/1490231/edit

Ubuntu 20.04 に .NET Core SDK 3.1 をインストールする
https://qiita.com/tabizou/items/d9af326ede9d35d03c68

Ubuntu 20.04 に Posgtgres12 をインストール後 C# + Npgsql でアクセスしてみる
https://qiita.com/tabizou/items/47f395d7ab3030dd1915

How To Install PostgreSQL on Ubuntu 20.04 [Quickstart]
https://www.digitalocean.com/community/tutorials/how-to-install-postgresql-on-ubuntu-20-04-quickstart

PostgreSQL 12 のインストール,データベース作成,テーブル定義(Ubuntu 上)
https://www.kkaneko.jp/tools/postgresinstall/postgreslinux.html

5
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
8