Embed/package mongodb with electron builder - electron

is there a way to ember Embed/package mongodb installer with electron builder.
I have tried npm/github repos, and find none.

You cannot bundle MongoDB with Electron.
Quoting from this site: https://www.techiediaries.com/electron-data-persistence/
Pros and Cons of Using MongoDB
For the pros of using MongoDB with Electron apps:
Available for all Electron suppored platforms such as Windows, Linux
and MAC. So it doesn't limit the cross platform feature of Electron.
Can be installed and integrated easily with Electron.
There are also some cons:
Can't be bundled with Electron so the end users need to install it
separately from your application.
Overkill for small apps.
There are some other persistent databases you can package with Electron, such as NeDB, that you might consider trying.

Related

deploy a ruby on rails application

I'm trying to deploy a ruby on rails application. It uses mysql for
a database. What I would like to do is distribute it as a windows
executable. It should be in such a way that the user can click on the
application and everything will load and a full screen browser window
will appear. This way the user will know nothing about it being a
browser and need no ruby components installed to run the application.
i am using 3.2.6 , ruby 1.9.3 , gem 1.8.24
Has anyone done anything like this?
Well, you can create a portable distribution - self-extracting archive that will extract your Rails application, pre-configured Ruby package with all necessary gems, and a bat-file, that will add Ruby to PATH variable, run Rails server and open browser window. Making a MySQL portable will definitely be a pain in the ass, I presume.
One of the key disadvantages is almost zero level compatibility - some gems will not work on certain systems, incompatible database drivers etc.
I once tried to do the same thing with Apache+MySQL+PHP, ended up using one shared PC as a server, distributing just browser launcher as a standalone app.
This might be a job for JRuby.
Try installing JRuby on your development machine and seeing whether your app runs in JRuby without any compatibility issues. These days that's reasonably likely.
Running your app in JRuby gives you the ability to package up all of Ruby, Rails, your gems and your application as a single .war file which can then be deployed within a java application server like Tomcat (using tools like warbler)
This still leaves you with the task of installing all the infrastructure (database, java, java application server etc).
I'ld try to prepackage a virtual linux box with all what your application needs and release that instead.
And, yes, I am very interested in the final answer as well :-)

Is it possible to 'clone' my Rails development machine?

I just began the process of setting up a new Mac as a Rails development machine, but the thought occurred to me: do I have to do all this again from scratch or can I somehow copy/clone my development environment from my existing machine (also a Mac).
Could I, for example, clone my machine using SuperDuper? Or are there any other tools to make the process of developing from more than one machine less agonizing than manually re-installing databases, Ruby, Rails, etc?
Thanks in advance for any ideas.
The rails framework itself is designed to be highly portable, especially version 3 ( with the introduction of a tool called bundler ), it lets you package all of your code and dependencies very easily which makes redeploying elsewhere simple.
Also you could look into using a tool such as RVM for managing ruby installations, RVM makes it very easy to deploy new versions of ruby into any environment.
http://rvm.beginrescueend.com/
And bundler:
http://gembundler.com/
The whole ethos of Ruby and Rails is based around portability and transparency. Once you start developing with it you start to see how easy it is to redeploy your app to other environments.
If you use a distributed version control system like git, you'll be able to pull down a copy of your application to any machine connected to the web.
Capistrano is also something you might want to look at, its a deployment tool and if you couple it with a version control tool such as git, you have a very powerful combination for pushing updates/changes to your deployed application
You can use Carbon Copy Cloner (http://www.bombich.com/) to copy your HD to another, which you can boot from. Also, if you use TimeMachine on another drive/network drive, then you can restore another machine from the backup.

Deploying a Rails app offline and with all dependencies intact

My goal is to deploy an existing Rails app on a machine. Oh, and the machine is on a handful of terminals in a remote community in the north of Australia. Oh, and I can't rely on there being Internet access for troubleshooting or admin purposes.
I'd like to package the app with a fresh copy of Rails and all of the apps dependencies (some of which must be built natively) so that the server can be run and a browser used as the front-end. The remote machines are modern Macs, and I should be able to replicate the configuration for testing here.
I've spotted some projects like Locomotive and Joyent Slingshot, as mentioned in this thread, but both of those projects seem to have been abandoned, and this link is Windows-specific.
Does anyone have any guidance as to what the modern way of doing this is? A community project thanks you in advance :)
Well, assuming those remove machines have Ruby available, you could use Bundler to freeze all your gems in your project:
bundle package
Read more at getbundler.com

Distribute CouchDB as part of a Rails app?

I am working on a Rails project and the Architect has asked me to investigate bundling CouchDB into to application so that it can be deployed by Capistrano across multiple platforms and managed by Rake.
My expectation was that I could set up the Erlang VM on the various environments and then distribute the CouchDB application with Capistrano. However I can't find any option to download CouchDB without the Erlang runtime. I can, however see an option to build CouchDB from source which I assume is platform dependent.
I am new to Erlang and CouchBD, am I missing something? Is there a way to bundle CouchDB into a Rails app and distribute it across multiple platforms?
Have a look at some of the tools for provisioning Rails services (such as passenger_stack). Passenger Stack will download, make and install the ancillary services for your Rails app ... might be something you can adapt or use as a base to install Erlang and CouchDB.
There are a bunch of alternatives to this as well. Deprec contains recipes for provisioning with Capistrano. Essential idea is the same though.
I think you will not find a silver bullet. Distributing Erlang is similar to distributing Ruby; however Ruby has the advantage of being included in many default OS installs.
I know ejabberd has pre-built binaries for many distros. You might investigate how they do it.
The correct solution probably depends on how many "multiple platforms" you are targeting. If it's "Ubuntu 8.04 plus Ubuntu 10.04" that is different from several Linux distros, plus OSX, plus FreeBSD. Typically only open source projects support those many platforms and ideally you can get patches from the community. For internal projects, I have seen teams standardize on a Linux build and use virtualization on Mac/Windows.
But back to your question:
Building from source is a reasonable option. You could build when you deploy, or pre-build for all platforms and then deploy the binaries. Both Erlang and CouchDB use Autoconf which means you can --prefix them to a dedicated location (more-or-less standalone apps). It will take some trial and error but your build script can
Platform-specific dependency setup: gcc, make, autoconf, everything you need. apt-get on Ubuntu, yum on RHEL, Macports, whatever you need to get a common platform on your development and deployment system
Compile and install the rest using the tools from step 1. Use configure --prefix=/opt/my_software to keep it all in one place. (You can totally uninstall with rm -rf.)
This is an medium-level challenge--mostly trial and error. If possible, work within a build framework such as Rake or Toby's suggestion passenger_stack. Good luck!

Distributing Rails applications in an OSX .app container

I want to distribute a Rails application within a .app package, so it can run from 10.4 to 10.6; is there any howto or hint on how to do that? Especially the following things make me twist my head:
I want to repackage the app with Ruby 1.8.6, so it would run even if there is an older version of Ruby installed on the system (such as 1.8.4 in Mac OS X Tiger) - how would I come around the universal binary problems? Can I just add Ruby and use this specific Ruby version to run my app?
IMPLEMENTATION: I want to have a .app that starts thin or mongrel when the app is started and stops the app when it is closed. Is there any example OS X XCode project out there (or any other example)?
Is an XCode container the way to go? What are the other options I have?
How about using jRuby for your application, you could then package your whole application as a single .jar file and distribute it that way.
I've been able to run my Ruby on Rails appliations in jRuby without any major modifications to the application besides changing the native MySQL driver with a pure java JDBC implementation.
Also check out this similar question and the Kenai project for more information about jRuby.
The MacRuby people might have some ideas
It seems to be only a matter of time before you will be able to run Rails apps in MacRuby. With v0.5b2 it already supports Sinatra, Racks, RDoc and others.
I would go for MacRuby if you can wait (or port your Rails app to Sinatra)
Otherwise I guess you could write a tool in Objective-C that runs an embedded Rails App via some terminal commands. You can find some pointers here.
Have you tried Crate? Actually it's a tool for packaging a generic ruby app, but you might be able to stick a rails app into there.
A couple of links:
http://rubyconf2008.confreaks.com/crate-packaging-your-ruby-application.html
http://www.copiousfreetime.org/articles/2008/11/30/package-an-application-with-crate.html

Resources