## 1) Enable Mod_Proxy
```
sudo a2enmod ssl proxy proxy_http proxy_wstunnel proxy_balancer
```
[Apache Mod_Proxy documentation](http://httpd.apache.org/docs/current/mod/mod_proxy.html)
## 2) Restart Apache
Systemd:
```
sudo systemctl restart apache2
```
Init.d:
```
sudo service apache2 restart
```
## 3) Enable SSL in Apache config
```
Listen 443
NameVirtualHost *:443
```
## 4) Set Apache proxy
Remember to set `- ROOT_URL=` to the full URL used for your reverse proxy or as `ServerName`.
### a) Main URL
SSL with [Certbot](https://certbot.eff.org).
Config at `/etc/apache2/sites-available/example.com.conf`:
```ApacheConf
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
require all granted
ProxyPassMatch "^/(sockjs\/.*\/websocket)$" "ws://127.0.0.1:3001/$1"
ProxyPass "/" "http://127.0.0.1:3001/"
ProxyPassReverse "/" "http://127.0.0.1:3001/"
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
```
### b) Sub URL
Currently, favicon loading does not work with sub-url [wekan/issues/1692](https://github.com/wekan/wekan/issues/1692)
Config at `/etc/apache2/sites-available/example.com.conf`:
```ApacheConf
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"
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
```
To run as default site:
```ApacheConf
```
## 5) Enable your site
```
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
```
## 6) Reload Apache
Systemd:
```
sudo systemctl restart apache2
```
Init.d:
```
sudo service apache2 restart
```
## 7) Snap settings
### a) Main URL
```
sudo snap set wekan port='3001'
sudo snap set wekan root-url='https://example.com'
```
### b) Sub URL
```
snap set wekan port='3001'
snap set wekan root-url='https://example.com/wekan'
```
[All snap settings](https://github.com/wekan/wekan-snap/wiki/Supported-settings-keys)