views:

65

answers:

2

let's say that RoR development environment is set up and working

does the developer need shell access to develop the RoR application?

would ftp be good enough?

why? I don't want to give my future developers ssh access to my linux box. Or can I set up their file permission so they can read only their project directory?

UPDATE

the whole idea is to have below running on my VPS linux hosting

  • code repository
  • production environment
  • test environment
  • maybe development environment

for

  • few projects
  • that are looked after by different people

so I want the developers to be able to do their job and only be able to access their project files and maybe only I would be able do to deployment into production from test environment

+1  A: 

Well it does not REQUIRE shell access, but it sure makes it easier.

Without it how can you migrate a db? You would have to manually create controllers, models, etc.

Short answer, you CAN develop without shell access, it is just awkward and more tedious.

Tom
I thought so :-( So now I have to find out if I can have few developers working on different RoR projects on a server and have it set it up so they cannot see each others files ...
Radek
+1  A: 

As Tom mentioned, it makes life a lot easier on Rails developers if they have ssh access to the machine so they can migrate the database, run bundle install, check the logs, or just jump into console.

There are ways to segregate users though, through file/directory permissions, chroot, or but making your linux machine a bunch of virtual machines and giving them their own

You can take a look at how Heroku's client works for possible ideas, since Rails developers are able to deploy, migrate, check logs, and even get into the console without direct shell access. Deployment is all done via git hooks and then their client gives access to particular commands. This is not trivial to set up/get working, though.

Dan McNevin
@Dan McNevin: that's very interesting ... could you bit more elaborate on `making your linux machine a bunch of virtual machines and giving them their own` I cannot grasp how that could work
Radek
how could the 'virtual machines' thing work on VPS linux hosting?
Radek
ie. http://serverfault.com/questions/28399/how-to-run-vmware-esx-or-esxi-in-a-virtual-machine. VMs in VMs... hum, not a bad idea. It all depends on your hardware. Or if you want to save time you can go the lazy route, buy a dedicated machine and use something like Xen. Or another possibility: change permissions on folders for different users and only allow ruby, irb, rails, and gem to be executed from shell (require sudo for all others, or use aliases).
Tom
VMs is definitely going to be something that works best for dedicated hardware with a lot of RAM, processor, and disk. At work we have a few different platforms dedicated to virtualization, big commercial bladeframes as well as some 2U servers that just run vmware.If it's a VPS where you don't have that much control over the resources, I'd really suggest going the chroot route. That gives each developer their own segregated environment, and then you can have passenger just symlink to each application's public directory and set the URI or virtual host.
Dan McNevin