# Step-by-Step Guide: Installing WebMMEX on Raspberry Pi
#####################################################
This guide walks you through installing Web Money Manager EX (WebMMEX) on a Raspberry Pi 3 Model B+ using Docker, then securing it with NGINX and Let's Encrypt SSL. I have not tried it on other Raspberry Pi variants.
# Prerequisites:
• Raspberry Pi 3 B+ with Raspberry Pi OS Bookworm (Lite) 32- or 64-bit
• Static IP address for the Raspberry Pi set on your router
• Internet access
• A domain name (<
your.domain.com>) pointing to your Raspberry Pi's public IP (for SSL)
• Ports 80 and 443 (TCP) forwarded on your router to the Raspberry Pi
• Basic familiarity with the Linux command line
1. Update Your System:
Code: Select all
sudo apt update && sudo apt upgrade -y
2. Install Docker and Docker Compose:
Code: Select all
curl -sSL https://get.docker.com | sh
sudo usermod -aG docker $USER
Log out and back in, then verify Docker:
Install Docker Compose:
Code: Select all
sudo apt install -y docker-compose
3. Clone the WebMMEX Repository:
Code: Select all
git clone https://github.com/moneymanagerex/web-money-manager-ex.git
cd web-money-manager-ex
4. Build and Run WebMMEX with Docker:
Code: Select all
docker build -t webmmex:latest .
docker run -d --restart=always -p 8080:80 webmmex:latest
You can now access WebMMEX locally using a web browser:
(replace <
your-raspberry-pi-ip> with your own)
Code: Select all
http://<your-raspberry-pi-ip>:8080
5. Install NGINX as a Reverse Proxy:
Code: Select all
sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
Create NGINX config:
Code: Select all
sudo nano /etc/nginx/sites-available/webmmex
Paste in the following:
(replace <
your.domain.com> with your own)
Code: Select all
server {
listen 80;
server_name <your.domain.com>;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Enable the config:
Code: Select all
sudo ln -s /etc/nginx/sites-available/webmmex /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
6. Install Let's Encrypt SSL with Certbot:
(replace <
your.domain.com> with your own)
Code: Select all
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d <your.domain.com>
Follow the prompts to install the certificate and enable HTTPS redirection
Test auto-renewal:
7. Test and Reboot:
Reboot to verify everything auto-starts:
Then access your site securely using a web browser:
(replace <
your.domain.com> with your own)