Saltearse al contenido

Descargar el código

Todo lo que explica este sitio —el servicio, el panel, la CLI, estas mismas páginas— vive en un solo repositorio, público:

Está abierto porque un módulo que no se puede obtener no es un módulo.

Esta documentación colgaba de antisionista.cl, el primer sitio que lo usa, y se mudó acá justamente porque las docs son del componente y no de quien lo hospeda. Un repo cerrado dejaba la mitad del argumento sin cumplir: el manual de integración está escrito para que alguien que no conoce este código lo instale, y empezaba en un paso que esa persona no podía ejecutar.

Dónde está

Repogitlab.com/pineiden/reply2fb
HTTPShttps://gitlab.com/pineiden/reply2fb.git
SSHgit@gitlab.com:pineiden/reply2fb.git
Rama principalmain
Última versiónv0.1.0-rc.1 (2026-08-15) — descargas y notas
LicenciaAGPL-3.0-or-later — ver abajo

Bajarlo

Cloná nombrando el directorio de destino. No es cosmético: el compose.yml del manual de integración apunta a ./reply2social/backend, y un git clone sin destino te deja un directorio reply2fb que no coincide.

Ventana de terminal
git clone https://gitlab.com/pineiden/reply2fb.git reply2social
cd reply2social
Verificar
Ventana de terminal
git log --oneline -1 # tiene que mostrar un commit
ls backend/Cargo.toml ui/core/package.json LICENSE

Los tres archivos tienen que existir. Si LICENSE no está, estás en un clon viejo: traé los cambios con git pull.

Sin cuenta de GitLab, sin git

Si sólo querés leerlo o construirlo una vez, no hace falta ni cuenta ni cliente de git:

Ventana de terminal
curl -L -o reply2social.tar.gz \
https://gitlab.com/pineiden/reply2fb/-/archive/main/reply2fb-main.tar.gz
tar xzf reply2social.tar.gz
mv reply2fb-main reply2social

Eso te baja main, que avanza. Si vas a instalarlo en serio, bajá una versión etiquetada en vez de main — es la sección que sigue.

Versiones etiquetadas

Si lo vas a instalar en algo que le importa a alguien, no instales main: instalá una versión. Cada una tiene su entrada en el CHANGELOG, que dice qué trae y —más importante— qué no verificó.

VersiónFechaQué esDescargar
v0.1.0-rc.12026-08-15Primera versión etiquetada. Release candidate: Instagram nunca corrió contra Meta. Notas.tar.gz · .zip

La lista siempre al día: gitlab.com/pineiden/reply2fb/-/tags

Con git:

Ventana de terminal
# Ver qué versiones hay
git tag --list --sort=-v:refname
# Quedarse en una
git checkout v0.1.0-rc.1

Sin git:

Ventana de terminal
curl -L -o reply2social-v0.1.0-rc.1.tar.gz \
https://gitlab.com/pineiden/reply2fb/-/archive/v0.1.0-rc.1/reply2fb-v0.1.0-rc.1.tar.gz
tar xzf reply2social-v0.1.0-rc.1.tar.gz
mv reply2fb-v0.1.0-rc.1 reply2social

main no es una versión. Avanza, y puede romper hacia atrás sin aviso. Si aun así vas a instalar de main, anotá el sha que dice /-/commits/main el día que lo bajaste, y fijalo con git checkout <sha>. Sin una marca de versión, un build en verde puede estar corriendo el código de antes y nadie se entera.

Qué hay adentro

reply2social/
├── backend/ el servicio: Rust + Postgres, y la CLI `reply2fb`
│ ├── src/ poller, ingesta, archivo, emisión, redes
│ ├── migrations/ el esquema, en orden
│ └── Dockerfile lo que construye el compose del manual
├── ui/
│ ├── core/ @reply2social/core — cliente HTTP + reglas, sin framework
│ ├── svelte/ @reply2social/svelte — las ocho pantallas
│ └── empaquetar.mjs genera los .tgz del paso 6.1
├── docs/ el diseño, las decisiones y este sitio (docs/sitio/)
├── compose.yml el despliegue de referencia
├── .env.example todas las variables, comentadas
├── CHANGELOG.md qué trae cada versión, y qué NO verificó
└── LICENSE AGPL-3.0

No necesitás todo. Según lo que vayas a hacer:

Si querés…Te alcanza conSeguí por
Correr el servicio y hablarle por HTTP desde tu propio frontbackend/, compose.yml, .env.exampleIntegrar, pasos 0 a 5
Además montar las ocho pantallasagregá ui/Integrar, paso 6
Entender cómo está hecho antes de instalar nadadocs/ y este sitioLos módulos
Construir estas páginas localmentedocs/sitio/abajo
Construir esta documentación localmente
Ventana de terminal
cd docs/sitio
npm ci
npm run build # construye y CORRE la verificación
npm run dev # servidor local

npm run build no termina en astro build: después corre scripts/verificar.mjs, que falla si alguna página quedó vacía o si un diagrama no renderizó. Existe porque dos diagramas con un error de sintaxis se publicaron como páginas en blanco —con título, menú y pie, y nada en el medio— y el build dijo «Complete».

La licencia: AGPL-3.0

reply2social se publica bajo la GNU Affero General Public License, versión 3 o posterior. El texto completo está en LICENSE, y lo declaran también backend/Cargo.toml y los dos package.json de ui/.

En términos prácticos:

PodésCon la condición de
Usarlo, para lo que sea, incluso comercialmente
Estudiarlo y modificarlo
Instalarlo en tu sitio y correrlo
Redistribuirlo, modificado o nopublicar el código fuente, bajo la misma licencia
Ofrecerlo como servicio por red, sin distribuir nadapublicar igual tus modificaciones a quien lo use

Por qué AGPL y no MIT, ni siquiera GPL.

La última fila es toda la diferencia. Con GPL, alguien puede tomar este código, modificarlo, y ofrecerlo como servicio alojado sin publicar una línea: nunca distribuye el binario, así que la obligación no se activa. La AGPL cierra esa puerta — es la cláusula 13, «Remote Network Interaction».

Esto es un servicio: es exactamente el caso que la GPL deja abierto. Y lo que el módulo hace —archivar material de otros y republicarlo con permiso— depende de que sus guardas se puedan auditar. Un derivado cerrado corriendo en un servidor ajeno sería un sistema que decide sobre material de terceros y sobre consentimientos, y que nadie puede revisar.

Reportar algo, o proponer un cambio

Si vas a reportar un fallo de integración, lo más útil que podés adjuntar es qué verificación del manual falló y qué devolvió. El manual está escrito para que cada paso tenga una: un «no me anda» sin eso obliga a adivinar cuál de las ocho formas de fallar en silencio fue.

No abras un issue público con un token, una clave de cifrado ni un .env. Si encontrás un problema de seguridad, escribí en privado a quien mantiene el repo en vez de abrir un issue.

Y ahora