No description
  • JavaScript 73.6%
  • CSS 19.2%
  • HTML 6%
  • Shell 0.8%
  • Dockerfile 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Haruki 1cd783fd80
Some checks failed
deploy / deploy (push) Failing after 7s
chiwa-lab向け: mt.ch1w4.com公開・Forgejo Actionsで自動デプロイ
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_014EZiYZKumPHNhzMNKHRiyr
2026-10-19 13:32:23 +00:00
.forgejo/workflows chiwa-lab向け: mt.ch1w4.com公開・Forgejo Actionsで自動デプロイ 2026-10-19 13:32:23 +00:00
deploy chiwa-lab向け: mt.ch1w4.com公開・Forgejo Actionsで自動デプロイ 2026-10-19 13:32:23 +00:00
public フィールドノート: 写真マップ・撮影予報・持ち物チェックリスト 2026-10-19 13:16:29 +00:00
.dockerignore フィールドノート: 写真マップ・撮影予報・持ち物チェックリスト 2026-10-19 13:16:29 +00:00
.env.example chiwa-lab向け: mt.ch1w4.com公開・Forgejo Actionsで自動デプロイ 2026-10-19 13:32:23 +00:00
.gitignore フィールドノート: 写真マップ・撮影予報・持ち物チェックリスト 2026-10-19 13:16:29 +00:00
compose.yaml chiwa-lab向け: mt.ch1w4.com公開・Forgejo Actionsで自動デプロイ 2026-10-19 13:32:23 +00:00
Dockerfile フィールドノート: 写真マップ・撮影予報・持ち物チェックリスト 2026-10-19 13:16:29 +00:00
package.json フィールドノート: 写真マップ・撮影予報・持ち物チェックリスト 2026-10-19 13:16:29 +00:00
README.md chiwa-lab向け: mt.ch1w4.com公開・Forgejo Actionsで自動デプロイ 2026-10-19 13:32:23 +00:00
server.js chiwa-lab向け: mt.ch1w4.com公開・Forgejo Actionsで自動デプロイ 2026-10-19 13:32:23 +00:00

フィールドノート

写真で残す、山とキャンプと景色の記録アプリ。スマホのホーム画面に置いて使う PWA です。 公開先: https://mt.ch1w4.com

できること

タブ 内容
地図 写真を選ぶと EXIF の位置情報から撮影地にピンが立つ。位置情報がない写真は地図をタップして配置。長押しでその場所に記録/行きたい場所を追加
記録 写真タイルで一覧。年ごとの記録数・写真枚数・最高地点・山の数/キャンプ泊数
予報 行きたい場所ごとの7日間予報。雲海・星空・朝焼け/夕焼けのチャンス、日の出・日の入・ゴールデンアワー、月齢。週末を優先した「今週のおすすめ」
持ち物 日帰り登山/テント泊/キャンプ/冬・雪山/カメラのテンプレートを組み合わせたチェックリスト

記録を保存すると、その場所の標高と、その日の天気(最高・最低気温)を自動で添えます。 写真はブラウザで長辺2400pxに縮小・再エンコードしてから送るので、EXIF はサーバーに残りません。

  • 地図・地名検索:国土地理院 / 天気・標高:Open-Meteo(APIキー不要)
  • server.js は依存ゼロの Node.js。データは data/db.json と data/photos/

構成(chiwa-lab)

スマホ ─ Cloudflare(mt.ch1w4.com) ─ Tunnel ─ proxy01 NPM(192.168.30.10)
                                              └→ docker01:8090 (192.168.20.50) fieldnote コンテナ
git push → git01(Forgejo) → runner01 → SSH(command=deploy.sh) → docker01 で pull & build
場所 パス
リポジトリ https://git.ch1w4.com/chiwa/fieldnote
docker01 のアプリ /opt/apps/fieldnote/app(clone 先。.env と data/ もここ)
docker01 の反映スクリプト /opt/apps/fieldnote/deploy.sh(deploy/deploy.sh をコピーしたもの)

初回セットアップ

1. docker01

sudo mkdir -p /opt/apps/fieldnote && sudo chown -R chiwa: /opt/apps/fieldnote
cd /opt/apps/fieldnote
git clone http://192.168.20.45:3000/chiwa/fieldnote.git app
cd app
cp .env.example .env && nano .env      # PASSCODE と SESSION_SECRET(openssl rand -hex 32)
mkdir -p data && sudo chown 1000:1000 data
cp deploy/deploy.sh ../deploy.sh && chmod +x ../deploy.sh
../deploy.sh                            # 「反映しました」が出ればOK

2. 反映専用のデプロイ鍵(www とは別の鍵)

ssh-keygen -t ed25519 -N "" -C runner-deploy-fieldnote -f ~/deploy_key_fn
echo "command=\"/opt/apps/fieldnote/deploy.sh\",no-pty,no-port-forwarding,no-agent-forwarding,no-X11-forwarding $(cat ~/deploy_key_fn.pub)" >> ~/.ssh/authorized_keys
cat ~/deploy_key_fn   # → Forgejo の chiwa/fieldnote → 設定 → Actions → シークレット DEPLOY_KEY に登録
rm ~/deploy_key_fn ~/deploy_key_fn.pub

3. NPM(proxy01)

プロキシホストを追加:mt.ch1w4.com → http 192.168.20.50 8090(Websockets はオフでOK、SSL 設定は不要)

4. Cloudflare

Zero Trust → Tunnels → chiwa-lab → Public Hostname に mt.ch1w4.com → HTTP npm:80 を追加。

502 になる場合は、IX2215 の dmz-in フィルタで proxy01 → docker01 の 8090 が許可されているか確認する。

更新

main に push すれば runner01 が自動で反映する。手動なら docker01 で /opt/apps/fieldnote/deploy.sh。

バックアップ

/opt/apps/fieldnote/app/data が全データ。docker01 が PBS の毎日バックアップ対象に入っているか確認しておく。

ローカルで動かす

PASSCODE=test node server.js   # http://localhost:3000

環境変数

名前 既定 説明
PASSCODE なし ログインの合言葉。空ならログイン不要
SESSION_SECRET PASSCODE から生成 ログイン Cookie の署名キー
HOST_PORT 8090 docker01 側の公開ポート
PORT / DATA_DIR 3000 / /data コンテナ内の設定