{"id":24884255,"url":"https://github.com/dreknix/docker-image-pxe-tftpd","last_synced_at":"2025-10-16T03:30:36.940Z","repository":{"id":161739455,"uuid":"599141661","full_name":"dreknix/docker-image-pxe-tftpd","owner":"dreknix","description":"Docker image for TFTP server in PXE","archived":false,"fork":false,"pushed_at":"2025-01-08T08:12:49.000Z","size":18,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-08T09:26:13.352Z","etag":null,"topics":["docker","ipxe","netboot","pxe-boot","tftp"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dreknix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-08T14:39:28.000Z","updated_at":"2025-01-08T08:12:51.000Z","dependencies_parsed_at":"2024-06-13T14:11:26.332Z","dependency_job_id":"afbb92ce-9429-4aa5-b0c7-baf4e9cffc6d","html_url":"https://github.com/dreknix/docker-image-pxe-tftpd","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dreknix%2Fdocker-image-pxe-tftpd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dreknix%2Fdocker-image-pxe-tftpd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dreknix%2Fdocker-image-pxe-tftpd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dreknix%2Fdocker-image-pxe-tftpd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dreknix","download_url":"https://codeload.github.com/dreknix/docker-image-pxe-tftpd/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236672909,"owners_count":19186839,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","ipxe","netboot","pxe-boot","tftp"],"created_at":"2025-02-01T14:26:38.352Z","updated_at":"2025-10-16T03:30:36.596Z","avatar_url":"https://github.com/dreknix.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker image for TFTP server in PXE\n\nThis Docker image provides a\n[TFTP server](https://linux.die.net/man/8/in.tftpd)\nwith\n[iPXE](https://ipxe.org/)\nas network bootstrap program\n(NBP). It is part of the Docker compose\n[PXE service](https://github.com/dreknix/docker-compose-pxe)\n\nThe image is also available from\n[Docker Hub](https://hub.docker.com/r/dreknix/pxe-tftpd):\n\n```console\n$ docker pull dreknix/pxe-tftpd\n```\n\n## Configure iPXE\n\nThe iPXE software is configured as follows:\n\n* enable `DOWNLOAD_PROTO_HTTPS`\n* enable `PING_CMD`\n* enable `CONSOLE_CMD`\n* enable `CONSOLE_FRAMEBUFFER`\n* change `KEYBOARD_MAP` to `de`\n\nIn order to boot from local disk in UEFI mode a\n[patch](https://github.com/ipxe/ipxe/pull/612)\nis used, which is currently not part of the main branch of iPXE.\n\nIn `ipxe.pxe` and `ipxe.efi` the script [embedded.ipxe](embedded.ipxe) is\nembedded. The boot menu is loaded via:\n\n```\nchain http://${next-server}:8069/boot/boot.ipxe\n```\n\nThe port can be configured by creating a `.env_local` file and build the image.\n\n## Configure DHCP server\n\nThe DHCP server must be configured, so that the right file will be loaded via\nTFTP. An example can be found in the\n[iPXE documentation](https://ipxe.org/howto/dhcpd).\n\n```\noption architecture-type code 93 = unsigned integer 16;\n\nsubnet 192.168.1.0 netmask 255.255.255.0 {\n\n  interface eth0;\n\n  # speeding up DHCP with iPXE\n  option ipxe.no-pxedhcp 1;\n\n  class \"pxeclients\" {\n\n    match if substring (option vendor-class-identifier, 0, 9) = \"PXEClient\";\n\n    next-server 192.168.1.69;  # pxe.example.org\n\n    if exists user-class and option user-class = \"iPXE\" {\n      filename \"http://pxe.example.org:8069/boot/boot.ipxe\";\n    } elsif option architecture-type = 00:00 {\n      filename \"ipxe.pxe\";\n    } else {\n      filename \"ipxe.efi\";\n    }\n\n  }\n\n    ...\n}\n```\n\nIn this example the network, interface, next-server and filename url must be\nadjusted to the current network settings.\n\n## Testing\n\nShow which ports are used:\n\n```console\n$ sudo netstat -tulpn | grep tftp\n```\n\nTry to download a file:\n\n```console\n$ curl tftp://localhost/ipxe.efi\n```\n\n## License\n\n[MIT](https://github.com/dreknix/docker-image-pxe-tftpd/blob/main/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdreknix%2Fdocker-image-pxe-tftpd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdreknix%2Fdocker-image-pxe-tftpd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdreknix%2Fdocker-image-pxe-tftpd/lists"}