Skip to content

Conversation

@PouriaCh
Copy link

Add macOS (Apple Silicon) support and improve Docker/GeoIP handling

  • Add macOS detection and Homebrew-based dependency installation with non‑sudo enforcement.
  • Improve Docker engine checks and start prompts, including Docker Desktop launch on macOS.
  • Implement GeoIP support on macOS using MaxMind GeoLite2 (MMDB + mmdblookup), hidden key entry, and more robust parsing.
  • Update peers-by-country pipeline for macOS (timeouts, interface/IP detection, sudo requirement for tcpdump, diagnostics).
  • Adjust container networking for macOS (publish 443 TCP/UDP instead of host networking).
  • Improve install directory handling (writable fallback) and CLI generation (portable sed, Homebrew bash re-exec, macOS symlink behavior).
  • Update documentation to cover macOS usage, requirements, and limitations.

@PouriaCh
Copy link
Author

Hi @SamNet-dev. I tested this on a Macbook Air M4. It works seamlessly. Also the "peers" command (needs sudo) works (see below image). My only question at this stage is how to choose the version. Feel free to edit as you wish!

Screenshot 2026-01-28 at 11 40 12 PM

@SamNet-dev
Copy link
Owner

Thanks a lot for putting this together and testing it on macOS, really appreciate it.

I don’t have access to a Mac OS right now, so I can’t properly validate the changes on my side and I’m also really busy with other stuff. If you can, could you run a few different scenarios on macOS and confirm everything stays stable? For example:

  • Fresh install on a clean machine (no existing config)
  • Basic TUI navigation + key commands (especially peers with sudo, add/remove peers, status)
  • Restart/stop/start flows and any Docker engine edge cases

If those look good, I can create a dedicated branch like macos-edition and bring your work in there so we can merge it cleanly with the current codebase and keep it maintained going forward.

@EmranMR
Copy link

EmranMR commented Jan 29, 2026

I was going to give this a run on my M1 Mac, but I was faced with the maxmind Geo database account creation requirement...

Why not use something like db-ip?? it is free under Creative Commons Attribution 4.0 International License. You could download the ip to country database in the mmd format and use the cli to get a nice output, including farsi!

Sample JSON response can be found here:
https://db-ip.com/db/format/ip-to-country-lite/mmdb.html

The database can be downloaded and included in the package here:
https://db-ip.com/db/download/ip-to-country-lite

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants