Changes between Version 25 and Version 26 of MoveOffTrac
- Timestamp:
- 2025-08-22T08:02:45Z (3 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
MoveOffTrac
v25 v26 72 72 * ✅ Redirections from legacy to new URLs: provided by Nginx, defined using Nix code and deployed by pull request 73 73 * ✅ Issues tracking and Wiki pages: provided by Gitea or Forgejo: 74 * https://code.lafs.eval.latfa.net/tahoe-lafs/trac-2024-07-25 75 * https://forge.lafs.eval.latfa.net/tahoe-lafs/trac 74 * https://code.lafs.eval.latfa.net/tahoe-lafs/trac-2024-07-25 (retired) 75 * https://forge.lafs.eval.latfa.net/tahoe-lafs/trac (retired) 76 76 * ✅ Static website: provided by Nginx, build from Jekyll code and deployed by pull request 77 * source: https://code.lafs.eval.latfa.net/tahoe-lafs/web-landing-page 78 * preview: https://www.lafs.eval.latfa.net/ 79 * live: https://www.lafs.eval.latfa.net/ 77 * source: https://code.lafs.eval.latfa.net/tahoe-lafs/web-landing-page (retired) 78 * preview: https://www.lafs.eval.latfa.net/ (retired) 79 * live: https://www.lafs.eval.latfa.net/ (retired) 80 80 2. **IN PROGRESS** - Production (details in #4161): 81 81 1. **COMPLETED** - VPS only … … 88 88 * ✅ Credentials shared via [https://github.com/tahoe-lafs/infrastructure sops] and [https://github.com/tahoe-lafs/infrastructure-pass pass] repositories 89 89 * ✅ Forgejo with basic its requirements (DB and mailer) managed from Nix code 90 * ✅ Forgejo configured with SSO, a [https://forge.of.tahoe-lafs.org/ Tahoe-LAFS] org and some well-known users90 * ✅ Forgejo configured with OAuth2 SSO with !CodeBerg, !GitHub and !GitLab, a [https://forge.of.tahoe-lafs.org/ Tahoe-LAFS] org and some well-known users 91 91 2. **PENDING** - Website only with redirect/proxy rules to legacy resources 92 92 * ✅ web-landing-page source code with CI/CD up and running on [https://forge.of.tahoe-lafs.org/Tahoe-LAFS/web-landing-page Tahoe-LAFS/web-landing-page] 93 93 * ✅ web-landing-page with redirect/proxy rules hosted on `webforge` and managed from Nix code - https://home.of.tahoe-lafs.org/ 94 94 * ⌛ Manual update of DNS records to expose the web-landing-page (see #4183) 95 * ➕ the Hall of Fame pages still needs to be "migrated" as a post of a page95 * ⏹️ Migrate the Hall of Fame as a post or a page (not worked on) 96 96 3. **TODO** - Issues and wiki hosted by Forgejo 97 97 * ⛔ Extract the Trac data and reconfiguration in RO via direct access to the legacy server 98 * ⏸️ WORKAROUND: asynchronous extraction of Trac data via Meejah 98 * ⏸️ WORKAROUND: asynchronous extraction of Trac data via Meejah and avoid POST via proxy rules 99 99 * ⏸️ Rework the redirect/proxy rules from Nix code to expose Forgejo instead of Trac 100 * ⏸️ Execute the migration plan as described in Deliverable 2 101 4. **TODO** - Other resources from the Linode 102 * ⏹️ Replace the current binary repository for Tahoe-LAFS releases (not worked on) 100 103 101 == Deliverable 2 - migration plan from Trac to self-hosted Gitea orForgejo ==104 == Deliverable 2 - detailed migration plan from Trac to self-hosted Forgejo == 102 105 103 106 * Requirements: 104 * Code: [https://github.com/tahoe-lafs/MoveOffTrac MoveOffTrac] and [https://github.com/tahoe-lafs/trac2gitea trac2gitea] sub module107 * Code: [https://github.com/tahoe-lafs/MoveOffTrac MoveOffTrac] and [https://github.com/tahoe-lafs/trac2gitea trac2gitea] sub-module 105 108 * Credentials: 106 109 * SSH key to access Trac data on Linode server … … 118 121 9. Archive the Trac data `tar -czvf <dump_file> <dump_dir>` 119 122 2. On a workstation: 120 1. Checkout [https://github.com/tahoe-lafs/MoveOffTrac MoveOffTrac] and [https://github.com/tahoe-lafs/trac2gitea trac2giteam] sub module (e.g. in `~/MoveOffTrac`)123 1. Checkout [https://github.com/tahoe-lafs/MoveOffTrac MoveOffTrac] and [https://github.com/tahoe-lafs/trac2gitea trac2giteam] sub-module (e.g. in `~/MoveOffTrac`) 121 124 1. Restore the dump with `tar -C trac/project -xzvf <dump_file> --strip-components=1` 122 125 2. Adapt or patch the configuration with `patch trac/project/conf/trac.ini < helpers/trac.ini.patch` if needed … … 126 129 6. Edit the WikiStart page to replace link: `/~trac/` -> `../chrome/site/` or transform them as attachment if needed 127 130 3. On the Forgejo server: 128 1. Checkout [https://github.com/tahoe-lafs/MoveOffTrac MoveOffTrac] and [https://github.com/tahoe-lafs/trac2gitea trac2giteam] sub module (e.g. in `~/MoveOffTrac`)131 1. Checkout [https://github.com/tahoe-lafs/MoveOffTrac MoveOffTrac] and [https://github.com/tahoe-lafs/trac2gitea trac2giteam] sub-module (e.g. in `~/MoveOffTrac`) 129 132 2. Create an empty repository and (e.g. `trac`) and disable unwanted features (e.g. Unit/Code) 130 133 3. Create an empty Wiki home page in the repository prepared above 131 134 4. Build trac2gitea using the instructions provided (in [https://github.com/tahoe-lafs/trac2gitea trac2gitea]) 132 135 5. Transfer the Trac project directory from the workstation (previous sextion) (e.g.: in `~/MoveOffTrac/trac/project`) 133 6. Remote: migrate the Trac project to Forgejo:136 6. Migrate the Trac project to Forgejo: 134 137 {{{ 135 138 export TOKEN=<token> … … 139 142 sudo ./trac2gitea/trac2gitea --app-ini /var/lib/forgejo/custom/conf/app.ini --wiki-only --wiki-token=$TOKEN --wiki-dir=/tmp/$REPO trac/project /var/lib/forgejo $OWNER $REPO 140 143 }}} 141 7. Re mote: `systemctl start forgejo.service`144 7. Restart Forgejo: `systemctl start forgejo.service` 142 145 * Caveats: 143 * migration works only with sqlite DB!144 146 * tables are not always correctly converted to MD (e.g. #1170 - possibly wrongly formatted) 145 147 * some original links are still not converted and points to tahoe-lafs.org (e.g. http://!?) 146 * tickets authors need to be created as user before the migration to link contributions to their profile 147 * changes history of wiki pages will be not be linked to their authors 148 * tickets authors need to be created as user before the migration to link contributions to their profile on Forgejo 149 * changes history of wiki pages will be not be linked to their authors profile on Forgejo (just their name from Trac) 148 150 149 151 == Deliverable 3 - high-level migration plan from self-hosted to an SaaS provider == 150 152 151 1. **DONE** - Migration of the Forgejo repository/ies: 152 * ✅ Plan: 153 1. **DONE** - Migration plan for the Forgejo repository/ies: 154 * ✅ Prospects: 155 a. [https://codeberg.org/ CodeBerg] 156 b. [https://gitea.com/ Gitea] 157 c. [https://hostedgitea.com/ Hosted Gitea] 158 d. [https://www.stellarhosted.com/gitea/ StellarHosted] 159 * ✅ Steps for !CodeBerg: 153 160 1. Sign-in to [https://forge.of.tahoe-lafs.org Forgejo] and create an API token on Forgejo with Read access on repositories own by the [https://forge.of.tahoe-lafs.org/Tahoe-LAFS Tahoe-LAFS org] 154 2. Sign-in to !CodeBerg as a member of the [https://codeberg.org/Tahoe-LAFS Tahoe-LAFS] org161 2. Sign-in to !CodeBerg as an owner of the [https://codeberg.org/Tahoe-LAFS Tahoe-LAFS] org 155 162 3. Use the [https://codeberg.org/repo/migrate migration tool] on !CodeBerg to migrate the repository/ies from [https://forge.of.tahoe-lafs.org Forgejo] 156 163 4. Archive the migrated repository/ies on [https://forge.of.tahoe-lafs.org Forgejo] … … 166 173 * Caveats: 167 174 * CI runner does not support (yet) docker (work around possible with local installation of ruby+gems) 168 2. **IN PROGRESS** - Migration ofthe static website175 2. **IN PROGRESS** - Migration plan for the static website 169 176 * ▶️ Prospects: 170 a. [https://docs.codeberg.org/codeberg-pages/ CodeBerg Pages] (or !GitHub Pages), which will break legacy links (e.g. from !GitHub) 171 b. [https://www.statichost.eu/docs/ssg-guides/#jekyll StaticHost], which might support redirect/proxy rules and avoid broken links 177 a. [https://docs.codeberg.org/codeberg-pages/ CodeBerg Pages] (or !GitHub Pages) 178 * will break legacy links (e.g. from !GitHub), unless we keep a minimal NixOS VPS with redirect/proxy rules 179 b. [https://www.statichost.eu/docs/ssg-guides/#jekyll StaticHost] (to be tested) 180 * might support redirect/proxy rules and avoid broken links 181 * could replace the CI/CD too!?
