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