banner
acai

acai

对世界与新技术充满好奇
github
email
bilibili
zhihu

Dockerを使用してumamiを構築するためにdocker-composeを使用しない

サーバーに dockernginx がインストールされていると仮定し、サーバー IP がパブリックアクセス可能である。

イメージを取得する#

  1. データベースイメージを取得する

    docker pull postgres:15-alpine
    
  2. umami イメージを取得する

    docker pull docker.umami.is/umami-software/umami:postgresql-latest
    

データベースサービスを起動する#

  1. データベースデータを永続的に保存するためのローカルパスを作成する

    mkdir postgresql-data
    
  2. umami コンテナがアクセスするための docker ネットワークを作成する

    docker network create umami_sql_network
    
  3. データベースサービスを起動し、最初のステップで作成した完全なパスに /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
    
  4. データベースコンテナのログと状態を確認する

    • データベースコンテナのログを確認する: 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_namehttps証明書 のパス(ssl_certificatessl_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
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。