Provided by: shoelaces_1.2.0+ds-1build1_amd64 bug


       shoelaces - automated server bootstrapping


       shoelaces [options...]


       -base-url <string>
           Optional parameter. Specifies the base address that will be used when generating URLs.
           If it's not specified, the value of "-bind-addr" will be used.

       -bind-addr <host:port>
           The address where Shoelaces will listen for requests. Defaults to "localhost:8081".

       -config <config>
           Specifies a config file. All the following options can be specified in the config.

       -data-dir <directory>
           Specifies a directory with mappings, configs, templates, etc.

           Enables debug mode.

       -env-dir <directory>
           Specifies a directory with environment overrides. Refer to the README of the project
           for more information about environment overrides.

       -mappings-file <file>
           Specifies a mappings YAML file. Defaults to "mappings.yaml". Refer to the README of
           the project for more information about mappings.

       -static-dir <directory>
           Specifies a custom web directory with static files. Defaults to "web".

       -template-extension <extension>
           Shoelaces template extension. Defaults to ".slc".


       Shoelaces serves over HTTP iPXE boot scripts, cloud-init configuration, and any other
       configuration files to baremetal or virtual machines booting using iPXE. It also does a
       few other things to make easier managing server deployments:

       •   Has a simple but nice UI to show the current configuration, and history of servers
           that booted.
       •   Uses Go templates to handle complex configurations.
       •   Allows specifying the boot entry point for a given server based on its IP address or
           DNS PTR record.
       •   Supports the notion of environments for Development and Production environment
           configurations, while trying to minimize template duplication.
       •   Puts unknown servers into iPXE script boot retry loop, while at the same time showing
           them in the UI allowing the user to select a specific boot configuration.

       Shoelaces is better when used along a DHCP server. Refer to the CONFIGURATION section for
       examples on how to configure a DHCP server for hooking it with Shoelaces.


       Shoelaces searches for a config file whenever the -config flag is specified.

       Here is example config file:


       dhcpd(8) can be hooked with Shoelaces by adding the following snippet in dhcpd.conf(5):

           # dhcp.conf
           next-server <your-tftp-server>;
           if exists user-class and option user-class = "iPXE" {
             filename "http://<shoelaces-server>/poll/1/${netX/mac:hexhyp}";
           } else {
             filename "undionly.kpxe";

       Similarly, dnsmasq(8) can be configured for working with Shoelaces with the following

           dhcp-match=set:ipxe,175 # iPXE sends a 175 option.

       A TFTP server such as tftpd(8) must be configured to serve the IPXE ROM, undionly.kpxe.


       dhcpd(8) dhcpd.conf(5) dnsmasq(8) tftpd(8)


       Maintained by ThousandEyes Inc. <>.

       Up-to-date sources can be found at

       Bugs reports and patches can be submitted via GitHub's interface or contacting the
       maintainers directly via email.

                                            2021-11-30                               shoelaces(8)