NetSendo v2.8.7: Podman Update Fix & Reverb Port Change
Self-hosting gives you control over your marketing stack: your data, your servers, your sending limits. It also means you rely on updates going through cleanly. If you run NetSendo on Podman, there is a good chance your installation has not updated since version 2.8.0, and it may not have told you clearly.
NetSendo v2.8.7 fixes this. It is a small change to docker-compose.yml, but it matters a lot because it lets Podman installations reach the security fixes shipped in 2.8.5 and 2.8.6.
docker-compose.yml used a nested variable default that podman-compose cannot parse. Updates on Podman failed with "invalid port format" and rolled back to 2.7.x. v2.8.7 replaces it with a single-level default, ${REVERB_HOST_PORT:-8085}. Docker users see no change. If you used REVERB_PORT to change Reverb's host port, switch to REVERB_HOST_PORT.
🚀 What's New in v2.8.7
The Problem: One Line, Two Interpreters
NetSendo runs Reverb, the WebSocket server that handles real-time updates in the app, as its own container. From 2.8.0 onward, its port mapping used a nested default:
# Before (2.8.0 – 2.8.6)
${REVERB_HOST_PORT:-${REVERB_PORT:-8085}}
Put simply, this says: "use REVERB_HOST_PORT; if it isn't set, use REVERB_PORT; if that isn't set either, use 8085." Docker Compose resolves this without trouble. podman-compose does not support nested defaults, so it passed the unexpanded text on as the port value.
Think of it as a fallback inside a fallback. One reader follows both levels, the other stops at the first and reads nonsense. As a result, podman-compose up -d failed with "invalid port format", the updater rolled the update back, and the installation stayed on 2.7.x.
⚠️ Important: Podman installations stuck on 2.7.x are missing the security fixes from 2.8.5 and 2.8.6. If you run Podman, treat this update as a priority.
The Fix: A Single-Level Default
# After (2.8.7+)
${REVERB_HOST_PORT:-8085}
Podman Compatible
podman-compose parses the port line and updates complete again.
No Change on Docker
Reverb is still published on 0.0.0.0:8085 by default.
Same Settings on Both
REVERB_HOST_PORT and REVERB_BIND_ADDRESS work with Docker and Podman.
REVERB_PORT vs. REVERB_HOST_PORT
These two variables do different jobs, and v2.8.7 makes the split explicit:
REVERB_HOST_PORT: the port Reverb is published on on your host. Change this one if 8085 is already in use.REVERB_PORT: the port the app uses to reach Reverb inside the container network. It must stay 8085.
ℹ️ Note: If you previously changed Reverb's host port by settingREVERB_PORT, that fallback is gone. SetREVERB_HOST_PORTinstead, as described in Port 8085 Already in Use inDOCKER_INSTALL.md.
💼 Who Is Affected: Real-World Scenarios
E-commerce Store on a RHEL-Based Server
A shop running abandoned-cart and post-purchase sequences on a Fedora, RHEL or AlmaLinux server, where Podman is the default container engine:
- Since 2.8.0, every update attempt has rolled back without much notice
- With v2.8.7, the update goes through and brings in the 2.8.5/2.8.6 security fixes
- Customer data and campaigns keep running with no changes to the setup
SaaS Team Using Rootless Containers
A SaaS company runs onboarding and churn-prevention emails on rootless Podman for security reasons:
- They moved Reverb to another host port with
REVERB_PORTbecause 8085 was taken - They need to rename that setting to
REVERB_HOST_PORTand putREVERB_PORTback to 8085 - Real-time features keep working on the custom port
Agency Running Multiple Client Instances
An agency hosts several NetSendo instances on one machine, each needing its own Reverb host port:
- Give each instance a unique
REVERB_HOST_PORT(8085, 8086, 8087…) - Keep
REVERB_PORT=8085everywhere - Use
REVERB_BIND_ADDRESSto limit exposure, for example to localhost behind a reverse proxy
🛠️ Step-by-Step: Getting Onto v2.8.7
- Check Your Current Version
Confirm which version your installation reports. If you use Podman and still see 2.7.x, you were affected by this bug.
- Review Your .env File
Look for
REVERB_PORT. If it is set to anything other than 8085, move that value toREVERB_HOST_PORTand setREVERB_PORTback to 8085.# Example: Reverb published on host port 8090 REVERB_HOST_PORT=8090 REVERB_PORT=8085 - Back Up Before Updating
Back up your database and
.envas usual. It takes a few minutes and is always worth it. - Run Your Normal Update Procedure
Update to v2.8.7 the way you normally do. On Podman, the containers should now come up with:
podman-compose up -d - Verify Reverb Is Published
Check that the Reverb container is running and mapped to the host port you expect:
podman ps --format "{{.Names}} {{.Ports}}" # or on Docker docker compose ps
Common Pitfalls
- Real-time features stop after the update:
REVERB_PORTis probably not 8085. Reset it and restart the stack. - "Port already in use": another service is on 8085. Set
REVERB_HOST_PORTto a free port. - Custom compose overrides: if you copied the old nested expression into your own override file, replace it with the single-level form.
🎯 Expert Tips
Automatic rollback protects you from broken updates, but it can also hide problems. After every update, confirm the version actually changed.
Change what the outside world sees (REVERB_HOST_PORT), never what containers use to talk to each other (REVERB_PORT).
If Reverb sits behind a reverse proxy, set REVERB_BIND_ADDRESS to 127.0.0.1 so the port isn't exposed on every interface.
Run docker compose config or test with podman-compose on staging to catch parsing issues before production.
💡 Pro Tip: Subscribe to NetSendo releases on GitHub (Watch → Custom → Releases) so you hear about security releases quickly.
✅ Conclusion
- Podman installations can update again after being stuck on 2.7.x
- Access to the security fixes from 2.8.5 and 2.8.6
- No behavior change for Docker installations
- Clear split:
REVERB_HOST_PORTfor the host,REVERB_PORTfixed at 8085
v2.8.7 is small, but if you run Podman it is one of the most important updates this year. Update, check your Reverb variables, and confirm the new version is live.
Keep Your NetSendo Secure and Up to Date
Read the installation docs, browse integrations, or start a fresh self-hosted setup:
Explore integrations and give us a ⭐ on GitHub.



