Skip to content

Épico: forkar os demos OpenAnalytics → StrategicProjects, adaptar p/ Ruscker (sem SHINYPROXY_PUBLIC_PATH) + publicar no Docker Hub #389

@milkway

Description

@milkway

Objetivo

Forkar os demos da OpenAnalytics (github.com/openanalytics/shinyproxy-<app>-demo) para a org StrategicProjects, adaptá-los para o modelo de proxy do Ruscker e publicá-los no Docker Hub (namespace da org). O seed do showcase (db/showcase.rs) passa a apontar para os forks.

Por quê

Os demos foram feitos para o ShinyProxy, que injeta SHINYPROXY_PUBLIC_PATH e encaminha o path completo (não faz strip). O Ruscker faz STRIP do prefixo do mount e reescreve o lado-browser (/app rewriter + #348). Resultado: apps que dependem do SHINYPROXY_PUBLIC_PATH para se auto-prefixar quebram sob o Ruscker (Dash crasha no boot, FastAPI vaza host, etc.). Forkar nos dá controle para:

  • servir na raiz (requests_pathname_prefix=/, base_url=/, root_path vazio) sem depender de env de runtime;
  • ou honrar X-Forwarded-Prefix/X-Forwarded-Host quando fizer sentido;
  • branding/identidade Ruscker, versionamento próprio, e não depender de imagens de terceiros.

Convenção

  • GitHub: StrategicProjects/ruscker-<app>-demo (fork do upstream, preservando licença/atribuição).
  • Docker Hub: <org-namespace>/ruscker-<app>-demo:latest (definir o namespace Docker Hub da org — ghcr já é ghcr.io/strategicprojects/ruscker).
  • Cada fork: documentar a porta interna + que roda na raiz (sem SHINYPROXY_PUBLIC_PATH). CI para build+push multi-arch se possível (a maioria é amd64 hoje).

Apps (issue por app)

  1. Dash — PRIORIDADE (desbloqueia o card revertido no Demos Dash e Quarto presos em 'Starting…' — container nunca fica Ready (#367 follow-up) #372; elimina a dependência do SHINYPROXY_PUBLIC_PATH).
  2. FastAPI (resolve o vazamento de Host do FastAPI demo vaza host:porta interno (127.0.0.1:32800) nas URLs de assets — não carregam #373 com root_path/forwarded headers).
  3. Streamlit · 4. Voilà · 5. Quarto · 6. Shiny (R) · 7. Shiny for Python · 8. R Markdown.

(Jupyter e RStudio ficam de fora — imagens oficiais quay.io/jupyter e rocker/rstudio, já funcionam via base_url / X-RStudio-Root-Path.)

Done quando

Cada app tem fork em StrategicProjects + imagem no Docker Hub + o card do showcase aponta pra ela e funciona sob /box (validado no cast).

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:dockerruscker-docker crateenhancementNew feature or requestpriority:lowBacklog — nice-to-have, not blocking

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions