New user looking for docs and a few other newbie questions


#1

I am brand new to Cloud 9. I plan on using Meteor with the eventual target being Google Cloud. I have a few questions that I hope you guys can answer pretty easily. 1) Is there a pdf of the documentation? I am not good at reading docs online (I’m an old guy) where I can’t make notes on the pages. 2) Since Cloud 9 is a web based environment and Google Cloud is web based environment too and since Meteor contains its own server (and database), am I getting anything by developing on Cloud 9( instead of directly on the target?). Perhaps the docs (if I could find them) would shed light on Cloud 9’s advantage in this situation? 3) My app will be logging data entered by users. Am I foolish to think MongoDB can handle a large number of records? I guessitmate about 2.6M records being logged per year. I actually have a need for a smaller database (user’s names, etc fine for MongoDB) and also a larger database where activities are logged (mySQL?).

Thanks, Rich


#2

I’ll do my best to try to help you get started:

  1. Unfortunately, there is no PDF version of the documentation, but it’s possible to make your own. If you really need it, go to the Cloud9 docs, and when you want to save a page to a PDF so you can interact with it, press Ctrl+P and choose Print to PDF. Then, you can download the page in PDF format and use it however you need.
  2. There are a few advantages if you use Cloud9. First of all, hosted workspaces are a completely separate environment from your production servers, but in most cases they are the closest you can get to a production environment (makes deployment way easier). Deploying to Google Cloud is fairly easy, too. You can use the CLI, or set up GitHub and Travis CI to automatically test and deploy your code to Google Cloud. But Cloud9 makes this even easier by integrating directly with GCP with special GCP workspaces! These allow you to write your code, then commit it to source control and deploy it directly to a linked project. Alternatively, if you are willing to pay for premium, you can create SSH workspaces, which allow you to use Cloud9 to interact with your own server using SSH.
  3. A large enough MongoDB deployment can handle any amount of records you can throw at it. If you’re handling a database that large, however, you’ll have to learn about how to create scalable deployments, and if it’s mission critical, have regular database backups and good database security. You might benefit by using mLab, which allows you to deploy scalable MongoDB to a platform of your choice. Do keep in mind that this can be fairly expensive, depending on the size and amount of records (mLab Pricing). You can also use MySQL if you want, but either will work just fine.

As for the problems you described in your PM, Cloud9 attempts to replicate a production environment as well as possible, which can confuse people who are used to developing locally and using localhost. With this in mind, understand that Cloud9 uses a reverse proxy to send your traffic to the right workspace, and then send responses back. So, in your case, make sure your server is listening with an IP of 0.0.0.0 and a port of 8080. So that you don’t have to hardcode these values, Cloud9 sets the $IP and $PORT environment variables, respectively, to these values, so you can change them as necessary in production. If you do not listen on the correct IP and port, you will not be able to access your workspace using its preview URL, which is in the format of https://workspacename-username.c9users.io. The ports 8081 and 8082 are also available, should you need them.


#3

Thanks Danny.

So, in your case, make sure your server is listening with an IP of 0.0.0.0 and
a port of 8080.

How do I do this? I have tried setting my browser to
https://research-activity-logger-richb201.c9users.io/myApp/ but instead of
the rendered demo page I just see “Index of /myApp”.


#4

Unfortunately, since your workspace is private, I can’t see what you’re seeing, so I’ll just have to take a guess. When you created the workspace, did you create a PHP workspace? It’s possible that’s causing it to list the files rather than have your server handle it. If you want, you can post the code here and I can take a look. As for starting Meteor with the correct configuration, see the following post for setup instructions:


#5

This what I am seeing. When I created the workspace the instructs were to
use a blank Ubuntu space, I didn’t see that as a choice but I did see blank
workspace, so that is what I chose. I then followed the directions which
worked pretty well. It worked ok initially: I was able to view the rendered
page. I don’t know what happened. My only choice is to delete the workspace
and start from zero again. I am sure it is much easier to solve than that!


#6

At the bottom, I can see that you’re using a Runner, specifically an Apache runner. This is the problem. Instead, you’re better off using the Meteor Runner (click on Runner: Apache httpd (PHP, HTML), and choose Meteor in the dropdown). Then, try again. If it errors, please post the error here.


#7

Thanks. I changed it to Meteor. Now I get

Meteor
run: You’re not in a Meteor project directory.

To create a new Meteor project:
meteor create
For example:
meteor create myapp

For more help, see ‘meteor --help’.

Process exited with code: 1

So I tried following their directions and this is what I get:

bash: cd: myapp: No such file or directory
richb201:~/workspace cd myApp richb201:~/workspace/myApp cd …
richb201:~/workspace meteor create myApp You can't create a Meteor project inside another Meteor project. richb201:~/workspace cd myApp
richb201:~/workspace/myApp $ meteor create myApp

You can’t create a Meteor project inside another Meteor project.
richb201:~/workspace/myApp $


#8

Can you click on the CWD button and choose the directory that your project resides in?


#9

Thanks that helped a huge amount! Now the app is started. But I still can
see the rendered page. Here is the screen. I would think I could see the
page in the [B] section. Also I see this Cloud Help message and is has kind
of confused me. It talks about $PORT and $ID, neither of which were
mentioned in the Meteor training video I watched. Is this specific to
running Meteor on Cloud 9?


#10

Yes, they are specific to Cloud9, in order to be sure that your app is listening on supported ports. The runner does this for you, so it’s safe to ignore. As for the “rendered page”, I’m not sure what you mean. It would help (and is generally a good idea) if you could pop out the page to a new tab using the button next to the “Browser” dropdown above the preview. That way, you can see any errors on your page by visiting the Chrome developer tools. Also, which HTML file is being displayed? If it’s the main.html file to the left, then everything is working (I assume, I’m not sure whether the templates should show since I’m unfamiliar with Meteor), because the only HTML that would be used sets the page title.


#11

OK. I am starting to remember what happened now. I was following some tutorial (way too late last night) and I remember it told me to remove every thing between the head and the first template. I guess I forgot that I did that! So I guess I need to get the original “Hello world” demo that gets installed with Meteor, back. Thanks for your help. I was thinking that Could 9 was the wrong place to do this (I was a C developer for about 20 years) but not for the last 10. Thanks again.


#12

One more thing re: GitHub. How do I use GutHub with Cloud9? For example I will need to use TristanToye/meteor-extension to create a connection between my Meteor server and a page running as a Chrome Extension. Do I Clone the GitHub repository? And where do I place the code that will be downloaded?

Thanks


#13

First of all, I would highly recommend connecting your GitHub account (if you have one) to Cloud9, this allows you to clone your repositories (and only yours) repositories on GitHub directly into a new workspace from your Cloud9 dashboard. That said, if you’re just trying to clone a repository on the command line, use the following command:

git clone https://github.com/TristanToye/meteor-extension

For more details, you can use man page git and some really useful guides from GitHub.


#14

Danny, I ran that git command above and now I broke everything. This is what appears when I run

/home/ubuntu/.meteor/packages/meteor-tool/.1.5.1.puot9a++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:280
throw(ex);
^

ReferenceError: MeteorDdp is not defined
at meteorInstall.server.meteor-extension.js.ddp.meteor-ddp-oauth.js (server/meteor-extension/js/ddp/meteor-ddp-oauth.js:198:1)
at fileEvaluate (packages/modules-runtime.js:333:9)
at require (packages/modules-runtime.js:228:16)
at /home/ubuntu/workspace/myApp/.meteor/local/build/programs/server/app/app.js:582:1
at /home/ubuntu/workspace/myApp/.meteor/local/build/programs/server/boot.js:338:34
at Array.forEach (native)
at Function..each..forEach (/home/ubuntu/.meteor/packages/meteor-tool/.1.5.1.puot9a++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/server-lib/node_modules/underscore/underscore.js:79:11)
at /home/ubuntu/workspace/myApp/.meteor/local/build/programs/server/boot.js:158:5
at /home/ubuntu/workspace/myApp/.meteor/local/build/programs/server/boot.js:387:5
at Function.run (/home/ubuntu/workspace/myApp/.meteor/local/build/programs/server/profile.js:510:12)
Exited with code: 1
Your application is crashing. Waiting for file change.

How can I undo this?