deploy-shiny-app
について
このスキルは、Shinyアプリケーションをshinyapps.io、Posit Connect、またはDockerコンテナとしてデプロイします。認証処理、依存関係管理、デプロイ後の検証を扱い、再現可能なパイプラインを構築します。より広い観客にアプリを共有する必要がある場合や、信頼性の高いデプロイワークフローを確立する際にご利用ください。
クイックインストール
Claude Code
推奨npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/deploy-shiny-appこのコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします
ドキュメント
name: deploy-shiny-app description: > Shiny-Anwendungen auf shinyapps.io, Posit Connect oder als Docker-Container deployen. Behandelt Authentifizierung, Dependency-Management, Deployment- Konfiguration und Post-Deployment-Verifikation. Verwenden, wenn eine Shiny- App einem breiteren Publikum zugänglich gemacht oder eine reproduzierbare Deployment-Pipeline eingerichtet werden soll. license: MIT locale: de source_locale: en source_commit: 6f65f316 translator: claude-opus-4-6 translation_date: 2026-03-16 allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: shiny complexity: basic language: R tags: shiny, deployment, shinyapps, posit-connect, docker
Shiny-App deployen
Eine Shiny-App auf shinyapps.io, Posit Connect oder als Docker-Container für den Produktionseinsatz deployen.
Wann verwenden
- Shiny-App einem breiteren Publikum zugänglich machen (nicht nur lokal)
- Produktions-Deployment-Pipeline einrichten
- App von einer Plattform auf eine andere migrieren
- Deployment-Prozess für Updates automatisieren
Eingaben
- Erforderlich: Laufende Shiny-App (lokal getestet)
- Erforderlich: Deployment-Plattform:
shinyapps.io,posit-connectoderdocker - Optional: Benutzerdefinierte App-URL/Name
- Optional: Ressource-Limits (RAM, CPU für Posit Connect)
Vorgehensweise
Schritt 1: Dependencies verifizieren
Sicherstellen, dass alle App-Dependencies deklariert sind.
# Alle Packages die App verwendet auflisten
renv::dependencies("app.R")
# Oder für golem-Pakete:
renv::dependencies(".")
# renv-Lockfile erstellen/aktualisieren
renv::snapshot()
DESCRIPTION-Datei (für golem-Pakete) prüfen:
Imports:
shiny,
dplyr,
ggplot2
Erwartet: Alle Dependencies dokumentiert. renv.lock oder DESCRIPTION up-to-date.
Bei Fehler: Wenn fehlende Packages nach dem Deployment auftreten, renv::dependencies() erneut ausführen und fehlende Packages zur DESCRIPTION hinzufügen.
Schritt 2a: Auf shinyapps.io deployen
rsconnect einrichten und auf shinyapps.io deployen.
install.packages("rsconnect")
# Authentifizierung (von shinyapps.io Dashboard kopieren)
# Account → Tokens → Add Token → Show → Copy to Clipboard
rsconnect::setAccountInfo(
name = "dein-account-name",
token = "DEIN_TOKEN",
secret = "DEIN_SECRET"
)
# Deployen
rsconnect::deployApp(
appDir = ".", # App-Verzeichnis
appName = "meine-app", # URL-Name (muss eindeutig sein)
forceUpdate = TRUE # Bestehende Deployment überschreiben
)
App-URL nach Deployment: https://dein-account-name.shinyapps.io/meine-app/
Erwartet: Deployment-Logs zeigen erfolgreiche Paket-Installation und App-Start. URL zugänglich im Browser.
Bei Fehler: Wenn Deployment fehlschlägt mit "package not found", das fehlende Package zur App-Verzeichnis-renv.lock hinzufügen. Deployment-Logs für spezifische Package-Fehler prüfen.
Schritt 3: Post-Deployment-Verifikation
Das erfolgreiche Deployment und App-Verhalten prüfen.
# Deployment-Status prüfen
rsconnect::showLogs(appName = "meine-app")
# App-Informationen abfragen
rsconnect::appInfo(appName = "meine-app")
Manuell verifizieren:
- App-URL im Browser öffnen
- Alle interaktiven Elemente testen (Inputs, Buttons, Downloads)
- Browser-Konsole auf JavaScript-Fehler prüfen
- App-Logs im Plattform-Dashboard prüfen
Erwartet: App läuft korrekt auf deployed URL. Keine Fehler in Logs.
Bei Fehler: Bei Laufzeitfehlern in Deployment-Logs, fehlende Systembibliotheken oder R-Package-Versions-Konflikte prüfen. Lokale R-Version muss Deployment-Umgebung entsprechen.
Schritt 4: Deployment-Workflow dokumentieren
Deployment-Prozess für zukünftige Updates dokumentieren.
# deploy.R (Deployment-Skript)
# Deployment-Konfiguration
APP_NAME <- "meine-app"
APP_DIR <- "."
# Dependencies prüfen
cat("Checking dependencies...\n")
renv::status()
# Auf shinyapps.io deployen
cat("Deploying to shinyapps.io...\n")
rsconnect::deployApp(
appDir = APP_DIR,
appName = APP_NAME,
forceUpdate = TRUE,
launch.browser = FALSE
)
cat("Deployment complete!\n")
cat(sprintf("URL: https://account.shinyapps.io/%s/\n", APP_NAME))
Erwartet: Rscript deploy.R führt vollständiges Deployment aus.
Bei Fehler: Wenn Skript auf Authentifizierungsfehler stößt, rsconnect-Credentials über rsconnect::setAccountInfo() neu setzen.
Validierung
- Alle App-Dependencies in renv.lock oder DESCRIPTION dokumentiert
- rsconnect-Authentifizierung erfolgreich konfiguriert
- App-URL zugänglich und lädt korrekt
- Alle interaktiven Features funktionieren auf deployed App
- Logs zeigen keine Fehler
- Deployment-Skript dokumentiert für zukünftige Updates
Haeufige Stolperfallen
- Nicht deklarierte Dependencies: Packages müssen explizit in renv.lock oder DESCRIPTION aufgelistet sein — lokale Paket-Bibliothek wird nicht migriert.
- R-Versions-Mismatch: shinyapps.io läuft auf bestimmten R-Versionen. Lokale R-Version abgleichen oder Kompatibilität prüfen.
- Secrets in Code: API-Keys oder Passwörter niemals hardcoden. Umgebungsvariablen in Plattform-Dashboard setzen.
- App-Größenbeschränkungen: shinyapps.io hat 1-GB-Limit pro App. Große Datendateien extern hosten (z. B. S3, Google Drive).
- Inaktivitäts-Timeout: Auf kostenlosem shinyapps.io-Tier gehen Apps nach Inaktivität schlafen. Für produktive Apps upgraden.
- Gleichzeitige Verbindungen: Kostenloser Tier erlaubt 5 gleichzeitige Verbindungen. Für mehr Traffic Paid-Plan erforderlich.
Verwandte Skills
scaffold-shiny-app— App scaffolden vor Deploymenttest-shiny-app— App testen vor Deploymentdeploy-shinyproxy— Multi-App-Hosting mit Docker und ShinyProxyoptimize-shiny-performance— Performance vor Deployment optimieren
GitHub リポジトリ
関連スキル
railway-docs
ドキュメントこのスキルは、Railwayの機能や仕様、特定のドキュメントURLに関する質問に答えるために、最新のRailwayドキュメントを取得します。開発者がRailwayの公式情報源から正確かつ最新の情報を直接受け取れるようにします。ユーザーがRailwayの動作方法について尋ねたり、Railwayドキュメントを参照する際にご利用ください。
n8n-code-python
ドキュメントこのClaudeスキルは、n8nのコードノードでPythonコードを記述するための専門的なガイダンスを提供します。具体的には、Pythonの標準ライブラリの使用方法や、`_input`、`_json`、`_node`といったn8n独自の構文の扱い方を解説します。n8n環境内におけるPythonの制限事項を開発者が理解できるよう支援し、ほとんどのワークフローではJavaScriptの使用を推奨しながらも、特定のデータ変換ニーズに対応するPythonソリューションを提案します。
archon
ドキュメントArchonスキルは、RAGを活用したセマンティック検索とプロジェクト管理をREST APIを通じて提供します。ドキュメントの検索、階層的なプロジェクト/タスクの管理、ドキュメントアップロード機能を備えたナレッジ検索の実行にご利用いただけます。外部ドキュメントを検索する際は、他の情報源を利用する前に常にArchonを最優先で使用してください。
n8n-code-javascript
ドキュメントこのClaudeスキルは、n8nのCodeノードでJavaScriptコードを書くための専門的なガイダンスを提供します。`$input`/`$json`変数、HTTPヘルパー、DateTime処理などの重要なn8n固有の構文を網羅し、一般的なエラーのトラブルシューティングも行います。CodeノードでカスタムJavaScript処理を必要とするn8nワークフローを開発する際にご利用ください。
