Closed fragmental closed 10 years ago
All your pros and cons are spot on. Here's what I'd say. Users should as much as possible use the website & API apps (mobile, etc). Yours is a isolated package, not using the API - this means no data is synced. If a user gets to the point of frustration that would lead them to using the desktop app (since it's more stable, not competing with the database & socket.io load of other users) it by all means should be encouraged - as long as they know what they're getting themselves into - namely, not being able to sync with the live database. For some this is fine, they're playing solo anyway. Also, we have a healthy dose of privacy-crazy conspiracy theorist in our midst, this is their only option :) But for others, this may come as a surprise - even if there's a README, we may have to triple-warn them that it's not using the live db. You'd be surprised how many messages I got like "I spent all this time following the installation instructions, why isn't my data syncing?" when I thought I'd made it clear.
Ok, so - discourage if they aren't yet frustrated, encourage if they're frustrated or privacy-obsessed. Now, eventually we're gonna take the web app, wrap it in node-webkit, change the API_URL
to point to server instead of '/', and deploy as our official desktop app. It will function completely offline (in the same way the mobile app does - check for connection... no? ok, use LocalStorage for till next check). Also good because now we have 3 projects using effectively the exact same codebase, meaning more developers & codesharing between the worlds.
@fragmental, when this time comes - I may pull you in if you're down for such a thing. Your experience packaging the current setup will very likely come into play with node-webkit. When the rewrite is "complete", you may be able to right-away simply copy/paste + edit API_URL and it should just work.
Oh... Node webkit is cool. I wonder how stable it is.
I could move to a universal installer that can install on mac/win/lin. I was thinking about qt installer framework. It's a lot more complicated than the installer I'm using now, but it's also a lot more powerful(can do web installs for example), and I could continue to use it for distributing packages in the future, like the official desktop app.
I'm going to add a few notes and then close this issue, unless you see reason to keep it open.
With the move to angular, the stability issues were gone, and my motivation to work on the project waned. The files I created still exist at https://github.com/fragmental/habitrpg-local and contain some batch scripts that give an example of how to setup node, mongo, and habitrpg in a directory structure with batch scripts that make loading habitrpg a little simpler.
Related / for posterity:
I created a Windows installer to make it easier to install a local version of habitrpg. I'm asking whether local hosting should be encouraged or discouraged in order to better understand how much time and effort I should put into it. There are a lot of things I could do, so I'm opening this for discussion.
I know that there are plans to make an offline app, but I don't know if the app would include a server.
I created a github for the project, that is currently just a dump of the files I have worked on and steps would need to be taken to use those files, if you wanted to create your own installer.
The installer, and some instructions can be found here http://community.habitrpg.com/content/habitrpg-local-unofficial.
The installer includes three directories, one is habitrpg from git, one is mongodb, and one is the database. A binary of node is included, and one batch script runs mongodb, while another runs node server.js. A third batchscript runs the first two, in sequence. Shortcuts on the desktop, and in the start menu link to the third batchscript. There are also shortcuts to the client address, a readme, the forum thread, and the uninstaller.
Reasons to encourage local hosting: -It gives people a sense of ownership -It encourages people to experiment with habitrpg -It allows people use habitrpg offline -It habitrpg web is having problems, it gives people a backup. -It gives people a quick and easy way to get the code on their computer where they can play with it.(installer specific) -It can potentially reduce load to habitrpg web
Disadvantages to local hosting: -Not everything works(not entirely sure what all this entails) -No way to buy gems/tokens. No way to contribute money.(Add donate button?) -It could create extraneous support issues(I could always direct support to my repo, to avoid this, but inevitably someone is bound to post here) -Fragmentation of the user base. If alternative servers started popping up everywhere, people might use those instead of habitrpg.com.(and subsequently less ad revenue) -Bypasses git, so people are less likely to learn enough to contribute.(installer specific) -Currently there is no way to keep habitrpg-local up to date, without reinstalling or patching.(installer specific)
Some issues I found related to this:
429 Running locally results in hang when clicking play
755 Please provide a way to avoid using external websites when self-hosting HabitRPG
819 Makes local installation independent to the paid and social stuff.