sudo a2enmod ssl proxy proxy_http proxy_wstunnel proxy_balancer
Apache Mod_Proxy documentation
Systemd:
sudo systemctl restart apache2
Init.d:
sudo service apache2 restart
Listen 443
NameVirtualHost *:443
Remember to set - ROOT_URL= to the full URL used for your reverse proxy or as ServerName.
SSL with Certbot.
Config at /etc/apache2/sites-available/example.com.conf:
<VirtualHost *:443>
    ServerName example.com
    SSLEngine On
    SSLCertificateFile      /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile   /etc/letsencrypt/live/example.com/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf
    ServerSignature Off
    <Location />
     require all granted
    </Location>
    ProxyPassMatch   "^/(sockjs\/.*\/websocket)$" "ws://127.0.0.1:3001/$1"
    ProxyPass        "/" "http://127.0.0.1:3001/"
    ProxyPassReverse "/" "http://127.0.0.1:3001/"
    <Proxy *>
        Options FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Proxy>
</VirtualHost>
Currently, favicon loading does not work with sub-url wekan/issues/1692
Config at /etc/apache2/sites-available/example.com.conf:
<VirtualHost *:443>
    ServerName example.com/wekan
    SSLEngine On
    SSLCertificateFile      /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile   /etc/letsencrypt/live/example.com/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf
    ServerSignature Off
    ProxyPassMatch   "^/(sockjs\/.*\/websocket)$" "ws://127.0.0.1:3001/wekan/$1"
    ProxyPass        "/wekan" "http://127.0.0.1:3001/wekan"
    ProxyPassReverse "/wekan" "http://127.0.0.1:3001/wekan"
    <Proxy *>
        Options FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Proxy>
</VirtualHost>
To run as default site:
<VirtualHost _default_:443>
sudo a2ensite example.com
Or, add symlink manually:
sudo su
cd /etc/apache2/sites-enabled
ln -s ../sites-available/example.com.conf example.com.conf
On some distributions, Apache config is at different path:
cd /etc/httpd/conf.d
Systemd:
sudo systemctl restart apache2
Init.d:
sudo service apache2 restart
sudo snap set wekan port='3001'
sudo snap set wekan root-url='https://example.com'
snap set wekan port='3001'
snap set wekan root-url='https://example.com/wekan'