joflux joflux GitHub to Forgejo migration

GitHub to Forgejo migration workflow

Move a GitHub org to Forgejo in one repeatable run.

joflux exports a GitHub inventory, starts Forgejo or Codeberg imports, monitors progress, verifies the target repositories, and archives the originals — writing JSON state you can inspect, retry, and keep as an audit trail.

Release details

Latest stable build information.

Loading... Version
--- Commit
--- Published
Release highlights
  • Loading release highlights...

What it does

A migration with a paper trail.

Inventory Export before you move

Review the exported GitHub repository list and filter forks or archived repos before any target-side import starts.

Migrate Forgejo-compatible imports

Start migrations into Codeberg or self-hosted Forgejo, then monitor queued jobs until every import settles.

Verify JSON state as audit trail

Each step writes readable state files for verification, retries, reporting, and clean handoff between operators.

Install paths

Get started with your preferred install method.

Recommended

macOS and Linux. Tracks stable releases through the Netspeedy tap.

brew tap netspeedy/joflux
brew install joflux

Install from source into a virtualenv. Works on any host with Python 3.11 or newer.

python3 -m venv .venv
source .venv/bin/activate
python -m pip install .

Keep tokens out of config files. Export them as environment variables before each run.

export JOFLUX_GITHUB_TOKEN="ghp_..."
export JOFLUX_FORGEJO_TOKEN="forgejo_..."