Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Claude Skills Railway Turso Management Skill Md

FSecurity

Railway Database管理スキル。Railway環境グループ、Variables vs Secrets、 Turso integration、Railway CLI統合、一時ファイルセキュリティを提供します。 📚 リソース参照: このスキルには以下のリソースが含まれています。 必要に応じて該当するリソースを参照してください: - `.claude/skills/railway-turso-management/resources/railway-turso-guide.md`: Railway Turso 詳細ガイド 使用タイミング: - RailwayプロジェクトのSecret管理を設計する時 - Railway環境グループを設定する時 - Turso integrationを設定する時 - Railway CLI経由のローカル開発を設定する時 - Railway Logsセキュリティを確保する時 Use when configuring Railway database, setting up environment groups, integrating...

76 stars
0 votes
0 copies
0 views
Added 2/8/2026
developmenttypescriptbashsqlnodeawsgitapidatabasesecurity

Works with

cliapi

Security Analysis

F17/100
criticalPipes output to a shell interpreter
mediumUses curl or wget to download content
criticalExfiltrates credentials via HTTP — exact pattern from Snyk ToxicSkills study
criticalDownloads and executes remote scripts — classic supply chain attack

Pro shows the line behind each finding and how to fix it

Scanned 2/12/2026

$npx -y skills add majiayu000/claude-skill-registry --skill claude-skills-railway-turso-management-skill-md --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Claude Skills Railway Turso Management Skill Md?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Claude Skills Railway Turso Management Skill Md
[![Security: F — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-claude-skills-railway-turso-management-skill-md/badge)](https://www.skillsdirectory.com/skills/majiayu000-claude-skills-railway-turso-management-skill-md)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: .claude/skills/railway-turso-management/SKILL.md
description: |
  Railway Database管理スキル。Railway環境グループ、Variables vs Secrets、
  Turso integration、Railway CLI統合、一時ファイルセキュリティを提供します。

  📚 リソース参照:
  このスキルには以下のリソースが含まれています。
  必要に応じて該当するリソースを参照してください:

  - `.claude/skills/railway-turso-management/resources/railway-turso-guide.md`: Railway Turso 詳細ガイド

  使用タイミング:
  - RailwayプロジェクトのSecret管理を設計する時
  - Railway環境グループを設定する時
  - Turso integrationを設定する時
  - Railway CLI経由のローカル開発を設定する時
  - Railway Logsセキュリティを確保する時

  Use when configuring Railway database, setting up environment groups,
  integrating Turso, or securing Railway deployments.
version: 1.0.0
---

# Railway Turso Database Management

## 概要

Railway は、環境変数を暗号化して保存し、デプロイ時にアプリケーションに注入する
Secrets 管理機能を提供します。このスキルは、Railway 固有の機能を最大限活用した
セキュアな Turso データベース管理を実現します。

## Railway Secrets vs Variables

### Secrets(機密情報)

**特徴**:

- 暗号化保存
- UI 上でマスク表示(\*\*\*)
- 監査ログ記録
- アクセス制限可能

**用途**:

- API キー(OPENAI_API_KEY、STRIPE_SECRET_KEY)
- データベース認証(TURSO_DATABASE_URL、TURSO_AUTH_TOKEN)
- 暗号化キー(NEXTAUTH_SECRET)
- OAuth Client Secret
- Webhook URL(DISCORD_WEBHOOK_URL)

**設定方法**:

\`\`\`
Railway Dashboard
→ Project
→ Environment (development/staging/production)
→ Variables
→ + New Variable
→ Variable name: OPENAI_API_KEY
→ Value: sk-proj-...
→ 🔒 Mark as secret(✅ チェック)
→ Add
\`\`\`

### Variables(非機密設定)

**特徴**:

- 平文保存
- UI 上で表示可能
- 監査ログなし

**用途**:

- アプリケーション名(APP_NAME)
- ログレベル(LOG_LEVEL)
- 機能フラグ(ENABLE_FEATURE_X)
- 公開 URL(API_BASE_URL)
- ポート番号(PORT)

**重要**: 機密情報は必ず「Mark as secret」をチェック

## Railway 環境グループ管理

### 環境の作成

\`\`\`
Railway Dashboard
→ Project
→ Environments
→ + New Environment
→ Name: staging
→ Create
\`\`\`

### 環境別変数設定の推奨構成

\`\`\`
Project: MyApp
│
├── 🏗️ Environment: development
│ ├── Service: web
│ └── Variables:
│ Secrets:
│ - OPENAI_API_KEY=sk-proj-dev-...
│ - NEXTAUTH_SECRET=<dev-secret>
│ - TURSO_DATABASE_URL=libsql://dev-db.turso.io
│ - TURSO_AUTH_TOKEN=<dev-token>
│ Variables:
│ - NODE_ENV=development
│ - LOG_LEVEL=debug
│
├── 🧪 Environment: staging
│ ├── Service: web
│ └── Variables:
│ Secrets:
│ - OPENAI_API_KEY=sk-proj-staging-...
│ - NEXTAUTH_SECRET=<staging-secret>
│ - TURSO_DATABASE_URL=libsql://staging-db.turso.io
│ - TURSO_AUTH_TOKEN=<staging-token>
│ Variables:
│ - NODE_ENV=staging
│ - LOG_LEVEL=info
│
└── 🚀 Environment: production
├── Service: web
└── Variables:
Secrets: - OPENAI_API_KEY=sk-proj-prod-... - NEXTAUTH_SECRET=<prod-secret-high-entropy> - TURSO_DATABASE_URL=libsql://prod-db.turso.io - TURSO_AUTH_TOKEN=<prod-token> - DISCORD_WEBHOOK_URL=https://discord.com/...
Variables: - NODE_ENV=production - LOG_LEVEL=warn
\`\`\`

### Railway CLI での環境変数管理

\`\`\`bash

# 環境選択

railway environment

# → development, staging, production から選択

# 変数一覧表示

railway variables

# 変数設定(現在の環境)

railway variables set API_KEY=sk-proj-key

# 変数削除

railway variables delete API_KEY

# JSON形式でエクスポート(⚠️ 非推奨)

railway variables --json > vars.json

# → 即座に削除すること: rm vars.json

\`\`\`

## Turso Database Integration

### セットアップ

Turso は Railway のネイティブプラグインではないため、手動で環境変数を設定します。

**手順**:

1. Turso CLI で データベースを作成
2. 環境別のデータベースを作成(dev/staging/prod)
3. 認証トークンを生成
4. Railway に環境変数を設定

### Turso CLI でのデータベース作成

\`\`\`bash

# Turso CLIインストール

curl -sSfL https://get.tur.so/install.sh | bash

# ログイン

turso auth login

# 開発用データベース作成

turso db create myapp-dev

# ステージング用データベース作成

turso db create myapp-staging

# 本番用データベース作成

turso db create myapp-prod

# データベースURL取得

turso db show myapp-dev --url

# 出力例: libsql://myapp-dev-[org].turso.io

# 認証トークン生成

turso db tokens create myapp-dev

# 出力例: eyJhbGc...

\`\`\`

### Railway への環境変数設定

**Development 環境**:

\`\`\`
Railway Dashboard
→ Project
→ Environment: development
→ Variables
→ + New Variable
→ Variable name: TURSO_DATABASE_URL
→ Value: libsql://myapp-dev-[org].turso.io
→ 🔒 Mark as secret(✅ チェック)
→ Add

→ + New Variable
→ Variable name: TURSO_AUTH_TOKEN
→ Value: eyJhbGc...
→ 🔒 Mark as secret(✅ チェック)
→ Add
\`\`\`

**Staging/Production 環境**: 同様の手順で各環境のデータベース URL とトークンを設定

**メリット**:

- 環境毎に自動分離(dev/staging/prod で別 DB インスタンス)
- Edge ロケーションでの低レイテンシ
- 組み込み レプリケーション機能
- SQLite 互換で高速

**.env.example への記載**:

\`\`\`bash

# Database(Turso)

# ローカル開発: railway run pnpm run dev で自動注入

# または ローカル SQLite ファイル使用

TURSO_DATABASE_URL=libsql://[database]-[org].turso.io
TURSO_AUTH_TOKEN=your-auth-token-here

# ローカル開発用(オプション)

# TURSO_DATABASE_URL=file:./local.db

\`\`\`

## Railway CLI 統合

### ローカル開発フロー

**方法 1: railway run(推奨)**

\`\`\`bash

# Railwayから環境変数を注入して実行

railway run pnpm run dev

# メリット:

# - ファイルに保存しない(メモリ内注入)

# - Git誤コミットリスクなし

# - 環境選択が明示的

\`\`\`

**方法 2: ローカル.env(非推奨)**

\`\`\`bash

# Railway Secretsをローカルファイルにダウンロード

railway variables --json | jq -r 'to_entries | .[] | "\(.key)=\(.value)"' > .env.local

# ⚠️ 警告:

# 1. .env.localを必ず.gitignoreに追加

# 2. 作業終了後は即座に削除

# 3. 本番環境のSecretは絶対にダウンロードしない

# 使用後は即座に削除

rm .env.local
\`\`\`

**方法 3: ローカル SQLite(開発専用)**

\`\`\`bash

# .env.development.local

TURSO_DATABASE_URL=file:./local.db

# TURSO_AUTH_TOKEN は不要(ローカルファイルの場合)

\`\`\`

### Railway Token セキュリティ

**Token 取得**:

\`\`\`
Railway Dashboard
→ Account Settings
→ Tokens
→ Create Token
→ Name: "GitHub Actions Deploy"
→ Scope: Project単位(推奨)
→ Permissions: "Deploy only"
→ Expiration: 90日後
→ Create
\`\`\`

**Token 保存**(GitHub Secrets):

\`\`\`
GitHub Repo
→ Settings
→ Secrets and variables → Actions
→ New repository secret
→ Name: RAILWAY_TOKEN
→ Value: <Railwayで生成したToken>
→ Add secret
\`\`\`

**Rotation(90 日毎)**:

\`\`\`bash

# 1. Railway Dashboardで新Token生成

# 2. GitHub SecretsのRAILWAY_TOKENを更新

# 3. Railway Dashboardで旧Tokenを Revoke

# 4. GitHub Actionsでデプロイテスト実行

\`\`\`

## Railway Logs セキュリティ

### ログへの Secret 露出防止

\`\`\`typescript
// ❌ 危険: SecretをログにNO出力
console.log("Database URL:", process.env.TURSO_DATABASE_URL);
// Railway Logs に露出!

// ✅ 安全: Secretをマスク
console.log("Database URL: \*\*\*");

// ✅ 安全: 構造化ログでSecretを除外
logger.info({
event: "db_connection",
status: "connected",
// database_url や auth_token は含めない
timestamp: new Date(),
});
\`\`\`

### Railway Logs での事後確認

\`\`\`
Railway Dashboard
→ Project
→ Deployments
→ View Logs
→ Search機能で検索:

- "libsql://"(Turso URL)
- "eyJhbGc"(JWT token prefix)
- "sk-proj-"(OpenAI Key)
- "sk*live*"(Stripe Key)
- "password"
- "secret"

→ 検出された場合:

1. 即座にそのSecretをRotation
2. ログ出力箇所を修正
3. 再デプロイ
   \`\`\`

## 一時ファイルとセキュリティ

### /tmp ディレクトリの揮発性

**Railway の仕様**:

- \`/tmp\`ディレクトリは**再デプロイ時に完全削除**される
- 永続化が必要なデータは外部ストレージ使用(S3、Cloudinary 等)

**Secret の一時保存禁止**:

\`\`\`typescript
// ❌ 危険: Secretをファイルに保存
import fs from "fs";
fs.writeFileSync("/tmp/auth-token.txt", process.env.TURSO_AUTH_TOKEN);

// ✅ 安全: Secretはメモリ内のみ
const authToken = process.env.TURSO_AUTH_TOKEN;
// メモリ内変数として使用
\`\`\`

### アップロードファイルのスキャン

\`\`\`typescript
import { Readable } from "stream";

class UploadSecurityScanner {
private secretPatterns = [
/sk-proj-[a-zA-Z0-9]{48}/, // OpenAI
/sk*live*[0-9a-zA-Z]{24,}/, // Stripe
/-----BEGIN ._ PRIVATE KEY-----/, // Private Key
/AKIA[0-9A-Z]{16}/, // AWS Access Key
/eyJhbGc[a-zA-Z0-9_-]_\.[a-zA-Z0-9_-]_\.[a-zA-Z0-9_-]\_/, // JWT tokens
/libsql:\/\/[a-zA-Z0-9-]+\.turso\.io/, // Turso URL
];

async scanFile(file: File): Promise<void> {
const content = await file.text();

    for (const pattern of this.secretPatterns) {
      if (pattern.test(content)) {
        throw new Error(
          "Uploaded file contains potential secret - upload rejected"
        );
      }
    }

}
}

// Uploadエンドポイントで使用
app.post("/api/upload", async (req, res) => {
const file = req.file;

// Secret スキャン
await scanner.scanFile(file);

// スキャン通過後のみ処理
await processUpload(file);
});
\`\`\`

## デプロイ戦略

### Blue-Green Deployment

\`\`\`
Railway環境設定:

production-blue(現行)

- TURSO_DATABASE_URL=libsql://prod-db.turso.io
- TURSO_AUTH_TOKEN=<Current Token>
- API_KEY=<Current Key>
- Status: Primary

production-green(新バージョン)

- TURSO_DATABASE_URL=libsql://prod-db.turso.io(同じDB)
- TURSO_AUTH_TOKEN=<Current Token>(同じToken)
- API_KEY=<New Key>(Rotation時)
- Status: Inactive

切り替え手順:

1. production-greenにデプロイ
2. ヘルスチェック実行
3. Railway Dashboard → Set as primary
4. トラフィック切り替え
5. production-blueを監視期間保持
   \`\`\`

### ローリングアップデート(Secret Rotation 時)

\`\`\`bash

# Phase 1: 新Secretを追加

railway variables set API_KEY_NEW=sk-proj-new-key

# Phase 2: アプリケーションコードを更新(新旧両方試行)

git push origin main

# Phase 3: 新Secretに完全移行確認

railway logs --tail

# Phase 4: 旧Secretを削除

railway variables delete API_KEY_OLD
\`\`\`

## 実装チェックリスト

### Railway 設定

- [ ] すべての機密情報が「Mark as secret」されているか?
- [ ] 環境グループが 3 つ設定されているか?(dev/staging/prod)
- [ ] Turso データベースが各環境に設定されているか?
- [ ] TURSO_DATABASE_URL と TURSO_AUTH_TOKEN が設定されているか?
- [ ] Variables(非機密)と Secrets(機密)が適切に分類されているか?

### Railway CLI

- [ ] Railway Token が安全に保管されているか?(GitHub Secrets)
- [ ] Token 権限が最小化されているか?(Deploy only)
- [ ] Token の Rotation スケジュールがあるか?(90 日)
- [ ] \`railway variables\`でダウンロードしたファイルが即座に削除されるか?

### ログセキュリティ

- [ ] ログ出力に Secret が含まれないか?
- [ ] Railway Logs で定期的に Secret 露出をチェックしているか?
- [ ] 構造化ログで Secret フィールドが除外されているか?

### 一時ファイル

- [ ] /tmp ディレクトリへの Secret 保存を避けているか?
- [ ] アップロードファイルがスキャンされているか?
- [ ] 永続化が必要なデータは外部ストレージ使用か?

### Turso 固有

- [ ] 環境別にデータベースが分離されているか?
- [ ] 認証トークンが定期的にローテーションされているか?
- [ ] ローカル開発用の SQLite フォールバックが設定されているか?

## 関連スキル

- \`.claude/skills/github-actions-security/SKILL.md\` - GitHub Actions 統合
- \`.claude/skills/environment-isolation/SKILL.md\` - 環境分離戦略
- \`.claude/skills/secret-management-architecture/SKILL.md\` - Secret 管理アーキテクチャ

## リソースファイル

- \`resources/railway-turso-guide.md\` - Railway Turso 詳細ガイド

Attribution

majiayu000majiayu000
View sourceSee grades on GitHubMore from majiayu000 →
SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Related Skills

Clean Code

Pragmatic coding standards - concise, direct, no over-engineering, no unnecessary comments

304955 votes

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

286712 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2222 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Writing Plans

Use when you have a spec or requirements for a multi-step task, before touching code

2927051 votes
View all in development →