Question: I am new in Ubuntu. I just want to build the servers for my own/home use. Some questions:

1. as the title, can Ubuntu run mail server, web server, file server and VPN server at the same time in one single computer (assume the computer has enough power to handle).
2. I am new to Linux and Ubuntu, can the Ubuntu desktop version (GUI) do the above mentioned job or I have to use Ubuntu server version to do the job.

Thanks for your help in advance.

Joseph

Answer: 
1. Yes, you can run all these services together on one machine.
2. Yes. A ubuntu desktop version and server version are the same system and differ only in the selection of packages installed during installation. Most importantly, a server edition doesn't install a desktop environment, therefore has none. If you would install a desktop environment in a server edition you would have one. A desktop edition, on the other hand doesn't install some services needed for servers (like ssh). But of course you can just install them if you need them. Therefore, if you use any edition of ubuntu, you can use it to install a mail, web or other server without problems.

A difference between the two editions that might be relevant for you is the network management used. GUI editions use NetworkManager to handle network connections while the server edition uses old but trusted `/etc/network/interfaces` file and `ifupdown`.
Yes Ubuntu can run all of the above services, its probably a good idea to use multiple machines / containers to do it (look into LXD / LXC). 

As for the particular services; 

* Mail server: You have multiple choices but here is the [first result from google for setting up SquirrelMail](https://www.tecmint.com/setup-postfix-mail-server-in-ubuntu-debian/)
* Web server: You have 100's of options the most popular are probably [apache](https://httpd.apache.org/) or [nginx](https://www.nginx.com/)
* Fileserver: you can use [samba](https://help.ubuntu.com/community/How%20to%20Create%20a%20Network%20Share%20Via%20Samba%20Via%20CLI%20%28Command-line%20interface/Linux%20Terminal%29%20-%20Uncomplicated,%20Simple%20and%20Brief%20Way!)
* VPN: for the vpn you can use [OpenVPN](https://openvpn.net/) [which you can see how to setup here](https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-16-04)

There are also hundredths of alternatives for the pieces of software listed above so try googling and experimenting before settling