"When someone says: 'I want a programming language in which I need only say what I wish done', give him a lollipop."- Alan J. Perlis
I used a Raspberry PI 4B with 4GB of memory. You can probably use less powerful versions but I have not tried them. It is possible to use just the computer with the memory card. I am sure it will work.
The Raspberry PI is a fully functioning computer fully capable of supporting the functionality needed. There was a comparison done between a Cray 1 supercomputer of 1978 in the link.
He stated “In 1978, the Cray 1 supercomputer cost $7 Million, weighed 10,500 pounds and had a 115 kilowatt power supply. It was, by far, the fastest computer in the world. The Raspberry Pi costs around $70 (CPU board, case, power supply, SD card), weighs a few ounces, uses a 5 watt power supply and is more than 4.5 times faster than the Cray 1”. This was a Raspberry Pi 1 from 2012. The Pi 4B illustrated below is at least 50 times faster than the Cray.
I had a spare external USB 3.0 SSD 40GB drive. This increases the performance. I set it up to boot from this drive. Instructions to do this can be found at toms HARDWARE - How to Boot Raspberry Pi 4 / 400 From a USB SSD or Flash Drive. I found in use that I was only using around 19% of the disk space. The Raspberry PI is using the standard version of Raspbian. This is a version of the Unix operating system you can see a short history of Unix by clicking on the link. The major change was to boot from USB device instead of the standard Micro SD card. I set mine up as a headless system with no keyboard, mouse or Screen connected. I used the network connection with VNC and Putty. I used mainly the command interface through Putty or VNC on my PC.
My Raspberry PI was also in an Argon One (V1) case (see photo) as for me it is a solid good looking solution to housing the Raspberry PI which keeps it cool. It also has power button functionality which poses its own problems, but more on that later.
Obviously you will need an internet connection to to send and receive emails and for web access.
Service providers can offer different solutions to the internet connection. These are discussed in the installation with the set up changes needed. My provider has an option to provide a fixed IP address for the internet service. This makes it much easier to set up. There are ways to set it up without fixed IP but it complicates the set up. If at all possible go for a fixed IP address as it is a stable address for the set up.
A domain name is needed to give a name to your email and proved a method of translating the domain name to a physical IP address. This allows you to set up email addresses such as myaddress@mydomain.com, example anothername@gmail.com. Domains and their set up are provided by a multitude of Providers at different costs. Myself I used Google and ended up paying ten euros per year for the domain name.
You need software that can take your web site and allow clients to access it on the internet. There are many software applications that do this. On of the popular ones is Apache. It is used by about 30% of the world’s web sites. It is well supported by Raspbian. This is the software chosen. This will allow you to use html on your web pages. To do more with your web site you will likely need more support packages. For me I chose php to allow me to do more complex programming and analysis. I also need a database to store results. I chose mysql and in particular the Maria DB flavor of it. This is the so called “LAMP” installation, Linux, Apache, Mysql, PHP used on many sites throughout the world. There are many newer options which are claimed to be faster and better but the above is used widely and is well supported so you can usually find solutions with google. It will give you a good grounding in web site design and management.
You need software on the raspberry PI server to send, receive, store emails and forward them as needed. You also need software to allow users to download or view their emails. Fortunately as the Raspberry PI is a Linux type operating system there are many options available. After some research I decided to go with Dovecot for the user interface and Postfix as the sending and receiving of emails (Mail Transfer Agent, MTA for short).
Dovecot is an open source IMAP and POP3 email server for Linux/UNIX-like systems, written with security primarily in mind. Dovecot is an excellent choice for both small and large installations. It’s fast, simple to set up, requires no special administration and it uses very little memory.
Postfix is a hugely-popular Mail Transfer Agent (MTA) designed to determine routes and send emails. This cross-platform server is open-source, free, and suitable for installation on the majority of UNIX-like operating systems. It generally uses SMTP to send emails.
Advantages of Postfix
Here are the main advantages you can expect to find when you start using Postfix:
Includes highly-detailed documentation
Security was clearly a priority in Postfix’s design
Postfix offers impressive compatibility with Sendmail
High queuing operation is fundamental to Postfix’s functionality
Active development is part of the Postfix set-up
Easy configuration, according to parameters of configuration files
Disadvantages of Postfix
Unfortunately, Postfix can be hard to customize in some cases, depending on your unique requirements.
Basically Dovecot deals with getting the emails and postfix with sending them.
When you send an email you use SMTP to send it to your email server (postfix). The email server (postfix) then routes it and sends it to where it needs to go. If it is deemed to be local then it is added to the local emails for Dovecot to deal with. If it has to go external then postfix uses SMTP to communicate with the destination mail server and send the email. Also postfix receives external email in the same way when external email servers use SMTP to send to the postfix server.
An SSL certificate is a digital certificate that authenticates a website's identity and enables an encrypted connection. SSL stands for Secure Sockets Layer, a security protocol that creates an encrypted link to use between email servers and email server to client email. It is not strictly required but without it many email providers will reject emails without this security. One of the simplest providers of SSL certificates is Let’s encrypt and for none commercial use it is free.