Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🎮Bootstrap UNVT Portal #272

Closed
hfu opened this issue Sep 12, 2023 · 11 comments
Closed

🎮Bootstrap UNVT Portal #272

hfu opened this issue Sep 12, 2023 · 11 comments
Assignees

Comments

@hfu
Copy link
Contributor

hfu commented Sep 12, 2023

As introduced in https://hackmd.io/@hfu/2023-09-12#/5 🚀

@hfu hfu self-assigned this Sep 12, 2023
@hfu hfu changed the title Bootstrap UNVT Portal 🎮Bootstrap UNVT Portal Sep 12, 2023
@hfu
Copy link
Contributor Author

hfu commented Sep 13, 2023

このプロジェクトに UNVT Portal という名前をつけて差し支えないか、UNVT Portable の名付け親である @mapconcierge に念のためご了解を頂けるとうれしいです。

UNVT Portal のロゴ ver. 0 を作ってみました。

image

@hfu
Copy link
Contributor Author

hfu commented Sep 13, 2023

@yuiseki @smellman グローバルIPを持ったサーバへのアクセスに際しては公開鍵認証で良いでしょうか。もしそうであれば、後ほど、公開鍵の受け取り方を相談したいと思っています。

@yuiseki
Copy link
Member

yuiseki commented Sep 13, 2023

@hfu 私がGitHubに公開しているSSH公開鍵の一覧を以下のURLから取得可能です

https://github.com/yuiseki.keys

同じように松澤さんのSSH公開鍵の一覧は以下のURLから取得可能です

https://github.com/smellman.keys

これを活用していただけると管理等が楽になるかもしれないと思います

@yuiseki
Copy link
Member

yuiseki commented Sep 13, 2023

UNVT PortableとUNVT Portalは、実際のところ、だいぶ紛らわしい名付けになってしまっているとは思います。
ただ、とりあえずアイデアを実行してみることのほうが重要で、名前はあとから変更しても全然良いはずだとも思います。

@hfu
Copy link
Contributor Author

hfu commented Sep 22, 2023

メモ:ジャンプホストの公開鍵
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMOiJhPKVynN2fOQWTt1f7Whd2GhQW2ek7Im2TU2UcRo

@hfu
Copy link
Contributor Author

hfu commented Oct 2, 2023

細かい話をマニュアルにメモ中。
https://hackmd.io/ErD3l_UgTjyifDaYp0P5ag?edit

@hfu
Copy link
Contributor Author

hfu commented Oct 6, 2023

本日8機を追加し、17機体制にしました。
他方で、2023-10-28/29にいったん電源喪失する見込みであり、そのころにリブートが必要です。また、追加の2機ほど、mDNSで引けない機械があります。

機械のリストは UNVT Portal に入ってからrake -Tでとれます。
rake -T | wc -l で機械の数を数えています。

@yuiseki
Copy link
Member

yuiseki commented Oct 7, 2023

m326yuiseki というユーザーを作らせて貰って、そこで作業しています。
共用マシンであることを充分に認識して、秘密情報は一切置かないようにしています。

m326 で起動したWebサーバーに私の自宅からアクセスしたくて、試行錯誤していたら、できるようになりました。
方法を共有します。

自分を docker グループに追加

  • ユーザー yuiseki では以下のコマンドがパーミッションエラーになる
docker ps
  • ユーザー yuisekidocker グループに追加する
sudo gpasswd -a $(whoami) docker
  • 一旦シェルからexitして入り直す
docker ps
  • 今度は上記のコマンドがエラーなしで動くはず

Node.jsをインストール

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
  • 一旦シェルからexitして入り直す
  • Node.js v20をインストール
nvm install 20

tmux などで適当に画面を2つに分割する

osm-regional-pmtiles-builder を準備して、起動

git clone https://github.com/yuiseki/osm-regional-pmtiles-builder.git
cd osm-regional-pmtiles-builder
npm ci
make start
  • osm-regional-pmtiles-builder を起動したまま、以下を実行

docker 経由で cloudflared の Quick Tunnelを使う

  • cloudflared.deb でホストマシンにインストールすることもできるけど、YAGNIっぽいのでDockerイメージで済ませたい
  • Dockerコンテナ側のポートをホスト側にマッピングするのとは違って、ホスト側のポートをDocker側にマッピングしないといけない
    • --add-host=host.docker.internal:host-gateway が重要
docker run --add-host=host.docker.internal:host-gateway cloudflare/cloudflared:latest tunnel --url host.docker.internal:8080
  • 上記のコマンドを実行時に https://ランダムな文字列.trycloudflare.com/ が表示されるので、それを開く

m326 で動いているNode.jsのhttp-serverに、yuisekiの自宅からアクセスできた 🎉

Image from Gyazo

備考

  • いまはhttp-serverもcloudflaredも止めました
  • 起動するたびにランダムに文字列が変わらないようにするためには、Cloudflareにユーザー登録して秘密情報を m326 に置く必要がある
    • YAGNIの精神で、必要になるまではやらない
  • この方法はかなり強力な反面、セキュリティ的にはリスクもありそう?
    • たぶんSSHポートもexposeできてしまう?
      • 公開鍵認証のみになっていれば、まあ大丈夫か?

@hfu
Copy link
Contributor Author

hfu commented Oct 8, 2023

@yuiseki 面白いです!ありがとうございます!

@hfu
Copy link
Contributor Author

hfu commented Oct 31, 2023

Continue to #294

#274

@hfu hfu closed this as completed Oct 31, 2023
@hfu
Copy link
Contributor Author

hfu commented Nov 2, 2023

UNVT Portal の運用に関しては、PMTiles の discussion 運用にも倣う形で、 #306 で進めていきましょう。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants