Version 18 (modified by btlogy, at 2024-10-09T13:23:49Z) (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 repository:
Scope
Goals and Requirements
- 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
- MUST replace the current landing page (start/home page from the Trac/Wiki?):
- preferably with a static blog/page generator updated from a Git repo (e.g.: (Go)Jekyll, Hugo)
- possibly with a LAMP stack as discussed: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3892
- 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
- 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
- A VPS (hosted by Hetzner) providing the following features powered by NixOS and Gitea:
- 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 terraform code allowing to manage the related DNS records (if Gandi supports it)
- 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
- 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
- Testing (PoC + migration step)
- VPS provided by Hetzner, mostly defined using Terraform code and deployed by pull request
- OS based on NixOS, defined using Nix code and deployed by pull request
- Redirections from legacy to new URLs: provided by Nginx, defined using Nix code and deployed by pull request
- Issues tracking and Wiki pages: provided by Gitea or Forgejo:
- https://code.lafs.eval.latfa.net/tahoe-lafs/trac-2024-07-25
- https://forge.lafs.eval.latfa.net/tahoe-lafs/trac
- Todos and 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
- spam mitigation measure required for self-registration (e.g.: OAuth with GitHub/GitLab?)
- Static website: provided by Nginx, build from Jekyll code and deployed by pull request
- source: https://code.lafs.eval.latfa.net/tahoe-lafs/web-landing-page
- preview: https://www.lafs.eval.latfa.net/
- live: https://www.lafs.eval.latfa.net/
- Todos and known issues:
- the mock is more minimalist and the PoC site have to be reworked this way
- the Hall of Fame pages till needs to be "migrated"
- Production: a) basic only: VPS + OS + NGinx to redirect legacy URLs to services hosted elsewhere b) complete: all features from the PoC above
Deliverable 2 - migration plan from Trac to self-hosted Gitea (or Forgejo)
- Tools and documentation can be found in https://github.com/tahoe-lafs/MoveOffTrac (WiP)
Deliverable 3 - high-level migration plan from self-hosted to an SaaS provider
- Testing (PoC)
- Issues and Wiki page have been migrated from Forgejo to Codeberg:
- Todos and known issues:
- all links to contributors are broken (likely because Codeberg does not allow this? maybe the user needs to be local and in the org first?! )
- all links to comments are broken (likely because they use the ID from the source!)
- all the link to attachment are broken
- Production
- TBD