Dockerを用いたNextCloudの導入とNginxリバースプロキシの設定

Dockerのインストール

公式リポジトリからDockerをインストールします。

sudo apt update
sudo apt install ca-certificates curl gnupg

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod 644 /etc/apt/keyrings/docker.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

sudo docker run hello-world

MariaDBコンテナの起動

docker run -d \
    --name=nextcloud_mariadb \
    --restart=unless-stopped \
    -e MYSQL_ROOT_PASSWORD=your_secure_password \
    -p 3306:3306 \
    -v /mnt/nextcloud/database:/var/lib/mysql \
    mariadb:latest

NextCloudコンテナの設定

docker run -d \
    --name=nextcloud_app \
    --link nextcloud_mariadb:database \
    -p 8080:80 \
    -v /mnt/nextcloud/app:/var/www/html \
    --restart=unless-stopped \
    nextcloud:latest

設定ファイル /mnt/nextcloud/app/config/config.php を編集:

$CONFIG = array (
  'trusted_domains' => 
  array (
    0 => '192.168.1.x:8080',
    1 => 'your.domain',
  ),
  'overwriteprotocol' => 'https',
  'overwritehost' => 'your.domain',
);

Nginxリバースプロキシの構成

sudo apt install nginx certbot python3-certbot-nginx

sudo certbot --nginx -d your.domain

Nginx設定ファイルに以下を追加:

location / {
    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;
    proxy_set_header X-Forwarded-Host $server_name;
    client_max_body_size 8G;
    proxy_pass http://localhost:8080;
}

タグ: Docker Nextcloud nginx MariaDB リバースプロキシ

6月6日 22:06 投稿