How to Install Excision Mail on Fedora CoreOS Latest

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.

Step 1: Download Excision Mail

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

Step 2: Install Dependencies

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

Step 3: Configure PostgreSQL

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

Step 4: Configure Redis

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.

Step 5: Set Up Excision Mail

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!