サーバーに docker
と nginx
がインストールされていると仮定し、サーバー IP がパブリックアクセス可能である。
イメージを取得する#
-
データベースイメージを取得する
docker pull postgres:15-alpine
-
umami
イメージを取得するdocker pull docker.umami.is/umami-software/umami:postgresql-latest
データベースサービスを起動する#
-
データベースデータを永続的に保存するためのローカルパスを作成する
mkdir postgresql-data
-
umami
コンテナがアクセスするためのdocker
ネットワークを作成するdocker network create umami_sql_network
-
データベースサービスを起動し、最初のステップで作成した完全なパスに
/root/umami/postgresql-data
を置き換えるdocker run -d --name umami_database --network umami_sql_network --network-alias umami_database -e POSTGRES_DB=umami -e POSTGRES_USER=umami -e POSTGRES_PASSWORD=umami -v /root/umami/postgresql-data:/var/lib/postgresql/data postgres:15-alpine
-
データベースコンテナのログと状態を確認する
- データベースコンテナのログを確認する:
docker logs umami_database
- 実行中の
docker
コンテナを確認する:docker ps
- データベースコンテナのログを確認する:
umami
コンテナを起動する#
-
APP_SECRET
をランダムな文字列に置き換え、nginx
のリバースプロキシが不要な場合は-p 127.0.0.1:3000:3000
を-p 3000:3000
に変更し、直接ローカルにアクセスするhttp://ローカルip:3000
docker run -d --name umami --network umami_sql_network -e DATABASE_URL=postgresql://umami:umami@umami_database:5432/umami -e DATABASE_TYPE=postgresql -e APP_SECRET=ewgyifufsrgyuyhuserfyger -p 127.0.0.1:3000:3000 docker.umami.is/umami-software/umami:postgresql-latest
-
umami
コンテナのログを確認する:docker logs umami
-
実行中の
docker
コンテナを確認する:docker ps
nginx
リバースプロキシ(オプション)#
nginx
を使用して umami
サービスをプロキシし、https証明書
を設定する。
新しい /etc/nginx/conf.d/umami.conf
設定ファイルを作成する
vim /etc/nginx/conf.d/umami.conf
以下の設定を記入し、server_name
、https証明書
のパス(ssl_certificate
、ssl_certificate_key
)は参考として、自分のドメインと証明書のパスに基づいて設定する。
server {
listen 443 ssl;
http2 on;
server_name umami.hyacm.com;
ssl_certificate /root/lobe-chat-db/hyacm.com.cert;
ssl_certificate_key /root/lobe-chat-db/hyacm.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:3000;
# proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 20000M;
}
}
nginx
サービスをリロードする
systemctl reload nginx.service
または nginx
サービスを再起動する
systemctl restart nginx.service