1
1
Fork
You've already forked tanke
1
Offline Linux installer based on package mirror and iPXE boot. Written in Ansible.
Find a file
2026年01月29日 08:43:28 +01:00
docs initial commit 2026年01月28日 00:13:46 +01:00
play-tanke.yml more fixes for install when wan interface is down 2026年01月28日 22:32:23 +01:00
README.md more readme 2026年01月29日 08:43:28 +01:00

Tanke

Made for Linux User Groups (GoeLUG) and the Digital Independence Day, Tanke allows you to create a standalone APT package mirror and iPXE Server to install Linux (Mint and Debian) completly offline.

  • Connect a PC via Ethernet to the Tanke PC
  • Boot from PXE
  • Choose OS/Installer to boot
  • 🚀

No modifications necessary! Not on the installer ISOs, not on installed OS before/after the installation!

Features:

  • Boot Linux Mint Cinnamon with German Language settings
  • Boot Linux Mint Cinnamon with English Language settings
  • Boot Debian net install
  • Boot Memtest86+
  • Boot CloneZilla
  • Boot gparted Live
  • Offline Mirror for archive.ubuntu.com via DNS override (noble, x64 & i386)
  • Offline Mirror for packages.linuxmint.com via DNS override (zena, x64 & i386)
  • Offline Mirror for deb.debian.org via DNS override (trixie, x64 & i386)
  • Optional: Allow Internet Access to Clients

screenshot

Video from the Boot process

Current state

Alpha. First working prototype, feedback very welcome!

Later there will be a proper Ansible Collections to make customizations easier.

Tech

  • 700GB-ish packages mirrored
  • NGINX for serving mirrors, isos and PXE files
  • dnsmasq for DHCP, DNS and TFTP
  • DNS overrides for certain APT mirrors
  • iPXE scripts to boot live systems and tools

Requirements

  • PC with two network interfaces (USB NIC is fine)
  • 1 TB free disk space
  • A Switch for the local interface

hardware

graph LR
 Internet --"Optional"--> TankePC --> Switch --> Client
 Switch --> Client2
 Switch --> Client3

Install

  • Install Debian Trixie
  • Ensure storage, partition / mount additional drives if necessary
  • Adjust settings in playbook
  • Run ansible playbook on it
  • Perform the manual tasks mentioned in playbook
  • Run /usr/local/sbin/tanke-sync-all.sh to download packages into mirror (This may take many hours to 1-2 days)

Known issues

  • Debian netinstall does not allow UEFI bootloader when booted from PXE. Take a USB drive, format it to FAT32, create the folder structure efi/boot/ and place ipxe.efi as bootx64.efi into that folder. Then iPXE will boot in UEFI mode from USB and so will the Debian netinstall.

    (Linux Mint Installer does not have that problem 🤷‍♀️)

Credit

Made by Christian Blechert (svr.ls, nerdbridge).