WebMMEX Working on Raspberry Pi

MMEX4Web

Moderator: Renato

Andrew657
New User
Posts: 16
Joined: Fri Oct 08, 2021 3:32 pm
Are you a spam bot?: No

WebMMEX Working on Raspberry Pi

Post by Andrew657 »

I've been working (on and off for quite a while) to get WebMMEX running on a Raspberry Pi, and I’ve finally got it working—thanks to a good bit of help from ChatGPT! 🎉

I'm now successfully running WebMMEX 1.2.3 on a Raspberry Pi Model 3 B+ with Raspberry Pi OS Lite (Bookworm, 32-bit) using Docker, along with NGINX and Let's Encrypt SSL for security. Everything is working smoothly.

I can share my step-by-step guide, but I don't see an easy way to post it directly here. I also don’t have a personal website or a GitHub account.

If anyone is interested, feel free to PM me, and I can email you a copy.
Last edited by Andrew657 on Mon Mar 03, 2025 6:20 am, edited 1 time in total.
guangong
Developer
Posts: 654
Joined: Wed Dec 21, 2011 5:58 am
Are you a spam bot?: No

Re: WebMMEX Working on Raspberry Pi

Post by guangong »

Great.

I think you can even continue the development of MMEX4Web. e.g. SUID adoption.

In terms of instruction, can you just write pure text here, and then we can re-post it to MEMX's blog (https://moneymanagerex.org/blog/), thoughts?
Andrew657
New User
Posts: 16
Joined: Fri Oct 08, 2021 3:32 pm
Are you a spam bot?: No

Re: WebMMEX Working on Raspberry Pi

Post by Andrew657 »

# 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:

Code: Select all

docker --version

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:

Code: Select all

sudo certbot renew --dry-run
7. Test and Reboot:

Reboot to verify everything auto-starts:

Code: Select all

sudo reboot

Then access your site securely using a web browser:

(replace <your.domain.com> with your own)

Code: Select all

https://<your.domain.com>