Need to host email, ERPNext and a basic business website - VPS, OS & APPs advice?

Hi everyone,

I’ll need to run a server to host a small business website, an ERPNext instance, and an email server. Aim is to try make it as hassle-free as possible (not requiring many hours a month for maintenance).

I’m not SUPER tech savvy, but I know how to manage my way around as long as there are decent guides.

  • Website (minimal traffic): It’ll be simple, no e-commerce, mainly a brochure/profile of the company and products with a feedback/contact form. Is wordpress an overkill? Any tips?

  • ERPNext (5-7 users to start): Though there’s an easy install script for some OS editions, I’m thinking of following this method https://speedysense.com/install-erpnext-on-ubuntu-18-04/ - not sure if it’ll contradict with any other installations or apps

  • Mail server: around 10-15 email accounts at the moment (if possible with some shared email accounts, like sales or info). I heard of Postfix - is it good or shall I consider other? Also can it be run and managed by control panels like RunCloud?

  • Control panels: There’s cPanel, RunCloud, Serverpilot… Online reviews seem to favor RunCloud to manage overall server and apps (incl. lets encrypt), what are your thoughts? does it work for managing email accounts too?

  • VPS: I heard alot of good things about Vultr high frequency servers. Will 1GB RAM suffice or do I need 2GB?

  • OS: Seems most my needs can be covered by Ubuntu 18.04 (64bit)- any other considerations?

What are your thoughts on the above? Any thoughts/concerns? What about overall security, how should I approach it?

Thanks for any tips and advice.

I have done some of what you are attempting for several clients. I intentionally set things up to be minimal hands on support. Here is what I have done in the past year that seems to work. (Everything I do now is on Ubuntu 18.04)

  • For website and email, I have been purchasing a low end KVM type vps server with 2gb of memory and 1 or 2 CPU. I then use “Mail-In-A-Box” to setup the email server. It is a open source mail server that has a very easy installation and configuration package. It also allows for a simple brochure type website to co-exist. You can read more about this at:
    https://mailinabox.email/

  • For the ERPNext server I use a separate KVM type vps server. In your case you could probably get by with a 2gb server unless you are going to be moving large number of items between warehouses or to customers. If you intend to do manufacturing or other functions that require a higher traffic platform, then consider doubling the size of your base server. ERPNext also has some even more robust website abilities than the simple one on MAIB.

  • If you are not comfortable with the website options, then consider getting yourself a shared server type web hosting account where you can setup your own sites and sites for others as well in the future. I think I paid $99 a year for an account that I have currently hosting about 25 websites.

Please be aware that Both ERPNext and Mail-In-A-Box do not play well with other packages sharing the same server. This is why I always use 2 servers at a minimum.

There is however an added benefit to this arrangement. You can setup the excess space on the mail server to be an off site repository for the copies of the data backups from the ERPNext server.

However, if you really want something bit less vulnerable to failures, you amy want to consider adding at least one additional server to the mix and use the information from this thread to create an easy to manage backup system:

Regardless of how you wish to move forward, the best approach is going to be multiple (semi-) dedicated servers. The customizations required to try to get multiple important servers to co-exist on the same single VPS is not worth the constant headache of keeping it tweaks and running after you eventually get it online. I am sure there are some hardcore systems people here on the forum that will disagree, but the last point you made was that you were NOT necessarily the super tech savvy type. So, this is my recommendation.

As far as control panels, you should probably take this opportunity to get practiced at using the ssh command line. You will find it is generally easier as you spend time with it. The control panels serve the casual user fairly well, but to actually run a server that you want to put into a production environment, I would recommend getting more familiar with the command line. It only seems scary at the beginning, but the more you learn the better you will understand how to quickly fix many of the issues you will bump into over time. The contral panel becomes a crutch in the beginning and a stumbling block over time.

Of course, as always - Your mileage may vary… :sunglasses:

Hope this helps.

BKM

3 Likes

You can also try ERPNext cloud for standard hosting for 5 user @10 per month i thing? I can give you a good small VPS free with condition, for your other solution. Only if you purchase the ERP hosting from ERPNext.

Hello bkm!

Thank you very much for your detailed and complete response - I really got many ideas through your response that I’ll be considering going forward.

Quick followup question if you don’t mind:

  • On the VPS with ERPNext (or any other VPS), what security measures do you normally put in place? Some of the recommendations to setup Runcloud was primarily for the security measures it provides.
  • With regards to the website, have you tried the ERPNext-provided website module? If yes, any idea how it compared to Wordpress for instance? Plan is to just create a simple brochure like website to showcase company profile and available products.

Also, do you generally follow this setup method for ERPNext: https://speedysense.com/install-erpnext-on-ubuntu-18-04/

Thank you for your help!!

Glad to help.

As for the security, I dont do anything very special. I just force the users into 2 level authorization and in some cases I force login sessions to be limited to 4 hrs.

I do not use the ERPNext website module, I have a resellers web hosting package that only costs me $99 per year and I host all of my client sites on it as well as my own.I have used the simple website function of Mail In A Box, but it is really limited to being only a brochure type of site.

As for using your link to do my installs, I would have to answer NO. The link you provided is really outdated and does not take into account recent changes in the ERPNext system.

For the past few months, I have been using the following process and it has been working very well for me:

Your link still uses a version of python that is slated to be unsupported in the next 60 days.

Hopeful this helps.

BKM

I would like to give you the crisp details of what i do
Server 1: ERPNext with a custom app to host the website choosing the bootstrap template of your choice.(minimum 2GB Ram recommended)
Server 2: iRedMail mail server which comes with a host of security features and mail server admin panel. (minimum 4GB Ram recommended)

I like contabo as VPS provider.

1 Like

i just attempted this installation, and the setup died with this error:

PLAY RECAP *********************************************************************
localhost : ok=83 changed=49 unreachable=0 failed=1 s kipped=48 rescued=0 ignored=0

Traceback (most recent call last):
File “install.py”, line 413, in
install_bench(args)
File “install.py”, line 135, in install_bench
run_playbook(‘site.yml’, sudo=True, extra_vars=extra_vars)
File “install.py”, line 327, in run_playbook
success = subprocess.check_call(args, cwd=os.path.join(cwd, ‘playbooks’))
File “/usr/lib/python3.6/subprocess.py”, line 311, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command ‘[‘ansible-playbook’, ‘-c’, ‘local’, ‘sit e.yml’, ‘-vvvv’, ‘-e’, ‘@/tmp/extra_vars.json’, ‘–become’, ‘–become-user=tryni x’]’ returned non-zero exit status 2.

@trynix the story of our life so far.

follow the manual install guide step-by-step. https://github.com/frappe/frappe/wiki/The-Hitchhiker%27s-Guide-to-Installing-Frappe-on-Linux

As regards your question about different VM’s - you can use 1 VM and consider containers for each application. There is a learning curve - but in long term could save you money.