Skip to main content

Monsta, Web FTP file manager in PHP Ajax

monsta web ftp logo

Few days ago, I wrote an article on net2ftp, a web based FTP file manager letting you upload, download and manage all your file on your FTP. With a simple design and easy to install, net2ftp is still widely used. But if you are looking for some a bit more advanced, Monsta is probably what you are looking for.


Monsta - file manager upload

Monsta is an open source web based FTP file manager written in PHP and Ajax. Easy to install too, it lets you upload, download and manage your file in an easy way too. With drag & drop to upload or move, on screen file editing and multi language support, Monsta can replace your desktop FTP software like Filezilla and co. And Monsta is not afraid to claim it! “Say goodbye to desktop FTP software, forever!”

Monsta - set file permission

You can watch a demo here to let you have some idea on the product. Interested? Let’s see how to install it:



1) Download and unzip their latest zip in a dedicated folder of your /var/www

Currently, their latest version is the V1.4.5. But make sure you download the latest one.

In root (or with sudo), run:

2) Change the owner of the folder (by www-data:www-data) to avoid permission issues.

And you’re good to go!

You can directly access it through http://yourIP/monsta

Monsta - login screenshot

You may encounter several problems, especially on the execution time to upload or number of files to upload, etc… you can check their forum or FAQ but all these issues are usually linked to your php.ini configuration. To increase the php value for the size of the upload, execution time, etc.. I recommend you to set up a dedicated virtualhost (And using a sub domain + SSL, meanwhile) and here is how to:


Virtualhost configuration

Let’s assume you want to access to your newly installed monsta through the URL ftp.domain.tld

What you will need:

1) Create a A redirection in your DNS server/registrar with wiki.domain.tld to your IP

2) Have SSL certificate ready. If not you can read this tutorial. (Optional)

3) Create your virtualhost as following:

In /etc/apache2/sites-enabled/, create a file called monsta (In root):

and paste the following content:

Adapt the content (Servername, webmaster email, SSL certificate, directory and php values).

When done, save the file (CTRL+X then Yes) and reload apache: (In root)

If everything went well, you should now be able to access to your Monsta Web FTP through the url ftp.domain.tld. It should redirect you to the HTTPS version.

Net2FTP, web based FTP client

Using a FTP nowadays is not as popular as it was before, with all the younameit-box type (Dropbox, Google docs, etc..), less and less people use a FTP to share files. Especially it requires a FTP client (Like Filezilla and others) and needs usually the port 22 to be open.

But if you still use one, you could be interested to have a web based FTP.

Net2FTP is probably the most popular one.

net2ftp login page

OpenSource, net2ftp allows you to navigate through your FTP server, upload/download files, edit files, view directly the code with syntax highlighting. Also, on top of allowing you to copy/move/delete to 2nd FTP server, net2ftp let you rename, chmod (recursively) zip/unzip your files on your FTP server.

A search feature is also there to help you find your files based on name but also with specific filter like size, file type and modification date.You can give it a try on their official page. But not that although it is a trusted app, there is no guarantee that no info is being kept from their online service. So the best is still to install it on your own server and here is how to do it!Their V1 is a bit old now (2013) but still works like a charm and is damn easy to install!

net2ftp browse FTP file


You only need a Web server and PHP and can install net2ftp on a different machine than the FTP server if you want.

1) Download their full version (With all the plugins) into your /var/www

In root, (or sudo), run:

2) Unzip the archive and move the “files to upload” to the root of your /var/www

3) Change the owner of the folder (by www-data:www-data) to avoid permission issues.

And you’re good to go!

You can directly access it through http://yourIP/net2ftp.


Optional configuration

Although net2ftp should work out of the box, you can still tweak few things to improve your or your users’ experience.

The configuration file is called (and is quite self explanatory) and you could be willing to modify:

– Email address (The “from” email address when sending attachment);

– Password for admin panel;

– Message on browse screen;

– Set a MySQL database to records Net2FTP activity;

– Max file size to upload (10mb per default) – Note that you will also need to adjust your php.ini or set upload_max_filesize value option in your virtualhost.

You should now be all set!

how to send a file

Host your own server – Where do we start?

So you wish to install your own server to run may be a website or your own mail, or a specific application or service (Subsonic? Minecraft?…)

You will obviously have few requirement to match based on your needs.



You could have a dedicated server using OVH or any other provider, but I’ll assume your here to use your own hardware and host it at home.

In fact, a server does not need to be very powerful, so you could reuse an old laptop or computer if you want. For example a Rapsberry Pi (Based on Arm with 256Mo Ram) is enough to host quite a few services. But don’t except high reactivity tho.

My first dedicated server@HOME was a custom ITX (Small size) config based on:

Case: Thermaltake Element Q

Motherboard: Intel DG41MJ (ITX socket 775)

Processor: Intel E5300 2.5Ghz


250GB 2.5 7200tr/m Hard Drive

Paid 250e 4 years back

And I had a very good experience with it and I was hosting few websites with modest trafic (few hundreds per day) and dozen of services such as Subsonic, Ajaxplorer, FTP, Mails, …. No need to be much faster in fact.

Although my config now is way too powerfull for my needs (But it was my own gift xD)

I’m now having a i7 2600 with 16GB Ram + OCZ Vertex 3 SSD 64gb + 2x2To Storage (For duplication). I actually really enjoy using SSD in my machines now (Fast load time, very good performance with MySQL databases or heavy I/O tasks)


Obviously the faster your Internet connection is, the better but I would say there is no specific minimum, it will just limit your type of services and traffic.

If you could have at least 128kb/s (16ko/s) upload speed with your ADSL, that would be a good start. Download will not matter much usually, as upload is always the bottleneck in ADSL. (If you are having cables, ADSL2, VDSL2, or even FTTx, lucky you. In that case you will probably be very comfortable with upload)The server described earlier was on an ADSL2 connection at 16M/1M.

Now I’m having FTTB with 100M/40M (So much faster…indeed)

Another important aspect of your network will be your router, to route correctly the needed traffic to your server. You will need to open several ports to let enter the traffic.

Operating System:

GNU/Linux is THE Operating System for servers. Widely used, very stable and with good performance, it is a good choice to run your server on.

In the GNU/Linux family, it exists a lot of “flavor”, Ubuntu being the most popular and very easy to handle. Ubuntu has a dedicated server version called Ubuntu Server and will run quite well. But although I’ve started with Ubuntu Server, I’m quickly moved to Debian and could only strongly recommend you to give it a try.

Ubuntu being based on Debian, you will not feel much the difference as a server version. However I felt Debian to be much more stable and reactive than Ubuntu. However Debian got 3 majors branches (Stable, Testing and Unstable) with different version of application. Stable being based on very robust and tested set of application, while Testing has more up to date and Unstable being cutting edge version, with possible bugs for these 2 versions.

You want to play safe? I suggest you to use Debian Stable and if an application is not up to date enough, to install a more updated version from backport repositories.