ユーザ用ツール

サイト用ツール


50_dialy:2022:10:01

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
50_dialy:2022:10:01 [2022/10/01 09:31] – 作成 matsui50_dialy:2022:10:01 [2023/10/02 09:20] (現在) matsui
行 6: 行 6:
  
 nginx (proxy) + nginx (web) + Nextcloud (php-fpm) + mariaDB + redis の全部入り nginx (proxy) + nginx (web) + Nextcloud (php-fpm) + mariaDB + redis の全部入り
 +
 +
 +===== git で持ってくる =====
 +
 +<code>
 +git clone https://github.com/nextcloud/docker.git
 +rsync -av docker/.examples/docker-compose/with-nginx-proxy/mariadb/fpm/ /app/
 +cd /app
 +</code>
 +
 +===== db.env =====
 +
 +Nextcloudのdb部分と同じパスワードを設定する。
 +<code>
 +MYSQL_PASSWORD=[PASSWORD]
 +MYSQL_DATABASE=nextcloud
 +MYSQL_USER=nextcloud
 +
 +</code>
 +
 +===== docker-compose.yml =====
 +
 +<code>
 +root@nextcloud:/app# cat docker-compose.yml 
 +version: '3'
 +
 +services:
 +  db:
 +    image: mariadb:10.5
 +    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
 +    restart: always
 +    volumes:
 +      - ./db:/var/lib/mysql
 +    environment:
 +      - MYSQL_ROOT_PASSWORD=[PASSWORD]
 +      - MARIADB_AUTO_UPGRADE=1
 +      - MARIADB_DISABLE_UPGRADE_BACKUP=1
 +    env_file:
 +      - db.env
 +
 +  redis:
 +    image: redis:alpine
 +    restart: always
 +
 +  app:
 +    image: nextcloud:fpm-alpine
 +    restart: always
 +    volumes:
 +      - ./nextcloud:/var/www/html
 +    environment:
 +      - MYSQL_HOST=db
 +      - REDIS_HOST=redis
 +      - PHP_MEMORY_LIMIT=1G
 +      - PHP_UPLOAD_LIMIT=5G
 +      - OVERWRITEPROTOCOL=https
 +    env_file:
 +      - db.env
 +    depends_on:
 +      - db
 +      - redis
 +
 +  web:
 +    build: ./web
 +    restart: always
 +    volumes:
 +      - ./nextcloud:/var/www/html:ro
 +    environment:
 +      - VIRTUAL_HOST=nextcloud.hogehoge.com
 +      - LETSENCRYPT_HOST=nextcloud.hogehoge.com
 +      - LETSENCRYPT_EMAIL=matsui@nextcloud.hogehoge.com
 +    depends_on:
 +      - app
 +    networks:
 +      - proxy-tier
 +      - default
 +
 +  cron:
 +    image: nextcloud:fpm-alpine
 +    restart: always
 +    volumes:
 +      - ./nextcloud:/var/www/html
 +    entrypoint: /cron.sh
 +    depends_on:
 +      - db
 +      - redis
 +
 +  proxy:
 +    build: ./proxy
 +    restart: always
 +    ports:
 +      - 80:80
 +      - 443:443
 +    labels:
 +      com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
 +    volumes:
 +      - certs:/etc/nginx/certs:ro
 +      - vhost.d:/etc/nginx/vhost.d
 +      - html:/usr/share/nginx/html
 +      - /var/run/docker.sock:/tmp/docker.sock:ro
 +    networks:
 +      - proxy-tier
 +
 +  letsencrypt-companion:
 +    image: nginxproxy/acme-companion
 +    restart: always
 +    volumes:
 +      - certs:/etc/nginx/certs
 +      - acme:/etc/acme.sh
 +      - vhost.d:/etc/nginx/vhost.d
 +      - html:/usr/share/nginx/html
 +      - /var/run/docker.sock:/var/run/docker.sock:ro
 +    networks:
 +      - proxy-tier
 +    depends_on:
 +      - proxy
 +
 +# self signed
 +#  omgwtfssl:
 +#    image: paulczar/omgwtfssl
 +#    restart: "no"
 +#    volumes:
 +#      - certs:/certs
 +#    environment:
 +#      - SSL_SUBJECT=nc.kumolabo.com
 +#      - CA_SUBJECT=shinya.matsui@gmogshd.com
 +#      - SSL_KEY=/certs/servhostname.local.key
 +#      - SSL_CSR=/certs/servhostname.local.csr
 +#      - SSL_CERT=/certs/servhostname.local.crt
 +#    networks:
 +#      - proxy-tier
 +
 +volumes:
 +  db:
 +  nextcloud:
 +  certs:
 +  acme:
 +  vhost.d:
 +  html:
 +
 +networks:
 +  proxy-tier:
 +</code>
 +
 +
 +===== Preview Generator =====
 +
 +Preview Generatorを入れとくと、自動でサムネイルを作成してくれる。
 +
 +==== 1.UIからアプリを入れる ====
 +
 +アプリからPreview Generatorを有効にする。
 +
 +あとはcronコンテナがcron.phpで実行してくれる。
 +
 +==== 2.docker-compose.yml修正 ====
 +
 +こうすると、Preview Generatorに必要なffmpegがインストールされる。
 +
 +<code>
 +  app:
 +    image: nextcloud:fpm-alpine
 +    restart: always
 +    volumes:
 +      - ./nextcloud:/var/www/html
 +    environment:
 +      - MYSQL_HOST=db
 +      - REDIS_HOST=redis
 +      - PHP_MEMORY_LIMIT=1G
 +      - PHP_UPLOAD_LIMIT=5G
 +      - OVERWRITEPROTOCOL=https
 +    entrypoint: sh
 +    command:
 +      - -c
 +      - apk add sudo && apk add ffmpeg && /entrypoint.sh php-fpm
 +    env_file:
 +      - db.env
 +    depends_on:
 +      - db
 +      - redis
 +</code>
 +
 +==== 3.反映 ====
 +
 +<code>
 +docker-compose stop
 +docker-compose up -d
 +</code>
 +
 +
 +==== 4.手動で実行する場合 ====
 +
 +<code>
 +# docker-compose exec -u www-data cron php occ preview:generate-all -vvv
 +</code>
 +
 +もしくは
 +
 +<code>
 +# docker exec app-cron-1 sudo -u www-data PHP_MEMORY_LIMIT=512M php occ preview:generate-all -vvv
 +</code>
 +
 +==== 5.Cronを設定しておく ====
 +
 +preview:pre-generate で実行すると、まだサムネイルができてないものだけ実行
 +
 +<code>
 +# crontab -l
 +*/10 * * * * docker-compose exec -u www-data cron php occ preview:pre-generate -vvv
 +</code>
 +
 +===== Maps =====
 +
 +地図上に写真の場所をマッピングしてくれる。
 +
 +https://apps.nextcloud.com/apps/maps
 +
 +==== 1.Mapsを有効化 ====
 +
 +アプリからMapsを有効にする。
 +
 +あとはcronコンテキストが有効であれば自動でマッピングしてくれます。
 +
 +※位置情報がない写真は先に位置情報を登録して上げる必要があります。
 +[[https://join.biglobe.ne.jp/mobile/sim/gurashi/ios_0060/]]
 +==== 2.手動で実行する場合 ====
 +
 +<code>
 +# docker-compose exec -u www-data app php occ maps:scan-photos
 +</code>
 +
 +もしくは
 +
 +<code>
 +# docker exec app-cron-1 sudo -u www-data PHP_MEMORY_LIMIT=512M php occ maps:scan-photos
 +</code>
 +
 +===== Let's Encrypt =====
 +
 +Let's Encrypt は、nginxproxy/acme-companionで動いててて \\
 +下記のような感じで、1時間おきに動作している
 +
 +<code>
 +Creating/renewal nextcloud.hogehoge.com certificates... (nextcloud.hogehoge.com)
 +[Wed Dec 21 21:46:22 UTC 2022] Domains not changed.
 +[Wed Dec 21 21:46:22 UTC 2022] Skip, Next renewal time is: Fri Jan 27 07:34:32 UTC 2023
 +[Wed Dec 21 21:46:22 UTC 2022] Add '--force' to force to renew.
 +Sleep for 3600s
 +Creating/renewal nextcloud.hogehoge.com certificates... (nextcloud.hogehoge.com)
 +[Wed Dec 21 22:46:23 UTC 2022] Domains not changed.
 +[Wed Dec 21 22:46:23 UTC 2022] Skip, Next renewal time is: Fri Jan 27 07:34:32 UTC 2023
 +[Wed Dec 21 22:46:23 UTC 2022] Add '--force' to force to renew.
 +Sleep for 3600s
 +</code>
 +
 +===== NextCloudでオブジェクトストレージ利用 =====
 +
 +<code>
 +# cat nextcloud/config/config.php
 +'objectstore' => array (
 +  'class' => 'OC\\Files\\ObjectStore\\S3',
 +  'arguments' => 
 +  array (
 +    'bucket' => 'testbuckets', //オブジェクトストレージのバケット名
 +    'autocreate' => true, 
 +    'key' => 'XXXXXXXXXXXXXXXXXXXXX', // Access key
 +    'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', // Secret access key:
 +    'hostname' => 's3.hoghoge.com', //オブジェクトストレージのホスト名
 +    'port' => 443, //
 +    'use_ssl' => true, //ssl 
 +    'use_path_style' => true, // 
 +  ),
 +),
 +</code>
 +
 +===== upgrade =====
 +
 +
 +==== 1 停止 ====
 +
 +  docker-compose stop
 +
 +
 +==== 2 Dockerイメージ変更 ====
 +
 +バージョンは1つずつアップデートする必要があります。
 +
 +vi docker-compose.yml
 +  app:
 +    image: nextcloud:24-fpm-alpine
 +  cron:
 +    image: nextcloud:24-fpm-alpine
 +  ↓に変更
 +  app:
 +    image: nextcloud:25-fpm-alpine
 +  cron:
 +    image: nextcloud:25-fpm-alpine
 +
 +==== 3 起動 ====
 +  docker-compose up -d
 +  
 +==== 4 アップグレード作業  ====
 +
 +  docker-compose exec -u www-data cron php occ upgrade
  
  
 {{tag>日記 Nextcloud}} {{tag>日記 Nextcloud}}
50_dialy/2022/10/01.1664616719.txt.gz · 最終更新: 2022/10/01 09:31 by matsui