Excision Mail is a mail server that is built to be fast, easy, and highly scalable for small and medium-sized businesses. With Excision Mail, you can easily set up your mail server on your local network or on the cloud. In this tutorial, we will be installing Excision Mail on Fedora CoreOS Latest.
The first step is to retrieve the code for Excision Mail. You can download Excision Mail from its GitHub repository at https://github.com/Excision-Mail/Excision-Mail.
The following command can be used to download the code from the GitHub repository:
$ git clone https://github.com/Excision-Mail/Excision-Mail
Before installing Excision Mail, we need to install its dependencies such as Python, PostgreSQL, and Redis. The following command can be used to install these dependencies on Fedora CoreOS Latest:
$ sudo dnf install python3 postgresql postgresql-server redis -y
To use Excision Mail, we need to set up a PostgreSQL database. First, we need to initialize the PostgreSQL database cluster with the following command:
$ sudo postgresql-setup initdb
Next, we need to start the PostgreSQL server:
$ sudo systemctl start postgresql
Then, we need to create a new database and user for Excision Mail:
$ sudo -u postgres psql
postgres=# CREATE DATABASE excision_mail;
postgres=# CREATE USER excision_mail WITH PASSWORD 'password';
postgres=# GRANT ALL PRIVILEGES ON DATABASE excision_mail TO excision_mail;
postgres=# \q
Excision Mail also requires a Redis server. We need to change its default configuration by editing the redis.conf
file:
$ sudo vim /etc/redis.conf
Uncomment and modify the following lines:
bind 127.0.0.1 ::1
protected-mode no
requirepass password
Save and exit the file.
Now it's time to configure and set up Excision Mail. First, you need to create a new virtual environment and activate it:
$ python3 -m venv excision-mail
$ source excision-mail/bin/activate
Next, install the required Python modules:
$ pip install --upgrade pip
$ pip install -r requirements.txt
Now, we need to create a .env
file to store the environment variables needed. Create a new file called .env
in the root directory of your Excision Mail directory and add the following lines:
# Set the mode to `PRODUCTION`.
MODE=PRODUCTION
# Database details.
DB_NAME=excision_mail
DB_USERNAME=excision_mail
DB_PASSWORD=password
DB_HOST=localhost
DB_PORT=5432
# Redis details.
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=password
# Mail server settings.
MAIL_SERVER=your.mail.server.com
MAIL_SERVER_PORT=587
MAIL_USERNAME=your_mail_username
MAIL_PASSWORD=your_mail_password
MAIL_FROM=your_mail@example.com
Replace the MAIL_
values with your own email server details.
Next, initialize the database:
$ flask db init
$ flask db migrate
$ flask db upgrade
Finally, start Excision Mail by running:
$ hypercorn --bind 0.0.0.0:8000 "excisionmail:app"
Once you've completed all these steps, your Excision Mail server will be up and running on port 8000. You're now ready to start sending and receiving emails with Excision Mail!
If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!
Alternatively, for the best virtual desktop, try Shells!