App is not deployed after "git push dokku master" - dokku

I'm trying to deploy an app with Dokku on Digital Ocean. I made some changes locally and push to GitHub succesfully. I see changes on GitHub. After that, I'm trying deploy app with "git push dokku master" and everything goes successfully but, app doesn't change. What could be the problem? Thanks!

Are you pushing to the right remote app? Sometimes, Dokku users will push to a git remote like:
# where dokku.me is your hostname
dokku#dokku.me:www.lollipop.com
If your app is called lollipop, then the remote should be dokku#dokku.me:lollipop, without the domain.
Similarly, some users set the remote to dokku#dokku.me:lollipop.git, which is also not the app name, so again, the app looks deployed, but its actually a different app that is deployed.
Check the remote and verify that the output of dokku apps:list on the server matches what you expect, and change your remote if necessary.

Related

Vue app - Firebase deploy database issues

I successfully deployed my Vue app using Firebase hosting except for one small thing - the database that I was running from localhost isn't appearing / being referenced when I navigate to the hosting URL (https://.firebaseapp.com.
Instead, any changes I make in attempt to recreate the data on the hosted site only effects my instance running on localhost!
Basically:
Why am I not seeing any db data once i deploy using the standard firebase commands firebase init and firebase deploy?
When I deploy how can I use the same database from localhost but have it running as a copy so that the deployed database and localhost database are kept separate?
I answered the first part via changing how I was deploying. Screenshot is attached.
I answered the second part through this post

Can Meteor-based-ios app access data from my own server?

I'm new to Meteor and made a very simple meteor-based ios app for personal use and interest, which read data from MongoDB provided by Meteor. I have a quick question and I just want to make sure that I am not spending time on meaningless work.
What I have done is "meteor run ios-device", and it works pretty well that under the same network (wifi) the app on ios could read data from the localhost:3000 on laptop (Mac). Also, I have learned that it is easy to deploy a meteor app on my own server, just run "meteor build /path/to/buildFile --architecture..." and move the bundle to the server to set up; however, then I got confused about this: after the app is deployed to a server, is it possible that the app on ios also able to access to that server?
In short words, app ios works fine with localhost, so is there a way to make it works fine with web hosting so that the app does not need to connect to the same network as the host?
Note that I didn't purchase Apple developer account that could release app to AppStore, so I can only use "real machine debugging". Will this disallow me to make app on ios access the data from my own server?
Thanks for any advance!
Update:
I have successfully deployed my project on my own OpenShift server so that I could access it within any networks in browsers. So my point is how do I build an ios app for this project so that I can also access it in iPhone within any network. I have tired run "meteor run ios-device --mobile-server=[my own openshift server]:8000", and when I build the app for deploying I ran this "meteor build ~/some/path --server=[my own openshift server]:8000". This seems does not works. Still waiting for advance!
You are describing one of the main use case of Meteor.
Refer to:
Meteor Guide > Mobile > Configuring your server
Meteor Guide > Mobile > Building for production
To summarize:
When building your Meteor project, if you have ios and/or android platform(s), Meteor will require you to specify the --server option with the URL of the server where your Meteor server bundle will be deployed.
That way, your app will know where to connect to.
Note that you may not need to go through Apple App Store, as long as you do not need to distribute your app. You can simply use the Xcode project (generated by meteor build) to install your app directly on your iPhone.

Is there a way I can update my Meteor app without wiping my MongoDB on the production server?

I'm installing my SSL certificate and need to run mupx setup and mupx deploy to get it to work.
However, doing this and then deploying my app will wipe my MongoDB on my production server and users lose all of their accounts. It would be a nightmare.
I simply run mupx deploy after making fixed to my Meteor app to update my app. However, when installing my SSL certificate (according to the Mup documentation) I have to run mupx setup to get it to work.
Is there a way I can do this without wiping my user database on my deployment server?

Trying to run meteor up mup setup

It appears mup setup can't run without a mup.json file. But, it appears the mup.json file is primarily used for mup deploy. Reason I ask is I'm trying to execute mup setup on the host server and it fails without the server credentials but considering that I'm already logged onto the server executing the setup I don't understand why the mup.json is being required in the first place? I'm not deploying an application so none of the application-specific settings would apply, right? If I don't have a mup.json on the server then mup setup throws an error that the mup.json file does not exist. It didn't seem really clear on the meteor up web site. Thanks!
You should run Meteor Up from your local machine as that's what it's designed for. I wrote about how to deploy with meteor up a while back and that should help you.
In a nutshell I believe you're thinking about this the wrong way. With mup, meteor deploy and soon galaxy deploy, you no longer need to "upload" your files and then go and manage them from the server. Instead your files stay local, you deploy (which will upload them) and deployment sets up your server and file structure.
Misunderstanding on my part. mup setup is something you run on your remote machine, not the host machine.

How does Meteor Up work?

I recently created a droplet on Digital Ocean, and then just used Meteor Up to deploy my site to it.
As awesome as it was to not have to mess with all of the details, I'm feeling a little worried and out of the loop about what's happening with my server.
For example, I was using the console management that Digital Ocean provides, and I tried to use the meteor mongo command to investigate what was happening with my database. It just errored, with command not found: meteor.
I know my database works, since records are persistent across accesses, but it seems like Meteor Up accomplished this without retaining any of the testing and development interfaces I grew used to on my own machine.
What does it do??? And how can I get a closer look at things going on behind the scenes?
Meteor Up installs your application to the remote server, but does not install the global meteor command-line utilities.
For those, simply run curl https://install.meteor.com | /bin/sh.
MUP does a few things. Note that this MUP is currently under active development and some of this process will likely change soon. The new version will manage deployment via Docker, add support for meteor build options, and other cool stuff. Notes on the development version (mupx) can be found here: https://github.com/arunoda/meteor-up/tree/mupx.
mup setup installs (depending on your mup.json file) Node, PhantomJS, MongoDB, and stud (for SSL support). It also installs the shell script to setup your environment variables, as well as your upstart configuration file.
mup deploy runs meteor build on your local machine to package your meteor app as a bundled and zipped node app for deployment. It then copies the packaged app to the remote server, unbundles it, installs npm modules, and runs as a node app.
Note that meteor build packages your app in production mode rather than the debug mode that runs by default on localhost when you call meteor or meteor run. The next version of MUP will have a buildOptions property in mup.json that you can use to set the debug and mobileSettings options when you deploy.
Also, since your app is running directly via Node (rather than Meteor), meteor mongo won't work. Instead, you need to ssh into the remote server and call mongo appName.
From there, #SLaks is right about how it sets things up on the server (from https://github.com/arunoda/meteor-up#server-setup-details):
This is how Meteor Up will configure the server for you based on the given appName or using "meteor" as default appName. This information will help you customize the server for your needs.
your app lives at /opt/<appName>/app
mup uses upstart with a config file at /etc/init/<appName>.conf
you can start and stop the app with upstart: start <appName> and stop <appName>
logs are located at: /var/log/upstart/<appName>.log
MongoDB installed and bound to the local interface (cannot access from the outside)
the database is named <appName>

Resources