mirror of
https://github.com/yusing/godoxy.git
synced 2026-01-11 14:20:32 +01:00
Non docker services #58
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @alexdelprete on GitHub (Apr 21, 2025).
Hi,
this project is really interesting. Right now I'm using Traefik with Cloudflare, my homelab is based on Proxmox, with dockerized services but I also have standalone LXC/VMs.
I like the tight integration with docker, but reading the docs I didn't understand how to manage non-docker services (standalone LXCs or VMs).
Can I manually define those non-docker services? Where can I find this in the docs?
Thanks for the great work.
@yusing commented on GitHub (Apr 21, 2025):
Hi, it's here: https://github.com/yusing/godoxy/wiki/Docker-labels-and-Route-Files#example-configappyml
And https://github.com/yusing/godoxy/wiki/Configurations#setting-up-providers
All non docker routes can be defined within route files, after adding them to GoDoxy config they will show up on the homepage.
@alexdelprete commented on GitHub (Apr 24, 2025):
I need to set it up and experiment with it a bit to understand better.
It's probably one of those cases for which it's easier to implement it than studying it. :)
@yusing commented on GitHub (Apr 25, 2025):
You're not too into yaml editing, you may just use the UI editor on WebUI -> Config Editor
@yusing commented on GitHub (Apr 25, 2025):
Here
@alexdelprete commented on GitHub (Apr 25, 2025):
Provider files have to be created first or can be done directly in the UI?
@yusing commented on GitHub (Apr 25, 2025):
Can be created in the UI.
Step 1.

Step 2.

Step 3.
Save File
@alexdelprete commented on GitHub (Apr 25, 2025):
Thanks a lot, I'll schedule some time to set it up. Looks promising.
@alexdelprete commented on GitHub (Apr 26, 2025):
@yusing is there a comparison matrix with Pangolin?
@yusing commented on GitHub (Apr 26, 2025):
This is just a reverse proxy you can choose cf tunnels / tailscale / netbird / anything you want to work with.
Pangolin is Traefik + Wireguard + UI packed together to replace the use of cloudflare tunnels.
I haven't tried Pangolin yet, so I say below might be wrong:
If you use Pangolin:
Pros:
Cons:
@alexdelprete commented on GitHub (Apr 26, 2025):
You can run it without creating tunnels: https://docs.fossorial.io/Pangolin/without-tunneling
Yes, that's why I don't agree when you say in the first point that godoxy is "just a reverse proxy", it's a bit more, and that's why it's appealing for homelabbers. :)
Right now I'm using Traefik (with Cloudflare), Homepage, Beszel and Uptime-Kuma, all separately. What I like about godoxy is that it's one tool that covers all those functionalities. I hope the UI will improve with time.
I'll probably go with godoxy hoping to simplify operations/maintenance.
Last question: I'm using traefik integrated with Zitadel for IdP. I'm using this middleware to integrate Zitadel in Traefik. Hope I can do the same with godoxy.
@yusing commented on GitHub (Apr 26, 2025):
My bad, I mean from the connectivity aspect it's a reverse proxy, without wireguard and tunneling.
I hope so, it will be great if someone can help. As you can see the only active contributor is me, the progress can be slow... And I'm a coding guy that's not too deep into web dev.
From the page of the middleware:
which is similar to GoDoxy's configurations (See Wiki)
@alexdelprete commented on GitHub (Apr 26, 2025):
I'm an old tinkerer, developed when I was young, now I just develop for hobby stuff (mainly Home Assistant python integrations). Never developed for web projects. I hope that when godoxy becomes more popular, some other dev will want to contribute, it is a nice project and you're doing a great job.
Once I install it and use it, and become proficient with it, I'll try to contribute as I can.
Keep up the great job...
@yusing commented on GitHub (Apr 26, 2025):
Thanks a lot! Let me try if you have questions about it.
@alexdelprete commented on GitHub (Apr 27, 2025):
I'm using PKCE on Zitadel, and the middleware supports it:
I guess godoxy only supports client secret, right? If so, I need to configure another "application" in Zitadel, specific for godoxy.
Also, in the docs the callback url is mentioned, but not the logout url, in Zitadel there's both of them to configure. Would be nice to have them configurable in godoxy.
I guess the defaults should be:
https://*.yourdomain.com/auth/callbackhttps://*.yourdomain.com/auth/logoutCorrect?
@yusing commented on GitHub (Apr 27, 2025):
Yes does not support PKCE for now.
Yes, correct
@alexdelprete commented on GitHub (May 2, 2025):
@yusing question: would it be possible to have something like ACLs (rules would be a more appropriate term) for the OIDC authentication? Right now, the middleware I'm using with traefik allows me to specify various rules to skip OIDC authentication. This is needed because I don't want LAN users or services to have to go through OIDC, but I surely want to force WAN users going through OIDC.
IP/CIDR would be basic rules, but I was also thinking if we could specify "all docker containers" / providers, etc. Something like that.
Ideally, if one uses cloudflared tunnel or cloudflare proxy, it would be awesome to say: "accept non LAN connections only through cloudflare or cloudflared, identify through cloudflare headers (real IP, etc.) and force OIDC. Something like that. :)
@yusing commented on GitHub (May 2, 2025):
Bypassing OIDC / any middleware for specific IP range would be nice in many cases. Will add this in the next version.
For now there's no way to apply oidc globally to specific provider. You can use the middleware on the entry point, but it will cause many issues.
@alexdelprete commented on GitHub (May 2, 2025):
Could you reuse the same kind of rules you have for ACLs? Those types of categories/rules are nice.
Got it. Well, maybe we could think about something smart for the "rules": for example headers...we could leverage headers, so for example use CF headers to identify cloudflare, etc.
@alexdelprete commented on GitHub (May 3, 2025):
I'm completing the migration from traefik, it's not really easy since I have a pretty complete/complex configuration, entirely file based. Wasted/invested a lot of time on the security headers, since Traefik is using a go middleware called Secure to manage them, and the syntax is custom.
In case someone else has the same issue, and wants to save some time, here's the traefik header config:
And this is the equivalent, with standard headers as documented here:
These set of headers have shown a great compatibility through the years, and allow to get a good score on specialized sites that analyze these things:
I'll test with godoxy once the migration from traefik is complete, hoping the results will be the same.
BTW: I had to search the repo issues to find out how to set response headers in config.yml (
use: ModifyResponse), couldn't find it in the documentation. The examples I found are just for docker labels and route files, and syntax is very different.Also for other middlewares (CloudflareRealIP, RedirectHTTP) I didn't find how to use them in config.yml entrypoint section, had to search in the issues again.
For
use: oidcI found this in the docs, but it's a little bit confusing:It documents how to use it in config.yml entrypoint, but it says NOT to use it in entrypoint. So I don't know if it will actually work or not. :)
@yusing commented on GitHub (May 3, 2025):
Please let me know!
Entry point middlewares share the same syntax with Middleware compose.
Let me write the example here, playing around with UI Config Editor might give you a better explanation of the syntax.
It documents how to NOT use it in config.yml with an example. Foreseeable problems doing so:
@alexdelprete commented on GitHub (May 3, 2025):
I must say I find the UI configurator not really my cup of tea. It's not really intuitive for me, I prefer to edit directly the yaml. :)
But I have this validation error, although I copy&pasted an example configuration from the docs:
Here's the yaml code of the entire entrypoint section:
@yusing commented on GitHub (May 3, 2025):
Will fix the JSON schema
@alexdelprete commented on GitHub (May 3, 2025):
So this means OIDC has to be enabled in each container through docker labels? :(
@yusing commented on GitHub (May 3, 2025):
Yes
@alexdelprete commented on GitHub (May 3, 2025):
With Traefik there's the chain middleware to logically aggregate middlewares and create a sort of "package", so users can create secure / unsecure / etc. combinations for various use-cases.
Is it something you already considered?
This was how I used it, and then easily assigned secured-auth, secured-noauth, secured-nocf to the services.
@yusing commented on GitHub (May 3, 2025):
https://docs.godoxy.dev/Middlewares#middleware-compose
@gilbrotheraway commented on GitHub (May 4, 2025):
I'll offer my anecdote as i tried to set up pangolin before giving up and getting here
it doesn't let you choose which ports to use for HTTPS so if you're using it strictly as a reverse proxy and your ISP blocks those ports you're out of luck(my case)
middleware configuration is a mess, the default crowdsec install leaves you with a nonfunctional setup
one might as well utilize wireguard + any reverse proxy rather than relying on a single app to orchestrate things(for e.g since you mentioned using a hypervisor you may want to change your reverse proxy down the road for scalability)
edit: that was fast
https://www.reddit.com/r/selfhosted/comments/1ke5jhy/too_soon_to_make_it_paid_pangolin/
@yusing commented on GitHub (May 4, 2025):
I saw this coming, at the very first day of knowing the project existed.
@alexdelprete commented on GitHub (May 5, 2025):
shame on them. let's make godoxy a great open-source solution so the community has the right alternative.
@Clankcoll commented on GitHub (May 7, 2025):
Hi as i am Only flying by through this projects and its issues to see if it would be an vaible fit to change on lab 1 from Traefik and lab 2 from nginx reverse proxy i saw the scan you did could you be so nice and send me the link or the site name where you did the scan i would like to see if misconfigured anything and what i would need to watchout if i test godoxy :)
Kind regards
@yusing commented on GitHub (May 7, 2025):
I think its https://securityheaders.com/
@mufeedali commented on GitHub (May 13, 2025):
Pangolin switched their license to AGPL and removed the paywalls. Godoxy still has way more to offer as discussed here though. Some of it is planned to be included in Pangolin (service dashboard, docker labels support, etc) and in other ways, Pangolin is going on a very different path (OIDC implementation). I'm thinking of switching away from Pangolin towards Godoxy just for the niceties :)
@alexdelprete commented on GitHub (May 13, 2025):
I would never trust a dev/project that starts as open-source, switches to paywalls, then when people abandon it goes back to open-source. It's clear that the real objective of the dev was to make money, since the beginning.
We'll make godoxy a great project, fully open-source, and I hope @yusing will find some developers willing to help. :)
@mufeedali commented on GitHub (May 14, 2025):
@alexdelprete I think you're assuming too much ill will from Pangolin's devs. They were very communicative with the community regarding their troubles with monetization. Monetizing open source projects is always a difficult endeavour. They also didn't really lose too many users despite what reddit would have you believe because the features that they had paywalled were pretty carefully selected. But yeah, a completely non-commercial open source project like Godoxy is great if sustainable.