HabitRPG / habitica

A habit tracker app which treats your goals like a Role Playing Game.
https://habitica.com
Other
11.6k stars 4.02k forks source link

HabitRPG-Local - Should local hosting be encouraged or discouraged? #1371

Closed fragmental closed 10 years ago

fragmental commented 10 years ago

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.

lefnire commented 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.

fragmental commented 10 years ago

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.

fragmental commented 10 years ago

I'm going to add a few notes and then close this issue, unless you see reason to keep it open.

  1. I've pretty much abandoned habitrpg-local. My biggest motivation behind creating it was the instability of habitRPG at the time. I wanted to continue using it, in spite of the fact that the instability of habitRPG.com made using it difficult. So I made the installer so it would be easier for people to set up their own local copy. Alternatively, the local nature of the install allowed people to work offline, and also could give would-be developers an easy route to working with the code.

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.

  1. Node webkit seems to be maturing pretty rapidly. Lots of activity on the repo, and there have been a lot of version number changes over the last 9 months.
  2. My habitRPG client built in unity3d is progressing, even though progress is slow at times. I post releases here http://www.fragmentalstew.com/ and I have a github for it setup here, https://github.com/fragmental/HabitRPGDesktop, but the actual code is on a private bitbucket account.
meonkeys commented 1 year ago

Related / for posterity: