FredericHeem/starhackit

Quick start on OS X

Closed this issue · 11 comments

TimNZ commented

Hey Frederic, thank you very much for this starter kit.

I want to achieve a quick start on OS X and it doesn't seem this kit is ready out of the box to make this easy.

I did 'npm install' in client and server.
Don't want to use ansible for dev.

server/config/default.json has commented out sections, JSON doesn't support comments.

'npm start' seems to work with expected errors about redis.

What is the minimum I need to do to get running in dev, or ideally getting this starter into a state that it can be quick run?

Happy to do forks/pulls eventually but I'm using it to get a simple DB app up and running asap, super quick.

I had to comment out 'prestart' script in package.json as the eslint is complaining about globs:

ENOENT: no such file or directory, realpath '/Users/timshnaider/Desktop/Development/react/starhackit/server/src/**/*.js'
Error: ENOENT: no such file or directory, realpath '/Users/timshnaider/Desktop/Development/react/starhackit/server/src/**/*.js'
    at Error (native)
    at Object.realpathSync (fs.js:1568:18)
    at /Users/timshnaider/Desktop/Development/react/starhackit/server/node_modules/eslint/lib/util/glob-util.js:159:24
    at Array.forEach (native)
    at Object.listFilesToProcess (/Users/timshnaider/Desktop/Development/react/starhackit/server/node_modules/eslint/lib/util/glob-util.js:153:18)
    at CLIEngine.executeOnFiles (/Users/timshnaider/Desktop/Development/react/starhackit/server/node_modules/eslint/lib/cli-engine.js:702:35)
    at Object.execute (/Users/timshnaider/Desktop/Development/react/starhackit/server/node_modules/eslint/lib/cli.js:174:107)
    at Object.<anonymous> (/Users/timshnaider/Desktop/Development/react/starhackit/server/node_modules/eslint/bin/eslint.js:76:28)
    at Module._compile (module.js:541:32)
    at Object.Module._extensions..js (module.js:550:10)

Hi, thanks for your report.
The eslint bugs has been annoying me for too long, I cannot reproduce it and only some of the users got this issue.
Regarding the comment of the JSON, npm start fails because of that ?
I've recently installed the backend on two brand new MacBooks without any issue.
Out of the box, npm start should work.
Which npm/node are you using ?

TimNZ commented

What's your quick start for OS X?

  • git clone ...
  • cd client && npm install
  • cd server && npm install
  • <install redis, rabbitmq>
  • npm start
  • launch http://localhost:9000

The server README.md is detailed but not clear on minimum required to get running.

Thanks for any help.
I really appreciate the huge amount of time people put into creating software for free, but a lot of the time the docs on how to use it are a challenge. We shouldn't have to struggle and waste time to get running :)

The documentation definitely needs improvements. People shouldn't struggle to get it started otherwise I will see it as a failure.
What is the current problem that is affecting you? Any logs?

tccki commented

Bumping an old issue as I would love to work with this framework but I'm experiencing the same friction in getting this started on macOS.

I think, given the numerous requirements, the deployment should be taking care of the needed packages. Anything that can't be done automatically should be part of a "Installation on macOS" guide. If anyone has done this multiple times it shouldn't be too difficult to put together some clear documentation.

Can you tell me where did you struggle to install the kit?

tccki commented

I tried the Ansible Deployment README, which I gave up on after about 40 minutes of resolving dependencies and errors. Two notable ones:

  • ansible -m ping available did not give me a valid response, so I ignored it
  • ansible-playbook site.yml -vv results in an error relating to the API daemon controller

I then looked at the Server README, which doesn't give a clear list of dependencies to install. Usually a repo will have them as a one-liner.

Basically there's a lot of back-and-fourth through the documentation to figure out what's needed, as well as Googling around to resolve the issues that might arise. If I could invest more time into this, I would build the stack on a fresh macOS install and document every step, to later automate or at least build a guide from.

Ansible is used to deploy to production/uat, not for local development.
In server, what is the output of npm start ?

FYI, rabbitmq has been removed as a dependency, it uses pub/sub from redis instead.

tccki commented

Will update if I find anything more, but the below got me here so it would be a good starting point for a quick start guide on a fresh copy of macOS.

  • install Xcode and Homebrew as required
  • brew cask install docker, then run Docker GUI for the first time, as required
  • brew install node, as required
  • sudo xcode-select -s /Applications/Xcode.app/Contents/Developer, otherwise npm install will throw errors on node-gyp
  • git clone https://github.com/FredericHeem/starhackit.git
  • cd starhackit/server
  • npm install
  • npm setup start, error relating to missing binci (even if installed previously)
  • npm install -g binci
  • npm run setup appears to succeed
  • changed redis url host in config/default.json to either localhost, or REDIS_PORT_6379_TCP_ADDR from npm run setup
  • running npm start in a new terminal tab gives me redis connection errors, app inaccessible via localhost:8080

Thanks for the feedback, I'll update the doc to clarify several items:

  • docker, binci and npm run setup are optional.
  • the redis config should be something similar to
"redis":{
    "url": "redis://localhost:6379"
  },
  • npm start in the server starts the api server, npm start in the client starts the frontend dev webserver.