Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use nginx to redirect from local assets to the standard github live_endpoint #69

Open
sjuerges opened this issue Aug 3, 2024 · 4 comments
Labels
enhancement New feature or request

Comments

@sjuerges
Copy link

sjuerges commented Aug 3, 2024

Is your feature request related to a problem? Please describe.
I want to keep a few things locally that get used very often, but I want to be able to try out everything else via the standard live_endpoint

Describe the solution you'd like
Well, I've built a solution and would like to suggest it here: I have modified the nginx config so that i reads as follows:

server {
        listen 80;

        set $v_filename nf;

        location ~ ^/(.*)$ {
                try_files $uri $uri/ @netboot;
                set $v_filename $1;
                root /assets;
                autoindex on;
        }

        location @netboot {
                return 302      https://github.com/netbootxyz/$v_filename;
        }
}

(code from serverfault i stumbled across some time ago and remembered for this: https://serverfault.com/questions/1099771/redirect-to-other-server-and-domain-if-file-not-found)

This lets me have my cake and eat it too. I can access stuff that isn't there locally, and the nginx sends a 302 to the "standard" live_endpoint url to the client, which then gets it there:

172.18.0.5 - - [03/Aug/2024:21:36:51 +0000] "HEAD /ubuntu-squash/releases/download/7-3e6e05f6/filesystem.squashfs HTTP/1.1" 302 0 "-" "curl/8.4.0"
172.18.0.5 - - [03/Aug/2024:21:36:51 +0000] "GET /ubuntu-squash/releases/download/7-3e6e05f6/filesystem.squashfs HTTP/1.1" 302 145 "-" "curl/8.4.0"

But, i can also access stuff that was downloaded:

172.18.0.5 - - [03/Aug/2024:21:34:45 +0000] "GET /ubuntu-squash/releases/download/5-6efd1d75/vmlinuz HTTP/1.1" 200 11656064 "-" "iPXE/1.21.1+ (g5a9f4)"
172.18.0.5 - - [03/Aug/2024:21:34:46 +0000] "GET /ubuntu-squash/releases/download/5-6efd1d75/initrd HTTP/1.1" 200 46925888 "-" "iPXE/1.21.1+ (g5a9f4)"

Describe alternatives you've considered
I was messing about with caching and i found it ... tedious, to say the least. This is, imho, elegant, ties into the local asset management and SHOULDNT break anything.

Additional context
None. I think its fairly obvious what is happening here. Feel free to contact me for details if anything is unclear ;)

@sjuerges sjuerges added the enhancement New feature or request label Aug 3, 2024
@sjuerges
Copy link
Author

sjuerges commented Aug 3, 2024

Oh, I would've written a PR if I understood how the initial site-confs/default gets created :) Wasn't trying to be lazy.

@sjuerges
Copy link
Author

sjuerges commented Aug 3, 2024

ah damn, this probably should've gone into docker-netbootxyz issues, right? Sorry, too excited, my bad.

@antonym
Copy link
Member

antonym commented Aug 3, 2024

I can move it, if you want to propose a PR, I can find some time to test it out.

@antonym antonym transferred this issue from netbootxyz/netboot.xyz Aug 3, 2024
@sjuerges
Copy link
Author

sjuerges commented Aug 3, 2024

I'll write a PR tomorrow, thanks @antonym

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants