こんにちは、コンです🦊
せっかく作った自作アプリ、会社の同僚や知り合いに「ちょっと触ってみて!」ってURLを渡せると嬉しいですよね。
でも、いざ配布してみると
「エラー出たけど何が原因か分からない」
「別の環境だとなぜか○○が表示されない?」
「最悪、アプリ/ツール壊れたらどうしよう…」
…って後から思うこと、ありませんか?
今回は、自分ひとりだけのアプリ を「誰かに安心して触ってもらえるアプリ」にするための整理術 に取り組みました。
✅ ログを残して「どこでエラーが出たかすぐ分かる」
✅ staticフォルダで「配布ファイルが行方不明にならない」
✅ バックアップで「何かあっても昨日に戻れる安心感」
作っただけで終わらず、人に共有できるし、手伝ってもらえる状態に持っていきたい!🦊
1. 導入:この記事でできるようになること
「自分が作ったVPS上のアプリを、知り合い・会社の人・ネットの誰かが触ったときにも困らない整理方法」について、自分の疑問ベースでまとめました 。
何かあったときに原因がすぐ分かるログの残し方
公開ファイル(画像やCSS)を安全に分けて置く方法
万が一壊れても元に戻せる最低限のバックアップの作り方
💡 なぜ必要?
作ったのが自分でも、使うのは他人(非エンジニア)である場合も
バグが起きても「すぐ見つけて直せる」「証拠がある」だけで信用される
失敗しても「昨日の状態に戻せる」だけで大事故が防げる
2. 背景・基礎知識
📦 「なんでログなんか残すの?」
→ 自分一人で遊んでるときは不要かもしれません。
でも知り合いや社内の人が「画面が真っ白なんだけど…?」と連絡してきたとき、ログが残ってないと、何が起きたのか自分でも分からない です。
✅ ログ活用のリアル例
📌 どんなときに助かる?
「使えないんだけど!」と言われた
→ ログで「どのAPIでエラーが出たか」が一目で分かるアプリが落ちて自動再起動した
→ どの時間帯に落ちたか?アクセス多すぎ?原因がログで分かる
🛠 どう整理すると便利?
ログファイルを日付で分けると探しやすい
logging.basicConfig(
filename=f'logs/app_{datetime.date.today()}.log',
level=logging.INFO
)
nginx のアクセスログも /logs/nginx/ にまとめる
必要なら tail -f logs/app.log でリアルタイム監視
🪄 フロント側で活かすなら?
ログでエラーを検知したら、自動でSlackに通知しておく
ログに残した内容を可視化して「何件アクセスあったか」など簡易分析に使う
🌐 「staticって何?なんで分けるの?」
→ static は CSS、画像、PDFなど「誰でも見られてOKなファイル」 の置き場です。
アプリの本体と混ぜると、
「どれがユーザー用?どれが秘密?」が分からなくなる
消してはいけないファイルを間違って削除しやすい
だから /static に分けるだけで 事故が減る!
✅ static活用のリアル例
📌 どんなときに助かる?
バナー画像やロゴを更新したいとき、/static/ だけ差し替えればOK
ダウンロード配布ファイルを static/ に置けば誰でも取得できる
🛠 どう整理すると便利?
画像は static/img/、CSSは static/css/ に分ける
大きな動画やzipはCDNや別サーバーに置く手もある
🪄 フロント側で活かすなら?
会社や知り合いに「画像URLを送るだけ」で最新バナーを共有できる
Reactなどフロントで public/ と static/ をちゃんと分ける基礎になる
🗂 「バックアップってどんなとき役立つの?」
→ 「自分が間違ってファイルを削除した」「サーバーが壊れた」
そういうときに 前の日に戻れる 仕組みです。
これがないと、
1ヶ月かけて作ったコードが一瞬でゼロ
誰も復元できない
→ 1フォルダだけでも良いから取っておく!
✅ バックアップ活用のリアル例
📌 どんなときに助かる?
VPSの設定を間違えて全消ししてしまったとき
誰かが操作を誤って古いコードに戻してしまったとき
🛠 どう整理すると便利?
backup/ は日付でフォルダ名をつける
例: backup/2025-06-21/cron で定期的に tar.gz を取っておく
1週間で古いものは自動削除するスクリプトを組む
🪄 どう復元する?
事故が起きたら:
tar -xzf backup/2025-06-21/app_backup.tar.gz -C ~/myapp/
DBも同じく:
mysql -u root -p mydb < backup/2025-06-21/mydb.sql
3. 実践パート
✅ ステップ1|最低限の構造を作ろう
mkdir -p ~/myapp/{app,logs,static,backup}
myapp/
├─ app/ ← コード
├─ logs/ ← 動作ログ
├─ static/ ← 公開ファイル
├─ backup/ ← 毎晩の控え
✅ ステップ2|Flaskでログを残す
import logging
from flask import Flask
app = Flask(__name__)
logging.basicConfig(filename='logs/app.log', level=logging.INFO)
@app.route("/")
def home():
app.logger.info("アクセスがありました")
return "Hello!"
if __name__ == "__main__":
app.run()
✅ ステップ3|staticを分けて配信(nginx)
location /static/ {
alias /home/ubuntu/myapp/static/;
}
これで、https://yourtool.xyz/static/logo.png が誰でも見られる!
✅ ステップ4|バックアップを取る
tar -czf ~/myapp/backup/app_backup_$(date +%F).tar.gz ~/myapp/app
4. つまずきポイントと対処法(FAQ)

5. まとめと次回予告
✅ 今回は、「作ったアプリを誰かに渡しても安心できる整理方法(ログ・static・バックアップ)」を一緒にやってみました。
単にフォルダを作るだけじゃなくて、
「これがあると、他の人にも自信を持ってURLを送れる」
「失敗しても“元に戻せる”安心感が、あなたの挑戦を増やす」
これが ログ・バックアップ・static を残す本当の意味です!
これだけで「自分だけの自己満アプリ」から、
「誰かに自信を持ってURLを送れるアプリ」に進化です。
🔜 次回は、自動バックアップ&cronの基本 について取り組む予定です!
#ConoHa VPS, #Linux, #SSH, #仮想サーバー, #ディレクトリ構造