Skip to main content
[ PIER ]

Repositorio Público (Git)

Despliega desde cualquier URL Git pública — clona, build, ship.

Application #git#github#gitlab#public#repository

Apunta Pier a un repositorio Git público (GitHub, GitLab, Bitbucket, Codeberg, Gitea, donde sea) y Pier lo clona, construye vía el Dockerfile en el repo y corre el contenedor resultante. Webhook-friendly para push-to-deploy. La plantilla más simple "tengo un repo, despliégalo" para código open-source.

Desplegar con Pier

  1. 1 Abre el panel de Pier y haz clic en Add service.
  2. 2 Elige Public Repository en la lista de plantillas.
  3. 3 Elige la versión, asigna un nombre al servicio y Pier provisionará automáticamente el contenedor, el almacenamiento y los puertos.
  4. 4 Vincula un dominio si quieres HTTPS. Traefik genera el certificado de Let's Encrypt automáticamente.

¿Qué es la plantilla Public Repository?

Dale a Pier un Git URL público más el path Dockerfile dentro del repo, y Pier clona el repositorio, construye la imagen, corre el contenedor y lo fronts con Traefik. La integración webhook estándar significa que cada git push al branch monitoreado triggea un fresh build y redeploy.

Úsalo para cualquier repo público con Dockerfile — tus propios proyectos open-source, proyectos third-party que quieres self-host, forks, sitios de documentación que construyen a un contenedor, etc.

Cómo lo despliega Pier

Proveés:

  • Una Git URL pública (HTTPS clone URL)
  • Un branch (o tag / commit SHA)
  • El path al Dockerfile dentro del repo (defaults a /Dockerfile)
  • El puerto del contenedor y cualquier env vars

Pier realiza un shallow clone del branch configurado, corre docker buildx build contra el Dockerfile, almacena la imagen localmente y arranca un contenedor con tus env / puertos / volúmenes configurados. Caché de capas BuildKit hace rebuilds incrementales rápidos.

Adjunta un dominio custom en Pier para HTTPS vía Traefik. Genera un webhook URL desde service settings y agrégalo a tu Git host para que pushes futuros auto-desplieguen.

Cuándo NO usar esta plantilla

Para repos privados, usa git-private-key (SSH deploy key) o git-github-app (GitHub App auth). Para repos sin Dockerfile, usa Railpack — auto-detecta y construye. Para contenedores inline Dockerfile one-off sin repo, usa la plantilla Dockerfile. Para imágenes prebuilt ya en un registry, usa Docker Image.

Características clave

Cualquier host Git público

GitHub, GitLab, Bitbucket, Codeberg, sourcehut, Gitea/Forgejo autohospedado — cualquier cosa con URL HTTPS clonable públicamente funciona.

Build driven por Dockerfile

Pier busca el Dockerfile en el path configurado (default root del repo) y construye con BuildKit. Mismo engine que la plantilla Dockerfile.

Selección de branch + path

Elige el branch y (para monorepos) el path al Dockerfile dentro del repo.

Webhook redeploys

Pier genera un webhook URL; agrégalo como webhook en el Git host y cada push triggea rebuild + rollout.

HTTPS vía Traefik

Adjunta un dominio custom y Pier fronts el contenedor corriendo con Let's Encrypt TLS.

Caché BuildKit

Builds repetidos usan caché de capa de BuildKit; rebuilds incrementales típicos terminan en 10-30 segundos.

Casos de uso

Deploys de proyectos open-source

Despliega cualquier proyecto OSS que encuentres en GitHub con un Dockerfile. Pier maneja el build + host.

Tus propios repos públicos

Repo público (e.g. tu sitio de portfolio, una API personal) — Pier clona, construye, despliega.

Sitios de documentación

Un repo con un sitio de docs Dockerfile-buildable (Astro, Docusaurus, Hugo, mdBook). Pier construye y sirve el resultado.

Demos para compartir rápido

Comparte un Git URL con un colega que quiere probar el proyecto — lo pega en Pier y lo tiene corriendo.

Workflows fork-and-deploy

Fork un proyecto upstream, push tweaks a tu fork, despliega tu fork vía Pier con webhook redeploys.

Ejemplos de código

Despliega repo GitHub público text
Service name - my-app
Git URL - https://github.com/user/repo
Branch - main
Dockerfile path - /Dockerfile
Port - 3000
→ Pier clona, construye, despliega
Monorepo — Dockerfile en subfolder text
Git URL - https://github.com/myorg/monorepo
Branch - main
Dockerfile path - /services/api/Dockerfile
Port - 8000
Webhook GitHub para push-to-deploy text
Pier Service → Settings → Copy webhook URL
GitHub repo → Settings → Webhooks → Add -
  URL - https://pier.example.com/webhook/abcd1234
  Content type - application/json
  Events - Just the push event
→ Cada push a "main" triggea redeploy
Pin a tag text
Branch - v1.4.0     # tags funcionan en el campo branch
→ Pier checks out el tag; sin updates sorpresa

Comparativa

vs Plantilla Dockerfile (pega inline) Usa Public Repository para código que iterarás (webhook redeploys). Usa Dockerfile (pega) para contenedores one-off sin repo.
vs Repos privados (deploy-key / github-app templates) Usa esas plantillas cuando el repo no es clonable públicamente. Public Repository es el path más simple cuando no necesitas auth.
vs Railpack Railpack también toma un Git URL pero skip el Dockerfile — auto-detecta el lenguaje. Usa Public Repository cuando el repo tiene un Dockerfile que quieres que Pier use; usa Railpack cuando no.
vs Docker Image (este catálogo) Image corre una imagen prebuilt. Public Repository construye desde source. Puntos diferentes en el pipeline.

Preguntas frecuentes

¿Qué hosts Git funcionan?
Cualquier cosa con URL HTTPS clonable públicamente. GitHub, GitLab, Bitbucket, Codeberg, sr.ht, Gitea, Forgejo, incluso instancias raw cgit.
¿Cómo despliego commit / tag específico?
Pon el tag name (e.g. v1.2.3) o commit SHA en el campo "Branch" — Pier lo checks out.
¿Qué tan grande puede ser el repo?
Pier hace un shallow clone (depth 1) así que incluso historias grandes clonan rápido. Trees de trabajo multi-GB pueden lentar context upload a BuildKit; mantén .dockerignore afilado.
¿Build args?
UI Pier tiene un campo "Build args" — pasado a docker build como --build-arg.
¿Env vars runtime?
Misma UI que otras plantillas — tab env en el servicio.
¿Múltiples servicios desde un repo?
Crea múltiples servicios Pier apuntando a la misma Git URL con diferentes paths de Dockerfile y puertos.
¿Cómo funciona el webhook?
Pier genera un webhook URL único por servicio. POST a él triggea fresh clone + build + redeploy. Sin verificación de signature de payload (aún); trata el URL como secret.

Servicios relacionados

Desplegar en tu VPS

Apunta Pier a un repositorio Git público (GitHub, GitLab, Bitbucket, Codeberg, Gitea, donde sea) y Pier lo clona, construye vía el Dockerfile en el repo y corre el contenedor resultante. Webhook-friendly para push-to-deploy. La plantilla más simple "tengo un repo, despliégalo" para código open-source.

Desplegar este servicio →