Skip to content

Download the code

Everything this site describes —the service, the panel, the CLI, these very pages— lives in one single public repository:

It is open because a module you cannot obtain is not a module.

This documentation used to hang off antisionista.cl, the first site that uses it, and moved here precisely because the docs belong to the component and not to whoever hosts it. A closed repo left half of that argument unfulfilled: the integration manual is written so that somebody who does not know this code can install it, and it began at a step that person could not execute.

Where it is

Repogitlab.com/pineiden/reply2fb
HTTPShttps://gitlab.com/pineiden/reply2fb.git
SSHgit@gitlab.com:pineiden/reply2fb.git
Main branchmain
Latest versionv0.1.0-rc.1 (2026-08-15) — downloads and notes
LicenceAGPL-3.0-or-later — see below

Downloading it

Clone it naming the destination directory. This is not cosmetic: the compose.yml in the integration manual points at ./reply2social/backend, and a git clone without a destination leaves you a reply2fb directory that does not match.

Ventana de terminal
git clone https://gitlab.com/pineiden/reply2fb.git reply2social
cd reply2social
Verify
Ventana de terminal
git log --oneline -1 # must show a commit
ls backend/Cargo.toml ui/core/package.json LICENSE

The three files must exist. If LICENSE is missing you are on an old clone: bring the changes in with git pull.

No GitLab account, no git

If you only want to read it or build it once, you need neither an account nor a git client:

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

That gets you main, which moves. If you are going to install it for real, download a tagged version instead of main — that is the next section.

Tagged versions

If you are installing this into something that matters to someone, do not install main: install a version. Each one has its entry in the CHANGELOG, which says what it ships and —more importantly— what it did not verify.

VersionDateWhat it isDownload
v0.1.0-rc.12026-08-15First tagged version. Release candidate: Instagram never ran against Meta. Notes.tar.gz · .zip

The always-current list: gitlab.com/pineiden/reply2fb/-/tags

With git:

Ventana de terminal
# See which versions exist
git tag --list --sort=-v:refname
# Stay on one
git checkout v0.1.0-rc.1

Without 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 is not a version. It moves, and it can break backwards compatibility without warning. If you are going to install from main anyway, write down the sha shown at /-/commits/main the day you downloaded it, and pin it with git checkout <sha>. Without a version marker, a green build may be running the previous code and nobody finds out.

What is inside

reply2social/
├── backend/ the service: Rust + Postgres, and the `reply2fb` CLI
│ ├── src/ poller, ingest, archive, emission, networks
│ ├── migrations/ the schema, in order
│ └── Dockerfile what the manual's compose builds
├── ui/
│ ├── core/ @reply2social/core — HTTP client + rules, framework-free
│ ├── svelte/ @reply2social/svelte — the eight screens
│ └── empaquetar.mjs generates the .tgz files of step 6.1
├── docs/ the design, the decisions and this site (docs/sitio/)
├── compose.yml the reference deployment
├── .env.example every variable, commented
├── CHANGELOG.md what each version ships, and what it did NOT verify
└── LICENSE AGPL-3.0

You do not need all of it. Depending on what you are doing:

If you want to…You only needContinue with
Run the service and talk to it over HTTP from your own front endbackend/, compose.yml, .env.exampleIntegrate, steps 0 to 5
Also mount the eight screensadd ui/Integrate, step 6
Understand how it is built before installing anythingdocs/ and this siteThe modules
Build these pages locallydocs/sitio/below
Build this documentation locally
Ventana de terminal
cd docs/sitio
npm ci
npm run build # builds and RUNS the verification
npm run dev # local server

npm run build does not end at astro build: afterwards it runs scripts/verificar.mjs, which fails if any page came out empty or if a diagram did not render. It exists because two diagrams with a syntax error were published as blank pages —with title, menu and footer, and nothing in between— and the build said “Complete”.

The licence: AGPL-3.0

reply2social is published under the GNU Affero General Public License, version 3 or later. The full text is in LICENSE, and it is also declared by backend/Cargo.toml and by both package.json files in ui/.

In practical terms:

You mayOn the condition of
Use it, for anything, commercially included
Study it and modify it
Install it on your site and run it
Redistribute it, modified or notpublishing the source code, under the same licence
Offer it as a network service, distributing nothingpublishing your modifications anyway to whoever uses it

Why AGPL and not MIT, nor even GPL.

That last row is the whole difference. Under the GPL, someone can take this code, modify it, and offer it as a hosted service without publishing a single line: they never distribute the binary, so the obligation never triggers. The AGPL closes that door — it is clause 13, “Remote Network Interaction”.

This is a service: it is exactly the case the GPL leaves open. And what the module does —archiving other people’s material and republishing it with permission— depends on its guards being auditable. A closed derivative running on somebody else’s server would be a system deciding about third-party material and about consents, that nobody can review.

Reporting something, or proposing a change

If you are reporting an integration failure, the most useful thing you can attach is which verification from the manual failed and what it returned. The manual is written so that every step has one: a bare “it doesn’t work” forces us to guess which of the eight silent failure modes it was.

Do not open a public issue containing a token, an encryption key or a .env. If you find a security problem, write privately to whoever maintains the repo instead of opening an issue.

And now