wiki:MoveOffTrac

Version 21 (modified by btlogy, at 2025-08-21T09:01:44Z) (diff)

--

Move Off Trac

The goal of this page is to cover the phases of a project aiming at moving some critical features from Trac to an other solution (or combination of).

More information about the start of this project can be found in ticket #4095.

Discussions also happened in Nuts&Bolts meetings: see from WeeklyMeeting#April22024.

In addition, and as mentioned in the deliverables, more details can be found in this dedicated MoveOffTrac repository.

Scope

Goals and Requirements

  1. MUST replace Trac as currently used for Ticket and Wiki by some alternative(s):
    • MUST look better: current UI looks old which makes the Tahoe-LAFS project looking dead
    • MUST be better maintained: Trac is dying? max 2 contributors per month - https://openhub.net/p/trac
    • MUST be easier to maintain: Trac is difficult to update (current = v1.0.13/2016-09-11, latest = v1.6.0/2023-09-23)?
    • MUST allow Self-Registration (Trac requires manual registration via email)
    • COULD support OAuth2 with Github?
    • MUST be (F)OSS
    • MUST be self-hostable
      • note "able": MUST be a story for getting to a self-hosted instance if we want
      • ..but doesn't have to be self-hosted right away
  2. MUST replace the current landing page (start/home page from the Trac/Wiki?):
  3. MUST replace the current binary repository for Tahoe-LAFS releases (https://tahoe-lafs.org/downloads)
    • by providing at least a similar way to transfer files via ssh
  4. COULD be used to replace:
    • Github code hosting and review (pull request), keeping only a mirrored clone
    • Github Actions (to avoid leaving secrets in environment variables)
    • Circle CI (to avoid giving them too many permissions)

Inclusions

  • Trac users of the Tahoe-LAFS project
  • Trac issues of the Tahoe-LAFS project
  • Trac wiki pages of the Tahoe-LAFS project
  • Trac HTML home page of the Tahoe-LAFS project
  • Hall of Fame HTML page of the Tahoe-LAFS project
  • The related DNS records (mostly: tahoe-lafs.org)

Exclusions

  • Other Trac projects (see DevInfra)
  • Buildbot master instances for some other Trac projects
  • DARCS SCM for some of the other Trac projects
  • Any other services provided by the current server and not yet documented in DevInfra

Deliverables

  1. A VPS (hosted by Hetzner) providing the following features powered by NixOS and Gitea or Forgejo:
    • a tracking system provisioned with the issues migrated from Trac (same numbers)
    • a Wiki system provisioned with the relevant pages migrated from Trac (same names)
    • a static website replacing the landing page from Trac with the code required for CI and CD
    • a blog post for the Hall of Fame page (if sensible - fallback = static page)
    • a (Git) repository defining the VPS it-self and its configuration as code (including the secrets using sops)
    • optionally including the ToFu code allowing to manage the related DNS records (if Gandi supports it)
  2. A detailed migration plan to handle the transition (DNS changes and/or redirections)
    • documented in a this wiki page
    • covering the possible manual steps related to DNS records, HTTP redirections or URL rewriting
    • with a (Git) repository including/referring to the tools used to actually migrate
  3. An high-level migration plan for the features hosted on the VPS described to be later hosted on CodeBerg SaaS (assuming it is possible)
    • documented in this wiki page too

Deliverable 1 - self-hosted server

  1. DONE - Testing/PoC (retired):
  2. IN PROGRESS - Production:
    1. PENDING - Website only: VPS + OS + NGinx + website + redirect/proxy rules to legacy resources
    2. PENDING - All features from the PoC above: issues and wiki hosted by Forgejo
      • ⏸️ Steps described in #4161 (will require new data dump from Trac)
      • ➕ Known issues (#1170 is a good example):
        • tables are not correctly converted to MD
        • some original links are still not converted and points to tahoe-lafs.org (e.g.: http://!?)
        • authors need to be created as user before the migration to link contributions to their profile

Deliverable 2 - migration plan from Trac to self-hosted Gitea or Forgejo

Deliverable 3 - high-level migration plan from self-hosted to an SaaS provider

  1. DONE - Migration of the Forgejo repository/ies:
    • ✅ Plan:
      1. Sign-in to Forgejo and create an API token on Forgejo with Read access on repositories own by the Tahoe-LAFS org
      2. Sign-in to CodeBerg as a member of the Tahoe-LAFS org
      3. Use the migration tool on CodeBerg to migrate the repository/ies from Forgejo
      4. Archive the migrated repository/ies on Forgejo
    • ✅ PoC (examples):
      • Issues and Wiki pages originally hosted on Trac (archived)
        • Outcome: https://codeberg.org/Tahoe-LAFS/trac-2024-07-25
        • Caveats:
          • all links to contributors are broken (likely because CodeBerg will not allow this)
          • all links to comments are broken (likely because they use the ID from the source!)
          • all the link to attachment are broken (likely because the migration tool does not cover them - yet)
      • Code, issues, pull requests and CI/CD of the new static website (archived)
  2. IN PROGRESS - Migration of the static website
    • ▶️ Prospects:
      1. CodeBerg Pages, which will break legacy links (e.g. from GitHub)
      2. StaticHost, which might support redirect/proxy rules and avoid broken links.