Windows版Podman.exeでNextcloudサーバ簡単構築 2022年10月版

Windows版のPodman.exeコマンドで。

Nextcloudサーバを構築してみました。

構築したサーバに、スマートフォンからアクセスして、撮影した写真や動画を自動アップロードできることも確認済みです。

まあ、まだ課題もありますが、十分に動作するレベルのようです。

基本的な構築手順を記録しておこうと思います。


Windows版 Podman.exeのインストール

Podman.exeのインストール手順はこちらになります。

こちらの記事に従い、Podman.exeをインストールして下さい。

インストールが完了しましたら、続きは以下になります。


Nextcloudポッドの起動

ポッドの起動方法は、以前作成したこちらの記事がベースになります。

今回は、この記事の中のNextcloudを起動する流れですが、ボリュームのマウント-vオプションは使わず、データはすべてコンテナの中に入れるようにしました。

またサービスを公開するポート番号は、8090にしてみました。

  1. ポッド作成後、mariadbとnextcloudコンテナを起動します。パスワードやポート番号は適宜変更して下さい。
    rem Nextcloud用ポッド作成
    "%ProgramFiles%\RedHat\Podman\podman.exe" pod create ^
    --name nc-pod -p 8090:80
    rem Mariadbコンテナ作成
    "%ProgramFiles%\RedHat\Podman\podman.exe" run -d ^
    --restart=always ^
    --pod=nc-pod ^
    --name=nc-db ^
    -e MYSQL_ROOT_PASSWORD="myrootpass" ^
    -e MYSQL_DATABASE="nextcloud" ^
    -e MYSQL_USER="nextcloud" ^
    -e MYSQL_PASSWORD="n3xtcl0ud" ^
    docker.io/library/mariadb:latest
    rem Nextcloudコンテナ作成
    "%ProgramFiles%\RedHat\Podman\podman.exe" run -d ^
    --restart=always ^
    --pod=nc-pod ^
    --name=nc-web ^
    -e MYSQL_DATABASE="nextcloud" ^
    -e MYSQL_USER="nextcloud" ^
    -e MYSQL_PASSWORD="n3xtcl0ud" ^
    -e MYSQL_HOST="127.0.0.1" ^
    docker.io/library/nextcloud:latest

    コマンドを3つ、順番に実行するかたちです。

特に警告もエラーもなく、実行されました。

以上でNextcloudサーバが起動しました!

Webブラウザで動作を確認してみましょう。

ポート番号8090で、確かにNextcloudの初期設定画面が表示されました。

うーむ。本当に簡単でしたね。

あとはWebブラウザ上で、Nextcloudの初期設定を進めてみてください。


起動用バッチファイルを作成

作成したポッドとマシンですが。PCを再起動すると、マシンとポッドは停止した状態になります。

PC起動後、マシンとポッドを起動し、更にポートフォワードで他のPCからポッドのWebアプリにアクセスできるようにしてみました。

作成したバッチファイルはこのような感じです。

※22.11.25修正:IPアドレスを取り出す構文に不具合がありましたので修正しました。不具合の内容:IPアドレスが0で終わる場合、正しく取り出せませんでした。構文に\.を追加しました。

※22.12.8追記:ファイアウォールのルールが無限に追加されてしまうため、ルールが存在するか判定するIF文を追加しました。

rem podmanマシン起動
podman machine start

rem podmanマシンのIPアドレス取得
FOR /F %%i in ('podman.exe machine ssh "cat /proc/net/fib_trie | sed -e 's/^[ \-\|\+]*[ \-]*//' | grep '[\d]*\.' |grep -v -e '0.0.0.0' -e '^127\.[\d]*' -e '\/' -e '0$' -e '255$'"') DO set IPADR=%%i

rem ポッド起動
set pod=nc-pod
podman pod start %pod%

rem ポートフォワード
set PTNB=8090
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=%PTNB% connectaddress=%IPADR% connectport=%PTNB%

rem 受信ルール
netsh advfirewall firewall show rule name= "TCP %PTNB%" dir=in
IF %ERRORLEVEL% GEQ 1 (
netsh advfirewall firewall add rule name= "TCP %PTNB%" dir=in action=allow protocol=TCP localport=%PTNB%
)

rem 送信ルール
netsh advfirewall firewall show rule name= "TCP %PTNB%" dir=out
IF %ERRORLEVEL% GEQ 1 (
netsh advfirewall firewall add rule name= "TCP %PTNB%" dir=out action=allow protocol=TCP localport=%PTNB%
)

必要に応じて、次の3つを変更して下さい。

  1. 起動するポッド名:nc-pod
  2. ポート番号:8090
  3. 最終行のpauseで一時停止→不要なら削除して下さい

ファイル名は「start_wsl_portforward.bat」にしてみました。

実行は、ファイルを右クリックして「管理者として実行」を選択します。

PCの再起動後、ポッドを使いたい場合、バッチファイルを管理者として実行する、という使い方になります。

ポートフォワードを有効にして、ファイアウォールの該当ポート番号を開放したため、他のPCからアクセスが可能になりました。


Nextcloudの設定調整

他のPCからアクセスした場合、使用するURLによって「信頼できないドメインを介したアクセス」エラーが表示される場合があります。

この場合、管理画面に次のようなエラーが記録されます。

さらに、アクセスエラーを確認する別の手段とまして、podman logsコマンドでポッドやコンテナのエラーログを表示して、アクセス制限がかかっていないかどうか確認することが可能です。

上記podmanで構築したNextcloudの場合、ポッド名はnc-pod、Webコンテナ名はnc-web、DBコンテナ名はnc-dbになります。

Webコンテナのログを表示する場合、下記のコマンドになります。

podman logs -f nc-web

ポッドのログは、すべてのコンテナのログを混ぜた内容になると思います。

他のPCからアクセスできるようにするには、Webコンテナ内のconfig.phpを編集し、アクセスを許可するURLを追加する必要があります。

config.phpの編集は下記の流れになります。

# Webコンテナ内でbashを起動
podman exec -it nc-web bash
# テキストエディタをインストール
apt update
apt install vim -y
# config.phpを編集
vi config/config.php

config.php編集後、追加したURLを使用したアクセスが可能になります。


以上で、Windows 10にPodmanコマンドをインストールして、Nextcloudサーバを実際に起動することができました。

ホストであるPodmanマシンのストレージ容量は256GB確保されているようです。この範疇でしたら、実際にNextcloudサーバにデータを入れて稼働できると思います。

ストレージを拡張したい場合は、podman machineを初期化する際に調整できると思いますので、追々試そうと思います。

さて。次はポッドのバックアップ・リストアやマイグレーションを調べてみようかと思います。

ではまた!

スポンサーリンク

フォローする

スポンサーリンク