高速で軽量なテキストエディタ「Rustpad」

使うかどうか分かりませんが、Rustで作られた、とにかくシンプルで高速なテキストエディタです。データベース不要で、ドキュメントはメモリ内に保持され、サーバー再起動または24時間無操作で消去されます。
一時的なメモ用途には便利かも。

#!/bin/bash
# =============================================================
#  Rustpad セルフホスト セットアップスクリプト
#  対象: Ubuntu 25.10 / Docker Compose 導入済み環境
# =============================================================
set -e

INSTALL_DIR="/opt/docker/rustpad"

echo "=========================================="
echo "  Rustpad セットアップを開始します"
echo "=========================================="

# ディレクトリ作成
echo "[1/3] ディレクトリを作成中..."
sudo mkdir -p "${INSTALL_DIR}"
sudo chown -R "${USER}:${USER}" "${INSTALL_DIR}"

# docker-compose.yml 生成
echo "[2/3] docker-compose.yml を生成中..."
cat > "${INSTALL_DIR}/docker-compose.yml" <<'COMPOSEOF'
services:
  rustpad:
    image: ekzhang/rustpad:latest
    container_name: rustpad
    restart: unless-stopped
    ports:
      - "3030:3030"
    environment:
      PORT: "3030"
      RUST_LOG: "info"
    healthcheck:
      test: ["CMD-SHELL", "wget -qO- http://localhost:3030/ || exit 1"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 10s
COMPOSEOF

echo "  → ${INSTALL_DIR}/docker-compose.yml"

# 起動
echo "[3/3] コンテナを起動中..."
cd "${INSTALL_DIR}"
docker compose pull
docker compose up -d

echo ""
echo "=========================================="
echo "  セットアップ完了!"
echo "=========================================="
echo ""
echo "  ブラウザでアクセス → http://$(hostname -I | awk '{print $1}'):3030"
echo "  インストール先     → ${INSTALL_DIR}"
echo ""
echo "  ※ ドキュメントはメモリ上に保持されます。"
echo "     コンテナ再起動・24時間無操作で消去されます。"
echo ""
echo "  よく使うコマンド:"
echo "    ログ確認  : docker compose -f ${INSTALL_DIR}/docker-compose.yml logs -f"
echo "    停止      : docker compose -f ${INSTALL_DIR}/docker-compose.yml down"
echo "    更新      : docker compose -f ${INSTALL_DIR}/docker-compose.yml pull && \\"
echo "                docker compose -f ${INSTALL_DIR}/docker-compose.yml up -d"
echo ""

GitHub公式が受け付ける環境変数は PORTRUST_LOG のみです。

**スクリプトがやること(全自動)**

| ステップ | 内容 |
|---|---|
| ① | `/opt/docker/rustpad` と `data/` ディレクトリを作成 |
| ② | `openssl rand -hex 32` でシークレットキーを生成 |
| ③ | 生成キーを `.env` に自動書き込み |
| ④ | `docker-compose.yml` を生成して `docker compose up -d` |

**生成されるファイル構成**
```
/opt/docker/rustpad/
├── docker-compose.yml # Compose定義
├── .env # シークレットキー含む環境変数(自動生成)
└── data/
└── rustpad.db # SQLite永続化ファイル(初回起動後に生成)
タイトルとURLをコピーしました