When running a Magento store, it's often necessary to quickly edit some files. You might for example want to edit a css file, product view template, or maybe upload a bunch of images. Unfortunately Magento doesn't have a nice file manager or template editor built-in. The image and file upload system is alright, but lacks the freedom to upload files to other directories than the Magento media folder.
While FTP access can do all these things, it often feels clunky, and requires you to download a file, open it, save it, and re-upload, which are a lot of steps for just a simple edit. Another downside of using FTP is that you can't search for files.
Another option would be to use a file versioning system like subversion or Git, and keep a local copy. This is of course a beautiful solution, but setting this up requires some effort and sometimes it's nice to keep everything in the cloud. For just doing some small changes, using a local version of the shop seems like overkill. By using a more simple cloud based approach, the system will also be more accessible for your less tech-savvy customers and colleagues :)
Pydio for file management and quick edits
Pydio (formerly named AjaXplorer) is a php application that lets you run your own Dropbox like cloud on your server. It features a full fledged file browser with preview and editing capabilities, syntax highlighting, and several nice plugins like Dropbox and Git version control integration.
Pydio also includes a drag and drop file upload functionality, which makes uploading multiple files to custom folders very easy to do. Besides this Pydio can index all your files, so you can search them using Lucene, which drastically speeds up navigation. Do you have several files that you frequently swich between? You can bookmark them, so you can always re-open frequently used files quickly.
Configuring Pydio to work with Magento
Installing Pydio is a breeze, it runs on PHP and MySQL, so if you can run Magento on your server, you probably can also install Pydio. I won't go over the installation here, head over to http://pyd.io for instructions. I would recommend to install Pydio on a separate subdomain, to prevent mixing the Pydio files with your Magento files. This way you can use Pydio for several projects installed on the same server.
Once you have installed Pydio, click on your username in the top right corner, and go to 'Settings'. On the next page navigate to 'Workspaces' and add a new workspace. Choose File System as Access Driver, and define your Magento path. Don't change the purge days, this might cause your files to get deleted!
And voila! You're done. You can now browse and edit your Magento files using Pydio by opening the Magento workspace. Optionally you can configure Lucene search and Git version control with Pydio, giving you the possibility to search through your Magento filesystem, and roll back any changes you made to any Magento file.
While Pydio is perfect for uploading and managing files, the only downside is that the file editor tends to get a bit laggy when editing big (4000 lines or more) css files. Besides that, the file editor, which is using only a basic version of Codemirror, misses some features you normally expect from a real IDE and might not fully meet your requirements.
Cloud9, a full fledged (Magento) IDE
Meet Cloud9 IDE. This full fledged IDE is completely cloud based and completely open source! Cloud9 runs on nodejs and can be downloaded from their Github page.
Because Cloud9 runs on NodeJS, you might or might not be able to install it on your server. If you have shell access, it should be no problem at all. NodeJS is great, if you haven't checked it out yet, you definitely should!
Once you've set up Cloud9 IDE, simply point it at your Magento directory and you're good to go. Don't forget to password protect Cloud9 to prevent uninvited guests :) I'd recommend installing 'Forever' using npm, and running Cloud9 as a service. This way you can log out of your SSH session and keep your personal Magento IDE running forever.
forever start server.js -w /path/to/magento/ -l my.host.name --username myUserName --password myPassword
If you have any questions regarding using or installing these two great applications, please leave a message in the comments below. We use them both daily for managing several Magento installs, and they prove very useful each time.
Suggestions for other good methods and apps to manage Magento files are also always welcome!