How to Install Sympa on Fedora Server Latest

Sympa is an open-source software used for managing electronic mailing lists. In this tutorial, we will discuss how to install Sympa on Fedora Server Latest.

Prerequisites

Before installing Sympa on Fedora Server, ensure that you have met the following requirements:

Step 1: Update your system

Before installing Sympa, it's essential to update your system to the latest packages. You can do this by running the following command:

sudo dnf update

Step 2: Install Sympa Dependencies

Sympa has several dependencies that must be installed before the Sympa installation process. Run the following command to install the Sympa dependencies:

sudo dnf install mariadb mariadb-server httpd httpd-devel perl perl-devel -y

Step 3: Install Sympa

After installing the Sympa dependencies, you can proceed with Sympa installation using the following command:

sudo dnf install sympa -y

Step 4: Configure your database

Sympa uses a database to store list configuration and other related data. In this step, we will configure the MariaDB Database that we installed earlier.

Start MariaDB service

Start the MariaDB service using the following command:

sudo systemctl start mariadb.service

Configure MariaDB

Secure MariaDB installation:

sudo mysql_secure_installation

Create a Sympadatabase:

sudo mysql -u root -p

Create a database named 'sympa':

CREATE DATABASE sympa;

Create a user named 'sympa' and set a password:

CREATE USER 'sympa'@'localhost' IDENTIFIED BY 'password';

Grant all permissions to the 'sympa' user on the 'sympa' database:

GRANT ALL PRIVILEGES ON sympa.* TO 'sympa'@'localhost';

Save changes and exit the MariaDB terminal:

FLUSH PRIVILEGES;
exit

Step 5: Configure Sympa

After successfully installing Sympa and configuring MariaDB, you're now ready to configure Sympa.

Open the '/etc/sympa/sympa.conf' file using your favorite editor:

sudo nano /etc/sympa/sympa.conf

Uncomment and set the following values:

## Database settings
{
  db_name = sympa
  db_user = sympa
  db_passwd = password
  db_host = 127.0.0.1
}

## Apache configuration
{
  mta = sendmail
  # mtalist = [SENDMAIL]
  cgi;
  owner;
  virtual;
  hp = /sympa
  httproot = https://server_IP_or_hostname
}

Save and exit the file.

Step 6: Start and Enable Sympa Services

Finally, start Sympa services and enable them to start on system boot using the following commands:

sudo systemctl start sympa -y
sudo systemctl enable sympa -y

Step 7: Configure HTTPD and Open Required Ports

You're almost done! In this final step, we will configure the HTTPD service and open the required ports.

First, create a Sympa Apache configuration file:

sudo nano /etc/httpd/conf.d/sympa.conf

Add the following content to the file:

<VirtualHost *:80>
    ServerName SERVER_NAME_OR_IP
    RewriteEngine On
    RewriteRule ^/(.*)$ https://SERVER_NAME_OR_IP/$1 [R,L]
</VirtualHost>

<VirtualHost *:443>
        ServerName SERVER_NAME_OR_IP

        #Add SSL configs
        SSLEngine on
        SSLCertificateFile /etc/pki/tls/certs/localhost.crt
        SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
        SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
        SSLHonorCipherOrder on
        SSLCipherSuite EECDH:+AES-256-GCM:+AES-256-CBC:+AES-128-GCM:+AES-128-CBC:+3DES:!MD5:!DSS:!SHA1:!SHA256:!SHA384:!RSA:!AESCCM:!RC4
        SSLCompression off

        DocumentRoot /var/lib/sympa/wws
        ErrorLog /var/log/httpd/sympa-error.log
        CustomLog /var/log/httpd/sympa-access.log combined

        ScriptAlias /robots.txt /dev/null
        ScriptAlias /sympa/bin/ /usr/libexec/sympa/cgi-bin/

        Alias /sympa/ /var/lib/sympa/wws/
        Alias /listes/ /var/lib/sympa/static/
        Alias /images/ /var/lib/sympa/images/
        Alias /html/ /var/lib/sympa/html/
        Alias /locale/ /var/lib/sympa/locale/
        Alias /cache/ /var/spool/sympa/cache/

        <Directory "/var/lib/sympa/cgi-bin">
            AllowOverride None
            Options ExecCGI FollowSymLinks
            Order allow,deny
            Allow from all
        </Directory>

        <Directory "/var/lib/sympa">
            AllowOverride None
            Options None
            Order allow,deny
            Allow from all
            <IfModule mod_rewrite.c>
                RewriteEngine On
                RewriteRule ^/var/lib/sympa/(.*) /sympa/$1 [L]
            </IfModule>
        </Directory>

        <Directory "/var/lib/sympa/static">
            AllowOverride None
            Options None
            Order allow,deny
            Allow from all
        </Directory>

        <Directory "/var/lib/sympa/images">
            AllowOverride None
            Options None
            Order allow,deny
            Allow from all
        </Directory>

        <Directory "/var/lib/sympa/html">
            AllowOverride None
            Options None
            Order allow,deny
            Allow from all
        </Directory>

        <Directory "/var/spool/sympa/cache">
            AllowOverride None
            Options None
            Order deny,allow
            Deny from all
            <IfModule mod_rewrite.c>
                RewriteEngine On
                RewriteCond %{REMOTE_ADDR} ^127\.0\.0\.1$
                RewriteRule ^.*$ /sympa/cache/ [L,QSA]
            </IfModule>
        </Directory>

        RewriteRule ^/(.*)/manage$ /sympa/$(htgroup match=moderator_of|"-$1":control_panel)$1/index?$QUERY_STRING [R,L]
        RewriteRule ^/(.*)/(.*)/manage$ /sympa/$(htgroup match=moderator_of|-"$1:$2":control_panel)$1/$2/index?$QUERY_STRING [R,L]

</VirtualHost>

Replace SERVER_NAME_OR_IP with your server IP address or hostname. Also, make sure to replace the SSLCertificateFile and SSLCertificateKeyFile paths with your SSL certificates.

Save and exit the file.

Finally, open the required ports:

sudo firewall-cmd --permanent --add-port={25/tcp,80/tcp,587/tcp,443/tcp,20/tcp,21/tcp,53/tcp}
sudo systemctl reload firewalld

Conclusion

Congratulations! You have successfully installed and configured Sympa on your Fedora Server. You can now use Sympa to manage your electronic mailing lists.

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!