OCIのAlways Free枠でCockpit + Cloudflare Tunnelの環境構築

## 環境
シェイプ:VM.Standard.E2.1.Micro 
OS: Ubuntu 24.04.2 LTS x86_64 
RAM 1GB
## 前提条件
+ Cloudflareのアカウント
+ ドメインを持っていること
:::note info
ドメインなどは適宜読み替えてください
:::
## Cockpitのインストール

アプデ
``` bash 
sudo apt update && sudo apt upgrade
```
Cockpitを入れる
``` bash
. /etc/os-release
sudo apt install -t ${VERSION_CODENAME}-backports cockpit
```

https://cockpit-project.org/running.html#ubuntu

## Cloudflaredの設定
Cloudflare Zero Trustにログイン
↓
ネットワーク > Tunnels > トンネルを作成する
↓
選択する Cloudflared > 次へ
↓
インスタンスの名前などわかりやすい名前を付ける
![Screenshot from 2025-03-08 11-00-19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957046/9449000d-a09e-4186-8066-9425d223d1c0.png)
↓
左側のコマンドをコピーして実行
![pUjkhk8Od80ykUz1741399368_1741399496.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957046/9aa96eaa-5aca-4e81-93f1-6f5fff9335f7.png)
Connectorsに表示されたら次へ
↓
ドメインとサブドメインを入力
サービスタイプにHTTPS
URLにlocalhost:9090
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957046/a03c3878-69fc-485b-bbff-4c3ca4ea89d1.png)

その他のアプリケーション設定 > TLS検証なしをONに
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957046/0c7f49f2-ae94-466d-861a-7d8763cc9c57.png)
### アクセスの管理

Access > Policies > ポリシーの作成
以下のように入力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957046/919efd46-4266-4d52-9d90-2c140741f9b8.png)
保存
↓
Github > 設定 > 認証 > 新規追加 > Github > New OAuth App

https://github.com/settings/developers

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957046/86539982-b02f-4cfd-aade-c6def3518169.png)
<details><summary>Homepage URLとAuthorization callback URLの確認方法</summary>
Cloudflare Zero Trust > 設定 > カスタムページ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957046/aacc6104-6905-4fad-b7f3-3e4f3ee021af.png)

:::note info
Homepage URL:https://&lt;example>.cloudflareaccess.com

Authorization callback URL:https://&lt;example>.cloudflareaccess.com/cdn-cgi/access/callback
:::
</details>


↓
Register application
↓
Generate a new client secret
↓
アプリIDにclient ID
クライアントシークレットにはClient secret
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957046/5bbd9109-1ede-4bfb-b1e3-f3bb812ea9ad.png)
セットアップを完了するのURLをを開く
追加できれば完了
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957046/5b8b3be5-c9d2-437a-953d-21a8122dadf1.png)

## アプリケーションの追加
Access > アプリケーション > アプリケーションの追加 > セルフホスト

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957046/46df4348-ca4e-463e-8c26-bdd4afb7ccf2.png)
Access ポリシーにさっき作ったポリシーを選択
特にこだわりがなければ次へ > 次へ > 保存
## サーバ側の設定
設定を変更する必要があるらしい

https://2001y.me/blog/cockpit-cloudflare-tunnel

```bash
vi /etc/cockpit/cockpit.conf
```
```:/etc/cockpit/cockpit.conf
[WebService]
Origins = https://cockpit-awf.example.com wss://cockpit.example.com https://192.168.1.72:9090 wss://192.168.1.72:9090
ProtocolHeader = X-Forwarded-Proto
AllowUnencrypted = true
```
```bash
sudo systemctl restart cockpit
```
## アクセスしてみる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957046/3a5d3a85-18af-41c8-8eea-c2d9ea6fce72.png)
:thinking:パスワード設定したっけ？
```bash 
sudo passwd ubuntu
```
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957046/9165fd0c-6646-42bd-8a36-a575eae9eab6.png)
ログインできました

問題発生

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957046/5c7a08ea-4c1d-4fe3-86e5-22200327931a.png)

https://cockpit-project.org/faq#error-message-about-being-offline

```bash
sudo vi /etc/NetworkManager/conf.d/10-globally-managed-devices.conf
```

```:/etc/NetworkManager/conf.d/10-globally-managed-devices.conf
 [keyfile]
 unmanaged-devices=none
```
```bash
sudo nmcli con add type dummy con-name fake ifname fake0 ip4 1.2.3.4/24 gw4 1.2.3.1
```
再起動
また問題発生
PCPをインストールしようとしたら

:::note alert
他のソフトウェア管理オペレーションが終了するまで待機中
:::

```
sudo apt update && sudo apt upgrade
```
アプでしたら直った:thinking:
## Navigatorのインストール
```bash
wget https://github.com/45Drives/cockpit-navigator/releases/download/v0.5.10/cockpit-navigator_0.5.10-1focal_all.deb
sudo apt install ./cockpit-navigator_0.5.10-1focal_all.deb -y
rm -r cockpit-navigator_0.5.10-1focal_all.deb
```
再読込したら
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957046/dfa6dd2a-9b59-4eea-a546-a4ef9b69a5de.png)

:::note warn
ちなみにCloudflareのプロキシステータスをDNSのみにすると接続できないので注意
:::