How to maintain a production and development Messenger bot? - facebook

Now that my bot is live, I'm trying to understand what the best way is to maintain a production and development version.
My production version is hosted on Heroku and my development version is hosted on my computer and tunneled to a static address. So far, I've been testing the bot by pointing Facebook's webhook from the production environment to the development environment.
This is not ideal for many reasons, which is why I'd like to understand if there's a better approach. It seems like the only way I can do this with Messenger currently is to create a new test page and then a new app that is tied to it and unreleased. Then I can use that test bot via the Messenger app. Is there something I'm missing (i.e., a way to tie my account to a different webhook)?

As far as I can tell, it seems like you have everything set up pretty well. What you described is exactly how I am doing it.
This is not ideal for many reasons
What's not good about it? Can you clarify the question?
EDIT:
Your heroku hosted and local hosted webhook adresses are different right?
You should have 2 of the following, 1 of each for both the release and test version:
Page, App, Server, Repository.
That way, the test and release version are 2 completely separate entities and there is no interaction between them

Related

is there a local github for teamwork? (not in cloud)

me and my friend are developing new code and we want to maintaine from time to time.
we looking for sodtware or service that can provide us what github and his "friends" are providing but we dont want to store our code on the cloud or in the web.
a software that can provide us something like when someone is working on the code so no one else can work on this in the same time' you know what I mean...
can anyone recommand about software or service like this?
thanks a lot!
Gitlab is easy to install on a Linux server.
It offers a lot of features on the open version, it is what you're searching for I guess.
The Gitlab on the cloud is not free, it is similar to Github, but don't worry you won't have to pay unless you need advanced features (out of issues, PR, basic CI, hooks...) https://about.gitlab.com/pricing/#self-managed
First of all you i have to define what you really need. It seems that your are looking for a remote solution that enables you and friends to work together on common code and at the sametime you don't want a "cloud" solution.
By "cloud" i guest you want to say not in internet? If it is so; why don't you try a personnal Gitlab server, hosted on a server in your home or friend's one. If you have serious unix skill this is something that you can envisage or try a private cloud solution as bitbucket.

How to track deployments?

What is a good way to track deployments of our code base? I would like to be able to see when a version was deployed on a specific server, who released it, what issues were solved by it, etcetera.
Currently we have a deployment tool that generates an issue in our issue tracker with all this information. This makes it easy to link the release issue against related issues, but it also pollutes our issue database.
We also want to start with Continuous Integration internally, which would mean there would be a ton more release issues.
Are there better ways of tracking releases?
Our technology stack is PHP (Symfony2) using Phing as a build system, a custom, web-based deployment tool, Mantis for bugtracking and Bitbucket for repository hosting.
You can use something like Beanstalk or dploy.io to deploy your apps. It will give you an ability to manage deploy permissions, see a timeline of all deployments (who deployed what and when), trigger deployments with a single click and notify your team via email and integrations when something is deployed.
You can get an idea from this screenshot:
http://cl.ly/image/3C1v1w2C3K2v
P.S. I work at Wildbit, company that makes both products.
You should check out my company's product BuildMaster, it was designed to solve every problem you've listed.
At this time we do not yet have the first-class integration with Mantis, but it can be added pretty easily via extensibility in the same way as the other bug/issue trackers we integrate with. It could be either built by your team if you are interested in that or our team contingent on an Enterprise edition purchase.

trigger.io multiple developers best practices

Does anyone have recommendations for how to develop on the trigger.io platform with multiple developers? We have an existing source code repository / code review process / staging process, and would like to share the trigger.io build system in a sane way as we foray into mobile.
In particular, we would like several developers to be able to use the build system, with the extra modules enabled when we paid for the service.
There doesn't appear to much documentation or support for this within this trigger.io system...
Support for working in teams is actually a feature we have released recently. We just wrote a blog post that should be enough for you to get started with it: http://trigger.io/cross-platform-application-development-blog/2013/01/15/introducing-projects/
If you have any feedback or run into any issues just ask here or send an email to support#trigger.io.

What is the best way to setup a development & production environment for a PHP/MySQL app?

I've been developing a web app locally on my local MAMP computer for the last few months. Now I am ready to launch it while continuing to add enhancements/fixes. So, I am wondering what is a good way to implement a development AND production server in order to efficiently manage updates, prevent overwrites, and seamlessly add other developers into the workflow. I also want something that has a minimal learning curve for me. Personally, for whatever reason, I've never been able to fully grasp version control systems like Git or SVN so I am hoping for an easier solution until I am able to invest more info the business.
As I see it, the options that I have are:
Spend more time learning Git before launching. And hoping that I don't break anything while further developing my app.
Buy two hosting accounts. One for Dev and one for Prod, where only I can do the deployments into Prod. I suppose I'd have to keep track of all files we've modified in a spreadsheet that are deemed ready for deployment.
Editing right on the FTP (no Dev server).
Are there any other options that you can recommend? I've heard that there are some new types of Web Hosting companies that can do the heavy lifting...
While personally, I have had good experiences using svn/git for multi-developer websites, I can understand your reticence to start relying on something you are not entirely familiar with. Unfortunately, I do believe that is your best option, but failing that, you might try using subdomains. My former employer would create test area on the disk and point beta.thedomainname.com at it. When bug fixes or upgrades were complete and verified to be working in the beta directory, the entire directory would be copied over to the live domain. Not the most elegant solution, but it worked. It certainly is cheaper than buying two hosting accounts.

Playframework 2 in the cloud

I started with python on google app engine 3 months ago.
Then I switched to Play2! on Heroku + mongodb and it is a breeze to work with.
I am really far in my project and I want to release the website in the next couple of days. But I just saw the pricing for SSL on heroku, which is really high.
And I don't want to launch my website without SSL. SSL on heroku costs $20/month without the certificate.
I saw some alternatives in this post What cloud platform supports playframework 2.x deployments?
But I am still not too happy. I want to pay as little as possible to start my website.
So at the moment I am looking on Google App Engine again. This would mean that I have to rewrite my whole DB.
Does GAE restrict some features of play2?
I also saw dotcloud but their pricing page is really confusing. I don't know how far I can go with the sandbox mode, and there is a mark on SSL so I think its somehow included but there is also an SSL addon which doubles the price.
I am okay if my website will cost me more then I will get out of it for a few months, but with the ssl on heroku is just too much.
What would you recommend me?
Edit:
Currently I am looking at openshift which looks kinda interesting. They implemented SSL for free to all users, but I am still not sure if I can use this with my custom domain.
Edit2:
Okay it is only shared ssl. Which means I would have to get "Megashift" which costs $42/month
Edit3:
It seems that I can only deploy war files to GAE, which destroys the purpose of play2.
So I would have to choose between heroku, dotcloud and openshift. And all of them are expensive if you want to use SSL.
I would advice you to give openshift a try
It's free, red hat has stated that it will keep a free offering (it's not just during the beta...)
Here's a screencast:
http://playlatam.wordpress.com/2012/05/21/deploying-play-framework-2-apps-with-java-and-scala-to-openshift/
a github repo
https://github.com/opensas/play2-openshift-quickstart
and an article at red hat
https://openshift.redhat.com/community/blogs/supporting-play-framework-on-openshift-with-the-diy-application-type
I doubt that GAE will work properly with Play. The blacklisting of some classes will impact your project with several limitations that you won't have in another environment, and you have the issue of deploying war files (there are plugins for that in Play 2, but still).
Look at it from another point of view:
if your project is a personal "for fun" project with no other aim than trying something, you probably don't need SSL. Even if you really need (or want) SSL, 20$/month is not so much for a hobby, people pay close to that in games like WoW (subscription + extras) each month.
if your project is serious (startup, aiming to get money) you should stop worrying about expenses like 20$. They are investments to get the cash coming. If as a business you are willing to rewrite your code to save just 20$, you are doomed to fail.
I can recommend you Jelastic.
Besides it offers Jelastic SSL and Custom SSL as well at a reasonable price.
Some hosting Providers allow SSL for free for their customers and the price actually varies depending on the Hosting Provider you choose. So you have alternative here.
Jelastic has recently provided a tutorial on how to deploy Play 2 web framework application to the cloud. So you can freely use it as a basis.