server

package
v0.0.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 10, 2025 License: BSD-3-Clause Imports: 31 Imported by: 0

Documentation

Index

Constants

View Source
const DEFAULT_ADDRESS = "127.0.0.1"
View Source
const DEFAULT_HOSTNAME = "netboot.local"
View Source
const DEFAULT_PORT = "2014"
View Source
const Version = "1.0.0"

Variables

View Source
var ALPINE_PATTERN = regexp.MustCompile(`^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2}).apkvol.tar.gz$`)
View Source
var INITRD_PATTERN = regexp.MustCompile(`^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2}).initrd$`)
View Source
var IPXE_PATTERN = regexp.MustCompile(`^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})\.ipxe$`)
View Source
var KERNEL_PATTERN = regexp.MustCompile(`^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2}).kernel$`)
View Source
var MAC_PATTERN = regexp.MustCompile(`^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$`)
View Source
var RESPONSE_PATTERN = regexp.MustCompile(`^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2}).conf$`)
View Source
var TARBALL_PATTERN = regexp.MustCompile(`^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})\.tgz$`)

Functions

func Fatal added in v0.0.3

func Fatal(err error) error

func Fatalf added in v0.0.3

func Fatalf(format string, args ...interface{}) error

func FormatJSON

func FormatJSON(v any) string

func GenerateInitrd added in v0.0.3

func GenerateInitrd(outputName, inputName string, fileNames []string) error

func IsDir

func IsDir(path string) bool

func IsFile

func IsFile(path string) bool

func UnzipFile added in v0.0.4

func UnzipFile(filename string) (string, error)

func ZipFile added in v0.0.4

func ZipFile(filename string) (string, error)

Types

type AddResponse

type AddResponse struct {
	Message string   `json:"message"`
	Output  []string `json:"output"`
}

type Config

type Config struct {
	Address           string `json:"address"`
	OS                string `json:"os"`
	Version           string `json:"version"`
	Arch              string `json:"arch"`
	Serial            string `json:"serial"`
	Config            string `json:"config"`
	DisklabelTemplate string `json:"disklabel_template"`
}

type DeleteResponse

type DeleteResponse struct {
	Message string   `json:"message"`
	Files   []string `json:"files"`
}

type Host

type Host struct {
	Address string `json:"address"`
}

type HostAddressResponse

type HostAddressResponse struct {
	MAC string `json:"mac"`
	IP  string `json:"ip"`
}

type HostCache

type HostCache struct {
	// contains filtered or unexported fields
}

func NewHostCache

func NewHostCache(dir string) (*HostCache, error)

func (*HostCache) AddHostHandler

func (c *HostCache) AddHostHandler(w http.ResponseWriter, r *http.Request)

func (*HostCache) DebianHandler added in v0.0.3

func (c *HostCache) DebianHandler(w http.ResponseWriter, r *http.Request)

func (*HostCache) DeleteHostHandler

func (c *HostCache) DeleteHostHandler(w http.ResponseWriter, r *http.Request)

func (*HostCache) GenerateISO added in v0.0.3

func (c *HostCache) GenerateISO(url, isoDir, isoFile string, config *Config) error

Generate a url-customized netboot ISO

func (*HostCache) HostAddressQueryHandler

func (c *HostCache) HostAddressQueryHandler(w http.ResponseWriter, r *http.Request)

func (*HostCache) HostBootedHandler

func (c *HostCache) HostBootedHandler(w http.ResponseWriter, r *http.Request)

func (*HostCache) IPXEHandler added in v0.0.3

func (c *HostCache) IPXEHandler(w http.ResponseWriter, r *http.Request)

func (*HostCache) IsoFile added in v0.0.3

func (c *HostCache) IsoFile(url string, config *Config) (string, error)

return the netboot.iso filename the url, generating the ISO if not present

func (*HostCache) ListHostsHandler

func (c *HostCache) ListHostsHandler(w http.ResponseWriter, r *http.Request)

func (*HostCache) NetbootISOHandler added in v0.0.3

func (c *HostCache) NetbootISOHandler(w http.ResponseWriter, r *http.Request)

func (*HostCache) OpenBSDHandler added in v0.0.3

func (c *HostCache) OpenBSDHandler(w http.ResponseWriter, r *http.Request)

func (*HostCache) RootHandler added in v0.0.5

func (c *HostCache) RootHandler(w http.ResponseWriter, r *http.Request)

func (*HostCache) UploadPackageHandler

func (c *HostCache) UploadPackageHandler(w http.ResponseWriter, r *http.Request)

type HostListResponse

type HostListResponse struct {
	Message   string   `json:"message"`
	Addresses []string `json:"addresses"`
}

type InitFile

type InitFile struct {
	DstName string
	SrcName string
	Mode    fs.FileMode
	UID     int
	GID     int
}

type MkBoot

type MkBoot struct {
	Config            *Config
	Dir               string
	Tarball           string
	Response          string
	DiskLabelTemplate string
	URL               string
	ExternalCPIO      bool
}

func NewMkBoot

func NewMkBoot(config *Config, dir, tarball, response, diskLabelTemplate, url string) *MkBoot

func (*MkBoot) Generate

func (m *MkBoot) Generate() error

prepare OS-specific boot files in the cache directory named with MAC address

type Options

type Options struct {
	Hostname string
	Address  string
	Port     int
	CacheDir string
}

type Record added in v0.0.4

type Record struct {
	Header cpio.Header
	Data   []byte
}

type Response

type Response struct {
	Message string `json:"message"`
}

type Server

type Server struct {
	Hostname string
	Address  string
	Port     int

	NetbootDir string
	// contains filtered or unexported fields
}

func NewServer

func NewServer(options *Options) (*Server, error)

func (*Server) Start

func (s *Server) Start() error

func (*Server) Stop

func (s *Server) Stop() error

func (*Server) Wait

func (s *Server) Wait() error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL