{"name":"memos/176", "uid":"MTFogjYnSgKnZ7QPHuEZPf", "rowStatus":"ACTIVE", "creator":"users/1", "createTime":"2024-07-22T12:13:23Z", "updateTime":"2024-07-22T15:30:11Z", "displayTime":"2024-07-22T12:13:23Z", "content":"Migrate/convert phpBB3 forum to NodeBB:\n0. Ensure the MySQL database is ready for data export and the Redis database (i use that since less hassle) is ready to host NodeBB\n1. Install specific version of NodeBB...\n  * `sudo docker run -d -p 4567:4567 --restart=unless-stopped nodebb/docker:v1.12.1` (had issues without Docker, so we must use that)\n  * Complete the desired initial setup on <http://localhost:4567>, leaving the localhost domain\n2. ...to use the conversion plugin:\n  * `sudo docker exec -it <container> bash`\n    * `npm install nodebb-plugin-import` (while inside the app directory, which should be `/usr/src/app`)\n3. Before converting:\n  1. Disable all enabled plugins on http://localhost:4567/admin/extend/plugins and enable the previously installed importer\n  2. Rebuild & restart on http://localhost:4567/admin/general/dashboard\n4. Migrating via <http://localhost:4567/admin/plugins/import>:\n  0. Configure source database, use the `nodebb-plugin-import-phpbb` exporter, use \"I want to take ownership of a specific user's posts\" if needed; everything else is left the same (usually disabled)\n  1. \"Save config\", then \"Don't flush NodeBB db, just import\"\n  2. Post Import Tools: Configure Redirection templates, then download `redirect.map.csv`; assuming phpBB forum was on the domain root:\n    1. Users old path: `/memberlist.php?mode=viewprofile&u=<%= _uid %>`\n    2. Categories old path: `/viewforum.php?f=/<%= _cid %>`\n    3. Topics old path: `/viewtopic.php?t=<%= _tid %>`\n    4. Posts old path: `/viewtopic.php?p=<%= _pid %>#<%= _pid %>`\n    * Other post-import settings we don't care (we won't convert from BBcode since it is very buggy, yikes)\n  3. Disable the import plugin (so that we don't deal with errors later)\n5. Upgrading to latest NodeBB:\n  0. I like to just discard the old Docker container and get the latest version of NodeBB via git or docker, but the previously-generated `config.json` must be copied into the new deploy folder (but change the `url` key)\n  1. The first time before starting: `./nodebb upgrade`, will connect to the already filled database and complete the work\n  2. Check if any errors are present both when upgrading and inside the logs after starting for the first time, if necessary: disable respectively all plugins with `./nodebb reset -p`, themes with `./nodebb reset -t`, widgets with `./nodebb reset -w`, then re-enable composer plugin with `./nodebb activate composer-default`, then rebuild & restart (if then re-enabling plugins, again the last step)\n    * See https://community.nodebb.org/topic/16651/getting-error-while-nodebb-upgrade/", "nodes":[{"type":"PARAGRAPH", "paragraphNode":{"children":[{"type":"TEXT", "textNode":{"content":"Migrate/convert phpBB3 forum to NodeBB:"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"ORDERED_LIST", "orderedListNode":{"number":"0", "indent":0, "children":[{"type":"TEXT", "textNode":{"content":"Ensure the MySQL database is ready for data export and the Redis database (i use that since less hassle) is ready to host NodeBB"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"ORDERED_LIST", "orderedListNode":{"number":"1", "indent":0, "children":[{"type":"TEXT", "textNode":{"content":"Install specific version of NodeBB..."}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"UNORDERED_LIST", "unorderedListNode":{"symbol":"*", "indent":2, "children":[{"type":"CODE", "codeNode":{"content":"sudo docker run -d -p 4567:4567 --restart=unless-stopped nodebb/docker:v1.12.1"}}, {"type":"TEXT", "textNode":{"content":" (had issues without Docker, so we must use that)"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"UNORDERED_LIST", "unorderedListNode":{"symbol":"*", "indent":2, "children":[{"type":"TEXT", "textNode":{"content":"Complete the desired initial setup on "}}, {"type":"AUTO_LINK", "autoLinkNode":{"url":"http://localhost:4567", "isRawText":false}}, {"type":"TEXT", "textNode":{"content":", leaving the localhost domain"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"ORDERED_LIST", "orderedListNode":{"number":"2", "indent":0, "children":[{"type":"TEXT", "textNode":{"content":"...to use the conversion plugin:"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"UNORDERED_LIST", "unorderedListNode":{"symbol":"*", "indent":2, "children":[{"type":"CODE", "codeNode":{"content":"sudo docker exec -it <container> bash"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"UNORDERED_LIST", "unorderedListNode":{"symbol":"*", "indent":4, "children":[{"type":"CODE", "codeNode":{"content":"npm install nodebb-plugin-import"}}, {"type":"TEXT", "textNode":{"content":" (while inside the app directory, which should be "}}, {"type":"CODE", "codeNode":{"content":"/usr/src/app"}}, {"type":"TEXT", "textNode":{"content":")"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"ORDERED_LIST", "orderedListNode":{"number":"3", "indent":0, "children":[{"type":"TEXT", "textNode":{"content":"Before converting:"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"ORDERED_LIST", "orderedListNode":{"number":"1", "indent":2, "children":[{"type":"TEXT", "textNode":{"content":"Disable all enabled plugins on "}}, {"type":"AUTO_LINK", "autoLinkNode":{"url":"http://localhost:4567/admin/extend/plugins", "isRawText":true}}, {"type":"TEXT", "textNode":{"content":" and enable the previously installed importer"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"ORDERED_LIST", "orderedListNode":{"number":"2", "indent":2, "children":[{"type":"TEXT", "textNode":{"content":"Rebuild & restart on "}}, {"type":"AUTO_LINK", "autoLinkNode":{"url":"http://localhost:4567/admin/general/dashboard", "isRawText":true}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"ORDERED_LIST", "orderedListNode":{"number":"4", "indent":0, "children":[{"type":"TEXT", "textNode":{"content":"Migrating via "}}, {"type":"AUTO_LINK", "autoLinkNode":{"url":"http://localhost:4567/admin/plugins/import", "isRawText":false}}, {"type":"TEXT", "textNode":{"content":":"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"ORDERED_LIST", "orderedListNode":{"number":"0", "indent":2, "children":[{"type":"TEXT", "textNode":{"content":"Configure source database, use the "}}, {"type":"CODE", "codeNode":{"content":"nodebb-plugin-import-phpbb"}}, {"type":"TEXT", "textNode":{"content":" exporter, use \"I want to take ownership of a specific user's posts\" if needed; everything else is left the same (usually disabled)"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"ORDERED_LIST", "orderedListNode":{"number":"1", "indent":2, "children":[{"type":"TEXT", "textNode":{"content":"\"Save config\", then \"Don't flush NodeBB db, just import\""}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"ORDERED_LIST", "orderedListNode":{"number":"2", "indent":2, "children":[{"type":"TEXT", "textNode":{"content":"Post Import Tools: Configure Redirection templates, then download "}}, {"type":"CODE", "codeNode":{"content":"redirect.map.csv"}}, {"type":"TEXT", "textNode":{"content":"; assuming phpBB forum was on the domain root:"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"ORDERED_LIST", "orderedListNode":{"number":"1", "indent":4, "children":[{"type":"TEXT", "textNode":{"content":"Users old path: "}}, {"type":"CODE", "codeNode":{"content":"/memberlist.php?mode=viewprofile&u=<%= _uid %>"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"ORDERED_LIST", "orderedListNode":{"number":"2", "indent":4, "children":[{"type":"TEXT", "textNode":{"content":"Categories old path: "}}, {"type":"CODE", "codeNode":{"content":"/viewforum.php?f=/<%= _cid %>"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"ORDERED_LIST", "orderedListNode":{"number":"3", "indent":4, "children":[{"type":"TEXT", "textNode":{"content":"Topics old path: "}}, {"type":"CODE", "codeNode":{"content":"/viewtopic.php?t=<%= _tid %>"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"ORDERED_LIST", "orderedListNode":{"number":"4", "indent":4, "children":[{"type":"TEXT", "textNode":{"content":"Posts old path: "}}, {"type":"CODE", "codeNode":{"content":"/viewtopic.php?p=<%= _pid %>#<%= _pid %>"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"UNORDERED_LIST", "unorderedListNode":{"symbol":"*", "indent":4, "children":[{"type":"TEXT", "textNode":{"content":"Other post-import settings we don't care (we won't convert from BBcode since it is very buggy, yikes)"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"ORDERED_LIST", "orderedListNode":{"number":"3", "indent":2, "children":[{"type":"TEXT", "textNode":{"content":"Disable the import plugin (so that we don't deal with errors later)"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"ORDERED_LIST", "orderedListNode":{"number":"5", "indent":0, "children":[{"type":"TEXT", "textNode":{"content":"Upgrading to latest NodeBB:"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"ORDERED_LIST", "orderedListNode":{"number":"0", "indent":2, "children":[{"type":"TEXT", "textNode":{"content":"I like to just discard the old Docker container and get the latest version of NodeBB via git or docker, but the previously-generated "}}, {"type":"CODE", "codeNode":{"content":"config.json"}}, {"type":"TEXT", "textNode":{"content":" must be copied into the new deploy folder (but change the "}}, {"type":"CODE", "codeNode":{"content":"url"}}, {"type":"TEXT", "textNode":{"content":" key)"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"ORDERED_LIST", "orderedListNode":{"number":"1", "indent":2, "children":[{"type":"TEXT", "textNode":{"content":"The first time before starting: "}}, {"type":"CODE", "codeNode":{"content":"./nodebb upgrade"}}, {"type":"TEXT", "textNode":{"content":", will connect to the already filled database and complete the work"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"ORDERED_LIST", "orderedListNode":{"number":"2", "indent":2, "children":[{"type":"TEXT", "textNode":{"content":"Check if any errors are present both when upgrading and inside the logs after starting for the first time, if necessary: disable respectively all plugins with "}}, {"type":"CODE", "codeNode":{"content":"./nodebb reset -p"}}, {"type":"TEXT", "textNode":{"content":", themes with "}}, {"type":"CODE", "codeNode":{"content":"./nodebb reset -t"}}, {"type":"TEXT", "textNode":{"content":", widgets with "}}, {"type":"CODE", "codeNode":{"content":"./nodebb reset -w"}}, {"type":"TEXT", "textNode":{"content":", then re-enable composer plugin with "}}, {"type":"CODE", "codeNode":{"content":"./nodebb activate composer-default"}}, {"type":"TEXT", "textNode":{"content":", then rebuild & restart (if then re-enabling plugins, again the last step)"}}]}}, {"type":"LINE_BREAK", "lineBreakNode":{}}, {"type":"UNORDERED_LIST", "unorderedListNode":{"symbol":"*", "indent":4, "children":[{"type":"TEXT", "textNode":{"content":"See "}}, {"type":"AUTO_LINK", "autoLinkNode":{"url":"https://community.nodebb.org/topic/16651/getting-error-while-nodebb-upgrade/", "isRawText":true}}]}}], "visibility":"PUBLIC", "tags":[], "pinned":false, "resources":[], "relations":[], "reactions":[], "property":{"tags":[], "hasLink":true, "hasTaskList":false, "hasCode":true, "hasIncompleteTasks":false}, "snippet":"Migrate/convert phpBB3 forum to NodeBB:\n0. Ensure the MySQL database is ready for data export and th..."}