Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
I created a website (a Ruby on Rails application) that I would like to make open-source so that the community can make improvements. The source code is already publicly available on GitHub. However, I'd like to set up my server so that when I accept a pull request, the code is automatically deployed to production.
I doubt that I'm the first person to think of such a thing, so maybe a tool already exists to handle this. Currently I use Capistrano to deploy my application. Maybe there is a plugin available to add this sort of behavior. I also want to avoid publicizing the production API keys which currently only exist on the server.
If a tool/plugin does not already exist, what do I need to do in order to implement this type of behavior.
After some research, I wasn't able to find an open-source tool or tutorial on how to do this yourself. However, I came across some services which provide this functionality.
Travis CI
Travis CI is a continuous integration service which runs your test suite on every commit. They offer a "Continuous Deployment" feature which allows you to deploy on a successful build. When a GitHub pull request is merged into master, this triggers a Travis build and will deploy if all your tests pass. However, they have a limited list of hosting providers that they support.
http://docs.travis-ci.com/user/deployment/
Ninefold
Ninefold is a hosting provider and on the list Travis CI supported services. However, Ninefold has their own built-in support for automatic deployments which do not require you to use Travis. https://help.ninefold.com/hc/en-us/articles/200847214-How-to-deploy-an-app
I ended up migrating to Ninefold and using Travis CI to deploy.
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed yesterday.
Improve this question
One of web tools we intend to use requires docker for installation. Due to limitation in resources, however, the only way for us to deploy this tool is on a shared university php webserver with an associated MySQL database. My question is, can you somehow convert or even "compile" this docker-dependent tool to get some simple package, similar, for instance, to Wordpress? Indeed, as per my understanding, Wordpress development does require docker, while the final package for Wordpress installation does not.
Is this operation of docker-removal possible and is there a standardised workflow? The tool in question is located in the following repository.
I have tried to install the tool as is, being blocked by the lack of admin privileges and the absence of docker on the described university webserver. I have experience in setting up Wordpress, I would expect for my tool of interest to have a more sophisticated installation process (compared to the current 3 steps) without docker and, for instance, to also require manual connection to an SQL-database.
Please excuse me for my limited understanding and layman terms, I am sadly not coming from a computer science background.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
Is there some library or tool to allow a rails application to be configured using external files?
I want the database configuration (by default in config/database.yml) and the application configuration (configured in a environment specific file in config/environments/*.rb) to be in files (preferably yaml) not included in the project.
I know that this is not the standard way of doing things, but has some benefits:
The files can live in separate repository in version control
You can have different access control to this repository (you can hide the production configuration)
The config files can be deployed separately
You can change them manually on the machine, and they won't be overwritten when the application is re-deployed
You don't have to have a different rails environment for each deployment environment, but can have the changes made on that specific machine.
You could share configurations between applications
An even better solution would be to have partial external configuration - this way you can still have your basic configuration in the application, but overwrite parts of it.
It's is possible to do if you copy the external config files inside the application. This can be done in the beginning of config/application.rb before rails is loaded, but it looks like a hack, and hard to maintain. Is there some practical solution to allow this?
Dotenv is excellent and does exactly what you want. It's very common and a great way to keep secrets out of shared files. Combine it with env_bang-rails for some added goodness (defaults, failures if undefined, etc.)
https://github.com/bkeepers/dotenv
https://github.com/jcamenisch/ENV_BANG/
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
I'm looking for a document that explains the techniques to make the deployment of web applications: in the cloud, in-house, in housing ect ect ...
For every technique I would like to know the pros and cons, so I do a general idea.
I searched online but have not found anything really comprehensive and interesting.
Can you help me?
Apps
Web apps all have the same structure -- series of files running on a server "stack", accessed sequentially from middleware, or framework-based load structure
Your question, therefore, is more about which stack is going to be most scaleable, efficient, robust & expansive (can add extra resources). Here are the options:
Heroku
"Managed" cloud (environment already set up)
Runs off AWS instances
Versatile (runs any gem / app)
Owned by Salesforce
Lots of add-ons
Highly scalable
Not sure about price
Easy deployment (git push heroku master)
Cloud (AWS / Rackspace)
"Full" cloud
You're responsible for environment (OS, gems, ruby ver etc)
You're responsible for uptime
You have to maintain db etc yourself
Scaling can be a pain in the ass
Can deploy your app in a totally bespoke environment
Performance likely won't be issue (have 100's of servers to pool from)
VPS
"Shared" hosting
Have to install environment yourself
Very tricky to keep gems / ruby / rails up to date
Have to maintain the db etc yourself
Not many companies actually offer decent VPS
Costs more than Heroku
Not very scaleable
If someone else causes issues on the server, your app gets hit too
We use Heroku for all "baby" apps - AWS / Rackspace for apps with growth
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
Can anyone tell me what is the best Ruby chat gem/plugin that is compatible with Heroku? Can Node.js be used for this and does Node.js play nice with Rails 3?
I am working on upgrading my open source chat gem to be Heroku compatible (soon, hopefully). It's called Mad Chatter. Soon you will be able to easily integrate it with any Rails application.
Heroku supports HTTP long polling, but does not support web sockets. Web Sockets are a great new technology, but until Heroku supports it, you will want to look for gems that support long polling.
One popular solution is to use Socket.io, but it is meant for running on node.js. Juggernaut works like this (as a node.js server) except that it stores each message in a Redis database so that you can access them from Ruby. My only criticism of Juggernaut is that there are so many pieces involved to get it up and running.
Faye is a library which supports long polling and is available as a pure Ruby implementation which can optionally use Redis to store messages. I'm opting to use Faye because there are simply less deployment dependencies.
I'm sure there are other options but I know that Faye is a pretty popular solution. That being said, these are just the communication gems. They are only the foundation of your chat app. There are a few different "chat gem" options depending on the types of features you need. But by using Faye, you could implement your own simple chat app.
The Juggernaut plugin for Ruby on Rails aims to revolutionize your Rails app by letting the server initiate a connection and push data to the client.
http://juggernaut.rubyforge.org/.
Refer this thread
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
I'm doing some development which will involve reacting to emails, and I'd like to use a local IMAP mail server for this.
I currently use Devnull SMTP server for testing of sending emails, but this just logs and discards messages, it doesn't do IMAP for checking incoming emails/mailboxes.
I don't need/want a full-blown server, just something lightweight I can easily start/stop as required.
Multi-platform is preferred, but feel free to provide answer for specific platforms also.
(A POP3-based server would also be acceptable for development use, since I'll be supporting both in my code anyway.)
Take a look at hMailServer.
I consider JAMES the best mail server for development. And its portable too. Fully written in Java.
Mercury Mail Server is a full featured mail server (minus webmail), however it is very light and should meet your need: Mercury Mail Server
Edit: Forgot to mention Windows/Netware only
Check out courier for unix-based machines. I've run it for quite some time on a linux machine, and it's very nice. You can easily enable/disable the features you want, including SMTP, POP, IMAP, SMTP Auth, SSL versions of protocols, etc.
exim works nice even in windows via cygwin.
Mdaemon is an excellent windows MTA. Lots of good reasons to use it in production too.
Another different option is to use Gammadyne mailer in server mode.
http://www.altn.com/products/mdaemon-email-server-windows/
http://www.hmailserver.com/
http://www.gammadyne.com/gm-list_management.htm