返回技能列表

deploy-shiny-app

pjt222
更新于 2 days ago
5 次查看
17
2
17
在 GitHub 上查看
文档ai

关于

This skill deploys Shiny applications to shinyapps.io, Posit Connect, or as Docker containers. It handles authentication, dependency management, and post-deployment verification to create a reproducible pipeline. Use it when you need to share an app with a broader audience or establish a reliable deployment workflow.

快速安装

Claude Code

推荐
主要方式
npx skills add pjt222/agent-almanac -a claude-code
插件命令备选方式
/plugin add https://github.com/pjt222/agent-almanac
Git 克隆备选方式
git 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-connect oder docker
  • 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:

  1. App-URL im Browser öffnen
  2. Alle interaktiven Elemente testen (Inputs, Buttons, Downloads)
  3. Browser-Konsole auf JavaScript-Fehler prüfen
  4. 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 Deployment
  • test-shiny-app — App testen vor Deployment
  • deploy-shinyproxy — Multi-App-Hosting mit Docker und ShinyProxy
  • optimize-shiny-performance — Performance vor Deployment optimieren

GitHub 仓库

pjt222/agent-almanac
路径: i18n/de/skills/deploy-shiny-app
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

相关推荐技能

railway-docs

文档

Railway Docs Skill可实时获取最新的Railway官方文档,确保回答的准确性。当开发者询问Railway功能特性、工作原理或分享docs.railway.com链接时,应优先使用此技能。它通过专门的LLM优化文档源提供最新信息,避免依赖过时记忆来回答技术问题。

查看技能

n8n-code-python

文档

该Skill为在n8n平台的Python代码节点中编写代码提供专家指导,特别适用于需要使用_input/_json/_node语法、Python标准库或了解n8n中Python限制的场景。它强调JavaScript应作为首选方案,仅当需要特定Python功能或对Python语法更熟悉时才使用Python。Skill提供了快速入门模板和关键注意事项,帮助开发者在n8n中高效编写Python代码。

查看技能

archon

文档

Archon Skill为开发者提供了基于RAG的语义搜索和项目任务管理功能,可通过REST API访问知识库。它支持文档搜索、网站爬取、文件上传和版本控制,适用于技术文档查询和项目管理场景。首次使用时需要配置Archon主机地址,建议在处理外部文档时优先使用该Skill。

查看技能

n8n-code-javascript

文档

这个Skill为n8n工作流中的JavaScript代码节点提供专业指导,涵盖数据处理、HTTP请求和日期操作等核心场景。它详细解释了如何正确使用n8n特有的`$input`/`$json`语法、`$helpers`工具以及DateTime对象,并包含关键的错误排查和模式选择建议。开发者通过该Skill能快速掌握Code节点的正确返回格式、数据访问方法和常见陷阱解决方案。

查看技能