User Tools

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
services:snappymail [2025/04/15 15:26] – created willyservices:snappymail [2025/04/15 16:22] (current) willy
Line 2: Line 2:
  
 [[https://github.com/the-djmaze/snappymail|Snappy Mail]] is a simple, modern, lightweight & fast web-based email client. It is the successor of the long defunct RainLoop webmail client. [[https://github.com/the-djmaze/snappymail|Snappy Mail]] is a simple, modern, lightweight & fast web-based email client. It is the successor of the long defunct RainLoop webmail client.
 +
 +**Note:** i installed SnappyMail on my //external// server, together with the mail server, and not on the home server. The unusual approach you might note here are due to that noticeable differences.
  
 ===== Installation ===== ===== Installation =====
Line 7: Line 9:
 Get your release [[https://github.com/the-djmaze/snappymail/releases|here]] Get your release [[https://github.com/the-djmaze/snappymail/releases|here]]
  
-will install under /home/web/snappymail:+will install under /home/web/snappymail. Replace, in the following instruction, the URL and filename with the latest release:
 <code bash> <code bash>
-cd /home/web +mkdir -p /home/web/snappymail/frontend 
-mkdir snappymail +cd /home/web/snappymail/frontend
-cd snappymail+
 wget https://github.com/the-djmaze/snappymail/releases/download/v2.38.2/snappymail-2.38.2.tar.gz wget https://github.com/the-djmaze/snappymail/releases/download/v2.38.2/snappymail-2.38.2.tar.gz
 tar xvf snappymail-2.38.2.tar.gz  tar xvf snappymail-2.38.2.tar.gz 
 find ./  -type d -exec chmod 755 {} \; find ./  -type d -exec chmod 755 {} \;
 find ./ -type f -exec chmod 644 {} \; find ./ -type f -exec chmod 644 {} \;
-chown web:web snappymail+chown -R web:web data
 </code> </code>
 +
 +==== Secure the data folder ====
 +
 +Move the data folder //outside// the document root can be a good idea. First of all, move it physically:
 +<code bash>
 +cd /home/web/snappymail
 +mv frontend/data .
 +mv frontend/_include.php frontend/include.php
 +</code>
 +
 +Now edit the file **frontend/include.php** and add setup the following line:
 +<code>
 +define('APP_DATA_FOLDER_PATH', '/home/web/snappymail/data/');
 +</code>
 +
 +The trailing "/" is **very** important.
 +
 +
 +===== Reverse Proxy =====
 +
 +<file - webmail.conf>
 +server {
 +        server_name webmail.mydomain.com;
 +        listen 443 ssl;
 +
 +        index index.php;
 +
 +        root /home/web/snappymail/frontend;
 +
 +        access_log /var/log/nginx/webmail.mydomain.com_access_log main;
 +        error_log /var/log/nginx/webmail.mydomain.com_error_log info;
 +
 +        location ~ /.*\.php$ {
 +                try_files $uri =404;
 +                fastcgi_split_path_info ^(.+\.php)(/.+)$;
 +                include fastcgi_params;
 +                fastcgi_param SCRIPT_FILENAME $request_filename;
 +                fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
 +                fastcgi_pass 127.0.0.1:9000;
 +        }
 +
 +        # Security headers
 +        add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always;
 +        add_header X-Content-Type-Options "nosniff" always;
 +        add_header X-XSS-Protection "1; mode=block" always;
 +        add_header X-Robots-Tag "none" always;
 +        add_header X-Download-Options "noopen" always;
 +        add_header X-Permitted-Cross-Domain-Policies "none" always;
 +        add_header Referrer-Policy "no-referrer" always;
 +        add_header X-Frame-Options "SAMEORIGIN" always;
 +        fastcgi_hide_header X-Powered-By;
 +
 +        index index.php;
 +
 +        location ~ (^|/)\. {
 +                return 403;
 +        }
 +
 +        location ~ ^/data/ {
 +            deny all;
 +        }
 +}
 +</file>
 +
 +===== Configuration =====
 +
 +After restarting NGINX, go to **https://webmail.mydomain.com/?admin**, you need to login as user **admin** with the password found in the file: //data/_data_/_default_/admin_password.txt//.
 +
 +Immediately change the password, and that file will be deleted. 
 +
 +You need to setup the domains you want to use in SnappyMail to allow users to login.
 +
 +===== Upgrade =====
 +
 +To upgrade the installation, you simply need to upload files from the new package overwriting existing files. Directory structure is organized to have each new version installed to a different directory. Only a few files will be actually overwritten (/index.php and /data/VERSION).
 +
 +All the additional reconfiguration will be done by the product on next run.
 +
 +Then when everything works, you may remove any old version that resides in /snappymail/v/.
  

This website uses technical cookies only. No information is shared with anybody or used in any way but provide the website in your browser.

More information