Zoraxy describes itself as:
“General purpose request (reverse) proxy and forwarding tool for networking noobs. Now written in Go!”.
Yet it seems to be packed with goodies and features, such as Geo-IP & Blacklist, ZeroTier controller integrated GAN, IP Scanner, Real Time Stats and even built in Uptime monitor. Addtionally, it can run via a single binary for those who don’t want to rely on Docker. There is also an Unraid Template available from IBRACORP. Lastly the project is under the AGPL license 🌻
I also checked, and saw this was recommended on this community 9months ago, but didn’t seem to get much attraction then. Has anyone tried this yet? It seems like a good alternative to say NGINX proxy manager and am wondering if I should switch, but wanted to hear thoughts first!
Zoraxy’s Github list the following features:
Features
- Simple to use interface with detail in-system instructions
- Reverse Proxy (HTTP/2)
- Virtual Directory
- WebSocket Proxy (automatic, no set-up needed)
- Basic Auth
- Alias Hostnames
- Custom Headers
- Redirection Rules
- TLS / SSL setup and deploy
- ACME features like auto-renew to serve your sites in https
- SNI support (one certificate contains multiple host names)
- Blacklist / Whitelist by country or IP address (single IP, CIDR or wildcard for beginners)
- Global Area Network Controller Web UI (ZeroTier not included)
- TCP Tunneling / Proxy
- Integrated Up-time Monitor
- Web-SSH Terminal
- Utilities
- CIDR IP converters
- mDNS Scanner
- IP Scanner
- Others
- Basic single-admin management mode
- External permission management system for easy system integration
- SMTP config for password reset
Screenshots
I use Caddy. It works from Cli but very ez to use. Might try this in the future tho
Same. Caddy is absurdly simple to configure
That looks pretty cool. I think it’s just that everyone kinda picked their setup at the start and nobody wants to mess with it anymore lol.
I’ve got traefik setup so that I just add a few lines to a docker compose file and I’ll automatically have a new service running under a new subdomain, with SSL certificate and all. Never have to think about it.
Have you automated host record creation?
I just have a wildcard subdomain record. (CNAME: *.mydomain.com)
Then the traffic gets sent to Traefik which checks the request for what subdomain it is asking for and routes it accordingly.
It’s just two label lines in each docker compose with whatever subdomain I want to use and a minute or two later it’s gotten the certificates and it’s available.
Ah, that would make it easy. I can’t use a wildcard with most of my domains, but maybe I could set up subdomains to have this convenience for dev/test sites. Thanks!
I suspect it would be trivial to add a hook to dynamically create (and remove, maybe) DNS records, just haven’t tried yet.
Out of curiosity, why cant you use a wildcard?
Lots of different hosts, multiple load balancers / ingress controllers.
Yes, I did. But I couldn’t get my Homeassistant to work routing through it, so I switched back to Proxy Manager…
I use Zoraxy on all my servers, it replaced Nginx proxy manager (NPM) for me completely. Installed on my host system, it points directly into docker containers via IPV6 in most cases.
For services that I run on the host directly, it points to nginx or apache, both work well with Zoraxy. Synape, Mastodon, Immich, Vaultwarden, Jellyfin, Nextcloud, WordPress… No problem
If you run Zoraxy in docker, it works like NPM, but it has no advanced tab for additional configuration. It is just a reverse proxy, not a full web server like NPM, which is basically a GUI for nginx.
You will need nginx in addition for traffic splitting for some services, like Synapse or Mastodon, even in docker. In NPM this is called locations
I think it is beginner friendly, since those users mostly use docker containers. Container mostly work out of the box like in NPM. They can use Zoraxy in docker too and point it directly to a container name and port, immich_server:3001 for example. Same as in NPM
You will need nginx in addition for traffic splitting for some services, like Synapse or Mastodon, even in docker. In NPM this is called locations
That sounds like a pretty major missing feature.
Why? It is a reverse proxy, not a fully webserver, this is the difference from Nginx Proxy Manager, which includes Nginx. But advanced configuration can be a pain with NPM too, just look for Synapse and Delegation. This is troublesome for most users of NPM.
Zoraxy can serve a static website, but traffic splitting like for Synapse, MinIO or Mastodon is part of a (fully) webserver.
I use Zoraxy as a reverse proxy for easy managing my services, mostly directly in containers, but I use it with Apache and Nginx on the same host too for WordPress and Nextcloud for example.
Beginners will mostly only use docker containers, without further configuration, like in NPM and this works out of the box :)
Splitting traffic on a reverse proxy host based on various triggers is a pretty common thing for a reverse proxy to do. Caddy does it, Nginx does it, HAProxy does it.
Let me know if the Screenshots are loading or not… on mobile they dont seem to load for me, but on PC they do…?
They’re not working for me
could u check now?
Now they’re working
They load on the link to github, but not here on Lemmy.
hopefully fixed now?
They’re working for me on PC.
Not working for me
should work now :)
Looks interesting! The ui looks miles ahead of NPM, so I might need to check it out
I wish I’d seen this before the minor hell I went through learning how to geoip block via iptables. 😁
It looks interesting. I think my only real concern is security. There’s a lot of people using and working on nginx so, presumably, more people to identify bugs and squash them.
Yeah that’s a valid point, especially if you’re pointing this to the outside world.
I’m still curious tho. I’ll probably set it up for some internal only sites to test.
I tried it out yesterday. All I wanted to do was add names to my services. I managed to get Homarr to show up when I go to server.local but couldn’t then get Overseerr to show when I go to overseerr.server.local or server.local/overseerr
So after an hour or so of fiddling I gave up.
I use Tailscale so I just don’t need to have everything sent to my domain, but I’m struggling just keeping it all on the local network.
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters DNS Domain Name Service/System HTTP Hypertext Transfer Protocol, the Web SSL Secure Sockets Layer, for transparent encryption nginx Popular HTTP server
3 acronyms in this thread; the most compressed thread commented on today has 10 acronyms.
[Thread #714 for this sub, first seen 26th Apr 2024, 16:15] [FAQ] [Full list] [Contact] [Source code]
I too am interested.