NetSendo
Platform Updates

NetSendo v2.8.7: Podman Update Fix & Reverb Port Change

NetSendo Team6 min read

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.

TL;DR: Since 2.8.0, the Reverb port mapping in 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 setting REVERB_PORT, that fallback is gone. Set REVERB_HOST_PORT instead, as described in Port 8085 Already in Use in DOCKER_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_PORT because 8085 was taken
  • They need to rename that setting to REVERB_HOST_PORT and put REVERB_PORT back 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=8085 everywhere
  • Use REVERB_BIND_ADDRESS to limit exposure, for example to localhost behind a reverse proxy

🛠️ Step-by-Step: Getting Onto v2.8.7

  1. 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.

  2. Review Your .env File

    Look for REVERB_PORT. If it is set to anything other than 8085, move that value to REVERB_HOST_PORT and set REVERB_PORT back to 8085.

    # Example: Reverb published on host port 8090
    REVERB_HOST_PORT=8090
    REVERB_PORT=8085
  3. Back Up Before Updating

    Back up your database and .env as usual. It takes a few minutes and is always worth it.

  4. 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
  5. 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_PORT is probably not 8085. Reset it and restart the stack.
  • "Port already in use": another service is on 8085. Set REVERB_HOST_PORT to 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

1
Watch for Silent Rollbacks

Automatic rollback protects you from broken updates, but it can also hide problems. After every update, confirm the version actually changed.

2
Keep Host and Internal Ports Separate

Change what the outside world sees (REVERB_HOST_PORT), never what containers use to talk to each other (REVERB_PORT).

3
Restrict the Bind Address

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.

4
Validate Compose Files Before You Deploy

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_PORT for the host, REVERB_PORT fixed 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.

#podman#docker#release#security#reverb#self-hosted
Share