Proxmoxのlxcを使ってNextCloudをお手軽に構築

こんにちは。
ALJの江口と申します。
ファイルサーバーにNextCloudを利用したいという方に、参考までにProxmox上のlxcに、turnkeyを使って構築する方法をご紹介したいと思います。

以下の記事は、Proxmox Virtual Environment 8.1.4を用いて説明しています。

## lxcとは
Proxmoxにはkvmによる仮想化とlxcによる仮想化の2種類が選択できます。lxcはLinux Containersの略で、ざっくり言うと、OSとカーネルを共有しているイメージで、比較的軽量な仮想環境が構築できるという利点があります。
逆に、lxcではカーネルの操作ができないので、それを必要とするアプリケーションは起動できません。
WebサーバーやDBサーバーなどの構築には適していると思います。また、今回はNextCloudを構築してみます。

## turnkeyのイメージを利用
Proxmoxのlxcには、turnkeyプロジェクトのイメージがあらかじめいくつか用意されています。
turnkeyprojectとは、「キーを回すだけでエンジンが始動するくらい簡単」というもののようです。NextCloudのイメージも準備されていて、OS、NextCloud、MySQL（MariaDB?)があらかじめセットアップされた状態で提供されています。

## 構築
### CTテンプレートのダウンロード
lxcを作成するために、CTテンプレートを準備します。CTテンプレートは、選択してダウンロードすることができます。
ストレージに、「CTテンプレート」がない場合は、環境設定でストレージにCTテンプレートを保存できるように設定してください。

![スクリーンショット 2024-02-16 130512.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/f11deda0-a7df-56e5-0f44-92a54b6413ff.png)

CTテンプレートを選択すると、最初は空だと思います。アップロード、URLからダウンロードもできますが、今回は、「テンプレート」を選択して、事前にあるものから選びます。

![スクリーンショット 2024-02-16 130848.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/945efb0d-db26-f716-9cd7-05b830eab4ab.png)

テンプレートをクリックすると、ダウンロードできる候補が表示されます。その中に、**turnkey-nextcloud**というものがあるので、選択してダウンロードボタンを押すとダウンロードされます。

![スクリーンショット 2024-02-16 131144.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/6fed8a29-08c6-5eab-e013-2ded4c252794.png)

## CTテンプレートを利用してlxcの起動
「VMを作成」の横に「**CTを作成**」というボタンがあるのでクリックします。

![スクリーンショット 2024-02-16 125449.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/fb1c0068-860e-7f5c-920e-0ed3871670fa.png)

### 全般
ホスト名やrootのパスワードを設定します。

![スクリーンショット 2024-02-16 131916.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/c3f0f379-a017-9c26-0ea4-f95976dfac33.png)

### テンプレート
テンプレートを選択します。
![スクリーンショット 2024-02-16 132333.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/0757c5cb-3270-f800-5c06-713b6a2b972e.png)

### ディスク
ディスク容量と、コンテナの保存先を指定します。
![スクリーンショット 2024-02-16 132642.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/9782d745-02df-c922-9ee1-ebb1b2e5e522.png)

### CPU
割り当てるコア数を指定します。
![スクリーンショット 2024-02-16 132757.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/22fe97cc-5655-885a-dd48-1b98879192f9.png)

### メモリ
割り当てるメモリ容量とスワップ容量を指定します。
![スクリーンショット 2024-02-16 132857.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/42cbff41-4ee9-45f3-2a10-75c3fc9fa6c5.png)

### ネットワーク
ネットワークの設定を指定します。
IPv4の固定IPを指定する場合は、192.168.xxx.xxx/**24**のように**CIDR**で入力します。
![スクリーンショット 2024-02-16 132958.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/e294e3eb-7677-8d88-60ce-2fdebb9dbe45.png)

### DNS
DNSの情報を入力します。
![スクリーンショット 2024-02-16 133053.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/22b0991a-d3e5-6ea9-ff38-e8192f70b655.png)

### 確認
最後に確認して完了します。
今回はサンプルのため、メモリやストレージが小さいので、必要に応じて変更してください。
![スクリーンショット 2024-02-16 133140.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/5cc6bb3f-79b0-beb6-d381-0f06effefc42.png)

## 起動
あとは通常通り、インスタンスを起動すると、先ほど設定したrootでログインできる状態になります。
rootでログインすると、MariaDBのパスワード等を設定するセットアップ画面が表示されます。

### 起動後のセットアップ
起動すると、proxmoxのコンソールにログインプロンプトが出るので、先ほど設定したパスワードを使用してrootでログインします。

### MySQL Password
MySQLのadminierアカウントのパスワードを指定します。
OKを押すと再入力が求められるので、もう一度入力します。
![スクリーンショット 2024-02-16 134841.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/ec15dc19-7ed7-6215-3766-784020444fd2.png)

### NextCloud Password
NextCloudのadminアカウントのパスワードを入力します。
OKを押すと再入力が求められるので、もう一度入力します。
![スクリーンショット 2024-02-16 135149.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/ab70a588-484e-84b6-b2e6-27e42fe32729.png)

### ドメイン入力
NextCloudのドメインを入力します。
ローカルで使用する場合は、セキュリティ設定の変更が必要なので、完了後に設定変更を行うので、暫定的な名前を入力しておきます。

![スクリーンショット 2024-02-16 135446.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/16647831-cf68-3ee9-2894-5ad7af1ee6a9.png)

### Turnkeyの情報入力
TurnkeyプロジェクトGithub利用やDDNSが利用できるよです。
自分はスキップしました。

![スクリーンショット 2024-02-16 135636.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/3746bbbb-397c-e4a1-e2ff-4004a1519dad.png)
        
### Turnkeyからのセキュリティアラート通知
Turnkeyからセキュリティ通知が受けれるようですが、自分はスキップしました。
![スクリーンショット 2024-02-16 135854.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/3523b37f-f3f9-f01f-b2ee-4c5732329dda.png)

### アップデートの実行
アップデートを今実行する場合は、**Install**を押してください。後で実行する場合はスキップしてください。

![スクリーンショット 2024-02-16 140201.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/5e308e1d-2028-5916-428e-f7b5724fcf28.png)

### 接続確認
以上で設定が終わり、起動状態になります。
![スクリーンショット 2024-02-16 140452.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/cd8e11fb-0d07-3456-d2a7-f6aab744f0bd.png)

URLにアクセスすると、起動は確認できますが、アクセス拒否されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/05092358-1b6c-f823-5fbc-0bdbcb9056e2.png)

## 起動後の設定
設定ファイルの変更が必要なので、コンソールからログインします。
sshもしくは、Proxmoxのコンソールからログインしてください。

### 「信頼できないドメインを介したアクセス」の対応
以下のconfig.phpファイルを修正し、trusted_domainsの接続情報を修正もしくは追加します。IPで接続する場合はIPを入力します。

/var/www/nextcloud/config/config.php
![スクリーンショット 2024-02-16 1416371.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/4d5704e7-b745-4b80-f558-ccb795bd05f1.png)


### ログインできるようになったか確認
再度アクセスし、ログイン画面が出ることを確認してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662107/4a3f9728-46b3-dc43-ab25-25f5b80da516.png)

lxc+turnkeyイメージを使った立ち上げは以上です。