I have read about how to deploy a Ruby on Rails in Windows, some of them about Windows Server and IIS.
I downloaded Rubyinstaller and its Dev-Kit in my developer pc to develop my application, however I don't know how to use it with Apache instead the embed WEBrick server. Some people have pointed that using Passenger Gem is not a good idea in terms of performance, but those posts that I found are before 2012 or older.
I would like to know how to deploy a RoR application (Rails 4.x, Ruby 2.x) in a production server with Windows Server 2012 and XAMPP (Apache), without breaking most of the current configuration, preferably not using IIS.
I also found a Bitnami installer with the Ruby Stack. I could customize the installation deselecting those components that I already have or I don't need, like Git, PHP, MySQL, etc. but installation of Apache in this installer is mandatory, so, is there any chance to avoid breaking my current installation/configuration of Apache (installed by another Bitnami XAMPP installer)? I already have an Apache/PHP installation that I don't want to break.
Based on your requirements I would run the app in Docker on azure/windows server.
Or try puma, using this windows install tutorial https://github.com/hicknhack-software/rails-disco/wiki/Installing-puma-on-windows.
Ideally, you'd just use Docker and run the app in a linux container to avoid all the potential problems. However, since Windows Server 2012 lacks native support for containers, I don't think you can have Docker running directly on this windows server.
So, instead, I'd suggest adding an extra layer in between - deploying a linux VM which has Docker installed and contains a Docker image which contains your application to the windows server.
The are a couple of ways I see fit is to host your app in IIS. The only problem is that IIS does not have a native way to host Rails app. OPTION 1 - We used Rails on an existing IIS web infrastructure using Mongrel:http://www.napcsweb.com/howto/rails/deployment/railsonIISWithMongrel.pdf
Or
Option 2 using Mongrel without IIS like so:
install rails and mongrel
gem install rails –include-dependencies
gem install mongrel –include-dependencies
serve rails app
rails app
or
ruby server 0e production -p 4001
check you can acceess the site
press ctrl-c to exit
Install Mongrel as a service
mongrel_rails_service install –n rails_app –p 4001
start the rails_app service from services.msc
From the original rails documentation you have more options to host your ruby app on production:
http://weblog.rubyonrails.org/2006/5/11/deploying-rails-on-windows-servers/
Related
Yes I know there's not much support for deploying Rails apps in Windows but this is a requirement. I've searched online for hours looking for a solution to no avail! I don't need to use any particular server just anyway to get my app viewable on the company intranet.
I installed the WAMR (Windows, Apache, MySQL, Ruby) stack using the BitNami rubystack 1.9.3 installer. I can see my app using the WEBrick dev server just fine in localhost. I can even see the BitNami Welcome screen (index.html) when pointing to my Windows VM IP address from another computer on the intranet, but I can't figure out how to push the Rails app itself to production so that all other intranet computers can see it. Any solution would be appreciated! The server doesn't have to be Apache.
Thanks!
Quick and easy way to deploy a rails app on windows?
I would recommend virtualbox to run a linux virtual machine. Install vagrant and you'll be able to fully automate the download of the linux image and rails provisioning using tools like chef or puppet.
I'm looking to run Redmine, a Ruby on Rails app, on a VPS windows box. The only thing I can really think of is running a virtual Linux machine and hosting it from there. If that is my only option, am I going to run into problems running a virtual machine inside of a virtual machine?
Also, this will be an internal app, so performance isn't my number once concern.
Windows is not the usual place to deploy production Rails apps, but there are people who do it. Mongrel was originally written to give better deployment options for Windows. As it turned out the UNIX deployment options weren't that good either. :)
Start with the Ruby One Click installer so you have a sane installation of ruby and rubygems.
From there, you install the rails gem and the gem for your database like you normally would. Most if not all of the databases have Windows gems.
Make sure to install mongrel_service to be able to control each mongrel like a normal windows service. See mongrel_rails service::install -h for details.
Once you have your mongrels set up, it's similar to a UNIX deployment. You set up a reverse proxy, such as Apache2 and you're set.
You might run into some gems (such as BackgroundRB) that will not work under Windows because they have C code that either rely on UNIX libraries or expect a UNIX-like build system at installation time. However, all of the really important Rails gems, such as Mongrel and the database adapters, have gems with pre-built binaries available, so you'll be fine.
Just grab the Bitnami RedMine stack.
Or the Bitnami Ruby on Rails stack.
Redmine ran fine on our Windows build server from the command line, sans IDE, using Mongrel and SQLite. Granted, ours isn't a VPS, but at any rate Linux isn't required for this app.
The BitNami Redmine Stack is a free, up to date Windows installer package for Redmine on Windows, Linux, OS X... give it a try. You can also download a VMWare Virtual Machine as well
I had good luck in the past with InstantRails, but I'm not sure how up-to-date it is now, as the project has changed hands several times.
You might also try ruby stack or flash rails, though I've not used either personally.
You can install SQLite and a Rails server like Mongrel on a Windows machine. I used Aptana to run a development environment, but I'm sure that there are better alternatives that don't require the IDE to be open to run. But this proves it is possible.
Try using a Rails distribution like: http://instantrails.rubyforge.org/wiki/wiki.pl
One download install for rails+ruby+mysql on Windows.
I am using Ruby on Rails 3.0.9 and I would like to publish my web site. I already set my VPS running Ubuntu 10.04 LTS and the capistrano gem (this one I think as well as possible). Now, what I need to do is to upload all files to the www/project_name directory (I am on Mac OS)...
What I have to do to accomplish that?
You don't need your deployment machine to have Capistrano. Capistrano automates a bunch of tasks that I suggest you do at least one manually so you know what's going on. Sooner or later, you'll be debugging some Capistrano task, so you may as well figure out the guts sooner or later.
Coarsely, what you need to do is to basically duplicate your development environment on your production machine. If you have it on version control, you can git clone or svn whateveritis on your production machine. If not, you can scp it over with scp /local/rails/dir remoteuser#remotehost:www/projectname.
At this point, you should actually do the remainder of the work on the server. Since you've managed to install Capistrano, I assume you're familiar with the basics of making your way around SSH.
Once the code's over, you have to install the prerequisites. If you're using 3.0.9 you should be able to run bundle install --deployment, where the deployment flag basically tells bundler to use the identical gem set as on your development machine.
When that's done, actually getting the server online will vary based on your setup. If you're using non-standalone passenger, just follow any of the many guides at this point. If you're running standalone passenger or thin or unicorn or any other standalone rails server, go ahead and start that in daemon mode (so it won't quit on you when you end your SSH session) and make sure you se the production flag. You can either start it in sudo and have it listen on port 80 (e.g., sudo thin start -d -p 80) or have it listen on a higher-number port and use a reverse proxy on your WWW-facing server. The instructions for how to reverse proxy are all over the internet.
Let me know if you have any questions.
You have half of a deployment solution with Capistrano. Commonly Passenger is used as the other half, which sits on the server and loads your app. To accomplish this, usually, SSH keys are used. There are numerous tutorials on how to set this up. One of my favorites written by Dan Benjamin can be found on his blog Hivelogic.
Edited to provide more begginer info:
Capistrano begginer's guide from the Capistrano wiki.
Passenger Stand Alone Guide from the Passenger website.
Be sure to check out the other guides for the webserver of your choice when you're ready.
These guides will give you the background you need to get a local Passenger & Capistrano deployment going. These guides provide the knowledge you need to get achieve what you want.
Simple and short sample of deployment via SSH http://alexeypetrushin.github.com/vfs/ssh_deployment.html
I've been developing my first rails application on my windows computer.
But now i have been setting up a debian server with nginx and passanger.
I've been using Github to keep track of my application and now i am wondering how i can get the Github version of my application to the debian server and put it in production mode?
Anybody that have a good guide about this or something?
Getting the code to your production server is just the tip of the iceberg. What if you want to rollback to the previous version? Or tag a specific version and deploy it? How will you deal with different versions of configuration files for your development vs. production scenarios?
That's why you need Capistrano. It lets you do all this (and more) from the command line of your development machine. Take a look at the "From the Beginning" chapter to get started.
You'll also need some basic knowledge of shell commands and SSH.
Also have a look at the Phusion Passenger docs to see what is needed on the server side.
I'm looking to run Redmine, a Ruby on Rails app, on a VPS windows box. The only thing I can really think of is running a virtual Linux machine and hosting it from there. If that is my only option, am I going to run into problems running a virtual machine inside of a virtual machine?
Also, this will be an internal app, so performance isn't my number once concern.
Windows is not the usual place to deploy production Rails apps, but there are people who do it. Mongrel was originally written to give better deployment options for Windows. As it turned out the UNIX deployment options weren't that good either. :)
Start with the Ruby One Click installer so you have a sane installation of ruby and rubygems.
From there, you install the rails gem and the gem for your database like you normally would. Most if not all of the databases have Windows gems.
Make sure to install mongrel_service to be able to control each mongrel like a normal windows service. See mongrel_rails service::install -h for details.
Once you have your mongrels set up, it's similar to a UNIX deployment. You set up a reverse proxy, such as Apache2 and you're set.
You might run into some gems (such as BackgroundRB) that will not work under Windows because they have C code that either rely on UNIX libraries or expect a UNIX-like build system at installation time. However, all of the really important Rails gems, such as Mongrel and the database adapters, have gems with pre-built binaries available, so you'll be fine.
Just grab the Bitnami RedMine stack.
Or the Bitnami Ruby on Rails stack.
Redmine ran fine on our Windows build server from the command line, sans IDE, using Mongrel and SQLite. Granted, ours isn't a VPS, but at any rate Linux isn't required for this app.
The BitNami Redmine Stack is a free, up to date Windows installer package for Redmine on Windows, Linux, OS X... give it a try. You can also download a VMWare Virtual Machine as well
I had good luck in the past with InstantRails, but I'm not sure how up-to-date it is now, as the project has changed hands several times.
You might also try ruby stack or flash rails, though I've not used either personally.
You can install SQLite and a Rails server like Mongrel on a Windows machine. I used Aptana to run a development environment, but I'm sure that there are better alternatives that don't require the IDE to be open to run. But this proves it is possible.
Try using a Rails distribution like: http://instantrails.rubyforge.org/wiki/wiki.pl
One download install for rails+ruby+mysql on Windows.