From 865d9617b9ab3f33c619fd97719b77b858d013b7 Mon Sep 17 00:00:00 2001 From: Rikuoh Date: Mon, 27 Nov 2023 20:17:27 +0900 Subject: [PATCH] fix --- ...ã«æ‰‹ãŒå±Šãインスタンスé‹ç”¨ã®åˆç´šãƒ†ã‚¯ãƒ‹ãƒƒã‚¯é›†.md | 208 +++++++++--------- 1 file changed, 104 insertions(+), 104 deletions(-) diff --git a/content/post/ã‹ã‚†ã„ã¨ã“ã‚ã«æ‰‹ãŒå±Šãインスタンスé‹ç”¨ã®åˆç´šãƒ†ã‚¯ãƒ‹ãƒƒã‚¯é›†.md b/content/post/ã‹ã‚†ã„ã¨ã“ã‚ã«æ‰‹ãŒå±Šãインスタンスé‹ç”¨ã®åˆç´šãƒ†ã‚¯ãƒ‹ãƒƒã‚¯é›†.md index 38047bb..8e8c6b4 100644 --- a/content/post/ã‹ã‚†ã„ã¨ã“ã‚ã«æ‰‹ãŒå±Šãインスタンスé‹ç”¨ã®åˆç´šãƒ†ã‚¯ãƒ‹ãƒƒã‚¯é›†.md +++ b/content/post/ã‹ã‚†ã„ã¨ã“ã‚ã«æ‰‹ãŒå±Šãインスタンスé‹ç”¨ã®åˆç´šãƒ†ã‚¯ãƒ‹ãƒƒã‚¯é›†.md @@ -46,110 +46,110 @@ ssl_certificate_key /etc/ssl/private/ã‚ã‚“ãŸã®ãƒ‰ãƒ¡ã‚¤ãƒ³å.key; 編集後ã€å¿µã®ãŸã‚ã«`nginx -t`ã§ã‚¨ãƒ©ãƒ¼ã‚’確èªã—ã¦å•é¡ŒãŒãªã‘ã‚Œã°`systemctl restart nginx`ã§nginxã‚’å†èµ·å‹•ã™ã‚‹ã€‚Web UIã«æŽ¥ç¶šã—ã¦è¨¼æ˜Žæ›¸ã®æœ‰åŠ¹æ€§ãŒç¢ºèªã§ããŸã‚‰ä½œæ¥­ã¯å®Œäº†ã ã€‚ -## データベースã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã‚’Cloudflareã«ä¸¸æŠ•ã’ã™ã‚‹ ->**å‰æ** ->・Docker環境ã§ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’å‹•ã‹ã—ã¦ã„る。 - -誉れ高ã丸投ã’シリーズãã®2。ã©ã‚“ã©ã‚“丸投ã’ã—ã¦ã„ã“ã†ã€‚我々ã¯ã™ã§ã«å·¨äººã®è‚©ã«ä¹—ã£ã¦ã„ã‚‹ã—ã€ã©ã†ã›ä»Šã•ã‚‰é™ã‚Šã‚‹ã“ã¨ãªã©ã§ããªã„。Cloudflareã®ãƒšãƒ¼ã‚¸ã§**R2 → 概è¦**ã¨é€²ã‚“ã§ãƒã‚±ãƒƒãƒˆã‚’作æˆã™ã‚‹ã€‚ãƒã‚±ãƒƒãƒˆã®åå‰ã¯ãªã‚“ã§ã‚‚構ã‚ãªã„。ã¤ã„ã§ã«è¨­å®šã‹ã‚‰è‡ªå‹•å‰Šé™¤ã‚’スケジュールã™ã‚‹ã¨å®¹é‡ã®ç¯€ç´„ã«ãªã‚‹ã€‚ - -![](/img/201.png) - -次ã«wranglerã‚’å°Žå…¥ã™ã‚‹ã€‚wranglerã¯Cloudflareã®Workerã‚’CLIã§å‹•ã‹ã™ãƒ„ールã ãŒã€**ã»ã¨ã‚“ã©ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹é‹å–¶è€…ãŒä½¿ç”¨ã—ã¦ã„ã‚‹Ubuntuã‚„Debianã§ã¯ç°¡å˜ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ãŒè¡Œãˆãªã„。** aptコマンドã§ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚Œã‚‹Node.jsã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒå¤ã™ãŽã‚‹ãŸã‚ã«ã‚¨ãƒ©ãƒ¼ã‚’èµ·ã“ã—ã¦ã—ã¾ã†ã®ã ã€‚ã—ãŸãŒã£ã¦ã€wranglerã‚’å°Žå…¥ã™ã‚‹**å‰ã«**最新ã®Node.jsをインストールã—ãªã‘ã‚Œã°ãªã‚‰ãªã„。 - -```zsh -# ã™ã§ã«å¤ã„Node.jsãŒå…¥ã£ã¦ã„ã‚‹å ´åˆã¯ã‚¢ãƒ³ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã™ã‚‹ã€‚ -$ apt purge nodejs - -$ curl -fsSL https://deb.nodesource.com/setup_current.x | bash - -$ apt install nodejs -``` - -dpkgã«æ€’られãŒç™ºç”Ÿã—ãŸæ™‚ã¯`sudo dpkg -i --force-overwrite /var/cache/apt/archives/nodejs_20.5.0-deb-1nodesource1_amd64.deb`ã§å¼·åˆ¶çš„ã«ä¸Šæ›¸ãã™ã‚‹ã¨ã†ã¾ãã„ã。ãƒãƒ¼ã‚¸ãƒ§ãƒ³éƒ¨åˆ†ã®`20.5.0`ã¯æœ¬ç¨¿åŸ·ç­†æ™‚点ã§ã®æœ€æ–°ã®æ•°å­—ãªã®ã§é©å®œæ›¸ãæ›ãˆã‚‰ã‚ŒãŸã—。 - -最新ã®Node.jsを手ã«å…¥ã‚ŒãŸã¨ã“ã‚ã§ã‚ˆã†ã‚„ãwranglerã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã«å…¥ã‚‹ã€‚npmã‚’å°Žå…¥ã—ã¦ã„ãªã‘ã‚Œã°ã“れも`apt install npm`ã§äºˆã‚インストールã™ã‚‹ã€‚ - -```zsh -$ npm create cloudflare@latest - -# ã“ã®å¾Œã€è‰²ã€…訊ã‹ã‚Œã‚‹ãŒæŒ‡å®šã™ã¹ãé¸æŠžè‚¢ã¯ä»¥ä¸‹ã®é€šã‚Šã€‚ -・Ok to proceed? -→ Yes - -・In which directory do you want to create your application? -→ プロジェクトディレクトリã®å‘½åã‚’è¡Œã†ã€‚é©å½“ãªåå‰ã§ã„ã„。 - -・What type of application do you want to create? -→ type Scheduled Worker (Cron Trigger) - -・Do you want to use TypeScript? -→ no - -・Do you want to deploy your application? -→ no -``` - -作業ãŒå®Œäº†ã—ãŸã‚‰å‘½åã—ãŸãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«ç§»ã‚Šã€`npx wrangler login`を実行ã™ã‚‹ã€‚URLãŒè¡¨ç¤ºã•ã‚Œã‚‹ã®ã§ã‚³ãƒ”ペã—ã¦ãƒ–ラウザã«è²¼ã‚Šä»˜ã‘ã‚‹ã¨Cloudflareã®èªè¨¼ç”»é¢ãŒç¾ã‚Œã‚‹ã€‚**ã—ã‹ã—ã€SSH越ã—ã«å®Ÿè¡Œã—ã¦ã„ã‚‹ã‹ãŽã‚Šã“ã®èªè¨¼ã¯çµ¶å¯¾ã«å¤±æ•—ã™ã‚‹ã€‚** èªè¨¼æƒ…報をlocalhostã«æ¸¡ã—ã¦ã„ã‚‹ã›ã„ã§ç…§åˆãŒæˆç«‹ã—ãªã„ã‹ã‚‰ã ã€‚今回ã¯ã¡ã‚‡ã£ã¨ã—ãŸè’業ã§ã“ã„ã¤ã‚’ããり抜ã‘ãŸã„。 - -一旦ã€æ„šç›´ã«ã‚³ãƒ”ペã—ãŸURLã§èªè¨¼ã‚’è¡Œãªã£ã¦å¤±æ•—ã—ã¦ã¿ã‚‹ã¨ã€ãƒ–ラウザã®ã‚¢ãƒ‰ãƒ¬ã‚¹æ¬„ã‹ã‚‰localhostã®8976番ãƒãƒ¼ãƒˆã¨é€šä¿¡ã‚’試ã¿ã¦ã„ãŸå½¢è·¡ãŒã†ã‹ãŒãˆã‚‹ã€‚ã¤ã¾ã‚Šã€ã“ã®URLをサーãƒã®å›ºå®šIPアドレスã«æ›¸ãæ›ãˆã‚Œã°æœŸå¾…通りã®æŒ™å‹•ã«å¤‰åŒ–ã™ã‚‹ã¨è€ƒãˆã‚‰ã‚Œã‚‹ã€‚ãã“ã§ã¾ãšã¯ã‚µãƒ¼ãƒå´ã®8976番ãƒãƒ¼ãƒˆã‚’é–‹ã‘ã¦æº–備を整ãˆã‚‹ã€‚ufwã¯ã¨ã¦ã‚‚簡便ãªãƒ•ã‚¡ã‚¤ã‚¢ã‚¦ã‚©ãƒ¼ãƒ«ãƒ•ãƒ­ãƒ³ãƒˆã‚¨ãƒ³ãƒ‰ãªã®ã§ã€çŸ¥ã‚‰ãªãã¨ã‚‚ãœã²å°Žå…¥ã—ã¦ã¿ã¦ã»ã—ã„。 - -```zsh -$ ufw allow 8976 -$ ufw reload -``` - -ãƒãƒ¼ãƒˆã‚’é–‹ã„ãŸçŠ¶æ…‹ã§ä¾‹ã®URLã®`localhost:8976`ã®éƒ¨åˆ†ã‚’`ã‚ã‚“ãŸã®ã‚µãƒ¼ãƒã®IPアドレス:8976`ã«æ›¸ãæ›ãˆã¦ã‚¨ãƒ³ã‚¿ãƒ¼ã‚’押ã™ã€‚ã†ã¾ãã„ã‘ã°ãŸã¡ã¾ã¡èªè¨¼ãŒå®Œäº†ã—ã¦ã‚µãƒ¼ãƒä¸Šã§wranglerãŒä½¿ãˆã‚‹ã‚ˆã†ã«ãªã‚‹ã€‚é–‹ã„ãŸãƒãƒ¼ãƒˆã¯ã‚‚ã†ä½¿ã‚ãªã„ã®ã§ç¢ºå®Ÿã«é–‰ã˜ã¦ãŠã。 - -```zsh -$ ufw deny 8976 -$ ufw reload -``` - -以é™ã¯ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’å‹•ã‹ã—ã¦ã„るユーザã«åˆ‡ã‚Šæ›¿ãˆã¦éžroot環境ã§ä½œæ¥­ã‚’è¡Œã†ã€‚ã“ã“ã¾ã§æ¥ãŸã¨ã“ã‚ã§ã€è©¦ã—ã«ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—作業を手動ã§å®Ÿè¡Œã™ã‚‹ã€‚ - -```zsh -# pg_dumpã§ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã‚’å–å¾—ã—ã¦gzipã§å›ºã‚る。userã¨dbã®éƒ¨åˆ†ã¯å„自ã®ç’°å¢ƒã«åˆã‚ã›ã¦å¤‰æ›´ã™ã‚‹ã“ã¨ã€‚ -$ sudo docker exec mastodon-db-1 pg_dump -Fc -U user db | gzip -c >> backup.gz -# ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ファイルã«æ¨©é™ã‚’与ãˆã‚‹ã€‚ -$ chmod 774 ./backup.gz -# wranglerã®ãƒ—ロジェクトディレクトリã«ç§»å‹•ã™ã‚‹ã€‚ -$ cd /home/ユーザ/プロジェクトディレクトリ -# ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ファイルをCloudflare R2ã«ã‚¢ãƒƒãƒ—ロードã™ã‚‹ã€‚ã“ã®éš›ã€ãƒ•ã‚¡ã‚¤ãƒ«åã‚’ç¾åœ¨æ™‚刻ã«æ›¸ãæ›ãˆã‚‹ã€‚ -$ sudo npx wrangler r2 object put "ã‚ã‚“ãŸã®ãƒã‚±ãƒƒãƒˆå/$(date +\%Y\%m\%d_\%H-\%M-\%S).gz" --file=/home/ユーザ/インスタンスã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª/backup.gz -# å…ƒã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ファイルを削除ã™ã‚‹ã€‚ -$ rm /home/ユーザ/インスタンスã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª/backup.gz -``` - -一連ã®å‹•ä½œãŒé–“é•ã„ãªã完了ã™ã‚‹ã®ã‚’確èªã—ãŸä¸Šã§ã€åŒæ§˜ã®å‡¦ç†å†…容をシェルスクリプトã«ã—ãŸãŸã‚る。ã“ã‚Œã§ã„ã¤ã§ã‚‚ワンタッãƒã§ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—を巨人ã®å£ã«ã­ã˜è¾¼ã‚ã‚‹ã¨ã„ã†å¯¸æ³•ã ã€‚作æˆã—ãŸã‚¹ã‚¯ãƒªãƒ—トã¯`chmod +x ファイルå.sh`ã§å®Ÿè¡Œæ¨©é™ã‚’与ãˆã¦ã‹ã‚‰`sudo ./ファイルå.sh`ã§ç™ºå‹•ã™ã‚‹ã€‚ - -```zsh -#!/bin/bash - -echo "Backup begin..." -cd /home/ユーザ/インスタンスã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª/ -docker exec mastodon-db-1 pg_dump -Fc -U user db | gzip -c >> backup.gz -chmod 744 ./backup.gz -echo "Success!" - -su - ユーザ << bash - echo "Uploading to Cloudflare R2..." - cd /home/ユーザ/プロジェクトディレクトリ/ - npx wrangler r2 object put "ã‚ã‚“ãŸã®ãƒã‚±ãƒƒãƒˆå/$(date +\%Y\%m\%d_\%H-\%M-\%S).gz" --file=/home/ユーザ/インスタンスã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª/backup.gz - rm /home/ユーザ/インスタンスã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª/backup.gz -bash -``` - -上記ã®ã‚¹ã‚¯ãƒªãƒ—トをcronã«ç™»éŒ²ã™ã‚‹ã¨ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—作業ã®è‡ªå‹•åŒ–ãŒé”æˆã§ãる。 - -```zsh -# rootã§å®Ÿè¡Œã™ã‚‹ã€‚ -sudo crontab -u root -e - -# 毎日åˆå‰5時ã«æŒ‡å®šã•ã‚ŒãŸå ´æ‰€ã®ã‚¹ã‚¯ãƒªãƒ—トを実行ã™ã‚‹ã€‚別ã«å¥½ããªæ™‚é–“ã§ã„ã„。 -0 5 * * * sh /home/ユーザ/ファイル.sh -``` - -最高ã ã­ã€‚é¢å€’ãªã“ã¨ã¯å…¨éƒ¨æ©Ÿæ¢°ã«ã‚„らã›ã‚ˆã†ã€‚ãŸã ã—ã€cronã®ã‚„ã¤ã¯æ²¹æ–­ã™ã‚‹ã¨è£åˆ‡ã‚‹ã®ã§ãŸã¾ã«Cloudflareã®ãƒã‚±ãƒƒãƒˆã‚’見ã«è¡Œã£ãŸæ–¹ãŒã„ã„ã‹ã‚‚ã—ã‚Œãªã„。 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ## Mastodonã®ãƒªãƒ¢ãƒ¼ãƒˆãƒ¡ãƒ‡ã‚£ã‚¢ã‚’確èªã—ã¦å‰Šé™¤ã™ã‚‹ >**å‰æ**