Gosh, it's quiet in here

It might be worth noting that a few months ago we moved away from the JGO IRC and now instead have a mildly active Discord server with ~40 people. If anyone wants to join, here’s a link:

Agreed. I don’t really have any interest in being an admin (or even a moderator) or in dealing with hosting. My goal is to get a dumb Discourse instance up and running so that we can test stuff out. If we succeed, I’ll very happily hand everything back to you and any moderators you choose to add.

Current status: waiting for Mailgun to stop thinking I’m a spammer, because apparently the test domain I registered looks suspicious.

How am I just hearing about this!!! I have been quietly awaiting a Discord server for here for some time now!

Edit :: Is there a way to have a feed on the Forum, kinda like the shout boxes of old, linked to #general with Discord?

I have cleaned up a database-dump, removing privacy sensitive information, like ip-addresses, locations, ages, emailaddresses, secret-question/secret-answer pairs for login-recovery, etc, etc. I also subtly mangled the messages, without structurally changing the posts, as to simply prevent a fork based on this shared dump. I’ll do a few more sanity checks, and will make the dump available shortly.

I have a dumb Discourse instance setup here: http://java-gaming.online/

Feel free to poke it, register, post, whatever. It’s pretty much just the default Discourse setup, without any customization. That can come later if this pans out.

I think the next steps are:

Do we want to port the database?

I personally like the “fresh start” option, but it’s at least worth trying. This might require direct access, not an obfuscated dump. If so, Riven I’m happy to give you access.

See here and here for instructions.

Do people actually want to use a new site?

I guess time will tell.

From here, if anybody wants to be involved in porting the site or invigorating a new site, here’s your chance. My plan is to see how this plays out and then hand the reigns back over to Riven if it works out.

Surely a few swapped words won’t put you off? :slight_smile:

Here’s the dump, enjoy :slight_smile: (and good luck!)

http://java-gaming.org/jgo-dump-20171116-shared.zip

Not me. I just don’t know what all is required for the port. I guess we can see if it works with the public dump, and if it does, then you can do it with the real thing if you want.

Thanks!

I’ll try to get to this today. I’ll be heading out of town later in the week so hopefully I can make some progress before then.

I’ve hit a snag: apparently the directions require a local Discourse development environemtn, which means you can’t do it directly in Docker. I don’t really feel like spending much more time on this, so if somebody wants to take over, we basically have two options:

Option one: Set up a local Discourse development environment and follow the steps in the link above.

Option two: Hack the script and/or Docker options so the script works inside Docker. This is apparently possible, but I don’t know enough about Ruby to do it myself.

I still think that just starting over and archiving the existing forum is the way to go. But if any of the folks who said they want to be involved want to try the above options for archiving, now’s your chance.

I got the dump imported into MySQL. Am now trying to get it into Flarum.

After spending two hours to understand the tables and relations, wrote a script to migrate the categories and boards. The current output is like this:

The script also maintains the order of the categories and the boards inside them.

[quote]I got the dump imported into MySQL.
[/quote]
That was my thinking when I started inspecting the data, to load as many tables as possible into MySQL and go from there. The tools I have for inspection are not so hot: e.g., Notepad/Wordpad! Advice on a better way to inspect the dump would be appreciated.

[quote]After spending two hours to understand the tables and relations, wrote a script to migrate the categories and boards. The current output is like this:
[/quote]
Is this the view from within Flarum? (Is there a consensus that Flarum is a good target? Or a good intermediate step to something else?)

Looks good! I can see that the GUI should work well on small display screens.

The only thing I’m wondering about is the sub-categories at the bottom and how they relate to larger blocks.

I did peruse the dump file a bit, but was slow on the trigger to download MySQL, and haven’t downloaded Flarum yet either. I’ll do so, if we are going in this direction.

For this large data, phpMyAdmin and other web based tools will trigger a post error, you need to work from the command line. After you create the database, do this from cmd:


$ mysql -uuname -p
Enter password: *****
mysql> use dbname
mysql> source path/to/dumpFile.sql

That will do the trick of importing. It took me 30 seconds for that to complete.

This is really awesome. Congratulations. What do you see as the next steps?

Hey @Riven, I started migrating the users and found that there are a ton of users who have activated the accounts but haven’t logged in even once. The lastLogin field for some is set to 0. Should I migrate them too? Or can I optimize the script to remove them?

First step is to port the users. Once that is done, I could look into porting the meta data, like the profile picture etc., Right now however profile pictures cannot be ported because it appears to me that Flarum caches them in other locations, and I cannot access the server of JGO to download the images.

After this is done, I can continue to port the posts. The good thing about Flarum is that it supports posts in both BBCode and also Markdown. However, I think I have to modify them a bit.

Porting of users is done, but however they are created with no password, and hence they cannot log in. They are required to click on forget password link and create new password for the accounts. Members visible in the admin panel:

And here is a ported user:

Profile pictures are a bit off, but I don’t think I can fix that. Still had to search where Flarum stores them. And of course, mods and groups aren’t ported yet.

Great progress dudes!

Once you get 10% of data pumped over, it’s typically a breeze to do the remaining 90%, especially on such a simple data-model.

So by all means, feel free to reduce your dataset, if it makes porting easier/speedier. In the final stages of the migration you would take the whole dataset.

Ofcourse this is one of the first snags of a data-migration: how do we get application X to understand the password-encryption (salted-hash) from application Y. Typically this involves a bit of custom code in the new application. I could PM you your own SMF credentials (as hash+salt) and you could test your new implementation with that.

Having to reset your password seems like a pretty reasonable thing when switching to a new site.

A quick change is that I added error reporting and also a progress notifier in the tool. This migration script is CLI based, as you can see it:

This should be more better as I will get to know if the script was hanged or not. I had to admit it is stressing out the MySQL server, as I can see the disk access at 99% rate. I have also added recognition of user groups, and currently this script translates everyone as Members, Mods and Admins.

By the way, did I mention that I’m committing this to GitHub? It’s at https://github.com/sriharshachilakapati/JGO-Flarum-Migration

Thanks! That will keep me excited to do, it was boring a bit to stare at the screen doing nothing while the migration is done. Currently for 11513 users, it is taking me ~12 minutes to do the port, that is with the reduced data which excludes people who have never logged in after activating their accounts and also non-activated accounts.

Yep I agree. I had looked into the sources of Flarum and found that it uses the same hashing used by Laravel framework, which I guess is bcrypt. I’d like to experiment with that, please do send me my own credentials in the PM.

True that, it would be fine with most of the users as they log-in with social media anyways, but wouldn’t hurt more for experimenting right?