server

package
v0.0.11 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const DEFAULT_ADDRESS = "127.0.0.1"
View Source
const DEFAULT_ALPINE_MIRROR = "https://dl-cdn.alpinelinux.org"
View Source
const DEFAULT_DEBIAN_MIRROR = "http://ftp.us.debian.org"

mirrors used by netboot proxy feature

View Source
const DEFAULT_DEBIAN_SECURITY_MIRROR = "http://security.debian.org"
View Source
const DEFAULT_HOSTNAME = "netboot.local"
View Source
const DEFAULT_HTTPS_PORT = "4443"
View Source
const DEFAULT_HTTP_PORT = "4444"
View Source
const DEFAULT_OPENBSD_MIRROR = "http://mirrors.mit.edu"
View Source
const Version = "1.0.0"

Variables

View Source
var ALPINE_VERSION_PATTERN = regexp.MustCompile(`([0-9][0-9]*)\.([0-9][0-9]*)\.([0-9][0-9]*)$`)
View Source
var APKOVL_PATTERN = regexp.MustCompile(`^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})\.apkovl\.tar\.gz$`)
View Source
var IPXE_PATTERN = regexp.MustCompile(`^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})\.ipxe$`)
View Source
var MAC_PATTERN = regexp.MustCompile(`^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$`)
View Source
var TARBALL_PATTERN = regexp.MustCompile(`^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})\.tgz$`)

Functions

func CopyFile added in v0.0.7

func CopyFile(dstPathname, srcPathname string) error

func CopyFileFromFS added in v0.0.7

func CopyFileFromFS(dstPathname, srcPathname string, srcFS fs.FS) error

func DownloadFileRoot added in v0.0.7

func DownloadFileRoot(root *os.Root, mirrorUrl, requestPath string) (string, []byte, error)

func ExtractTarballFile added in v0.0.7

func ExtractTarballFile(dstPath, srcPath, tarPath string) error

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 IsDirFS added in v0.0.7

func IsDirFS(filesystem fs.FS, pathname string) bool

func IsDirRoot added in v0.0.7

func IsDirRoot(root *os.Root, pathname string) bool

func IsFile

func IsFile(path string) bool

func IsFileFS added in v0.0.7

func IsFileFS(filesystem fs.FS, pathname string) bool

func IsFileRoot added in v0.0.7

func IsFileRoot(root *os.Root, pathname string) bool

func MkdirAllRoot added in v0.0.7

func MkdirAllRoot(root *os.Root, pathname string) error

func UnzipFile added in v0.0.4

func UnzipFile(filename string) (string, error)

func Warning added in v0.0.7

func Warning(format string, args ...interface{})

func WriteTarball added in v0.0.10

func WriteTarball(dstPath, srcDir string, chownRoot bool) error

func ZipFile added in v0.0.4

func ZipFile(filename string) (string, error)

Types

type AddResponse

type AddResponse struct {
	Message string   `json:"message"`
	ISO     string   `json: "iso"`
	Files   []string `json:"files"`
}

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"`
	Mirror            string `json:"mirror"`
	Response          string `json:"response"`
	DisklabelTemplate string `json:"disklabel_template"`
	KernelParams      string `json:"kernel_params"`
	Debug             bool   `json:"debug"`
	Quiet             bool   `json:"quiet"`
}

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, template *Template) (*HostCache, error)

func (*HostCache) AddHostHandlerTLS added in v0.0.10

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

func (*HostCache) AlpineHandler added in v0.0.7

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

func (*HostCache) AlpineHandlerTLS added in v0.0.10

func (c *HostCache) AlpineHandlerTLS(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) DebianHandlerTLS added in v0.0.10

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

func (*HostCache) DebianSecurityHandler added in v0.0.7

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

func (*HostCache) DebianSecurityHandlerTLS added in v0.0.10

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

func (*HostCache) DeleteHostHandlerTLS added in v0.0.10

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

func (*HostCache) GDLHandlerTLS added in v0.0.10

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

func (*HostCache) GenerateISO added in v0.0.3

func (c *HostCache) GenerateISO(tempDir, url, httpUrl string, bootFiles []string, config *Config) (string, error)

Generate a url-customized netboot ISO returning generated iso pathname

func (*HostCache) HostAddressQueryHandlerTLS added in v0.0.10

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

func (*HostCache) HostBootedHandlerTLS added in v0.0.10

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

func (*HostCache) IPXEHandlerTLS added in v0.0.7

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

func (*HostCache) ListHostsHandlerTLS added in v0.0.10

func (c *HostCache) ListHostsHandlerTLS(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) OpenBSDHandlerTLS added in v0.0.10

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

func (*HostCache) PNGHandlerTLS added in v0.0.10

func (c *HostCache) PNGHandlerTLS(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) RootHandlerTLS added in v0.0.10

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

func (*HostCache) SanBootHandler added in v0.0.10

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

func (*HostCache) UTCHandler added in v0.0.7

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

func (*HostCache) UTCHandlerTLS added in v0.0.10

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

func (*HostCache) UploadPackageHandlerTLS added in v0.0.10

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

func (*HostCache) VersionHandlerTLS added in v0.0.10

func (c *HostCache) VersionHandlerTLS(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 {
	TempDir   string
	IpxeDir   string
	URL       string
	BootFiles []string
	Config    *Config
	ISO       string
	// contains filtered or unexported fields
}

func NewMkBoot

func NewMkBoot(tempDir, ipxeDir, url string, bootFiles []string, config *Config, template *Template) *MkBoot

func (*MkBoot) Generate

func (m *MkBoot) Generate() (string, error)

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

type NetbootOption added in v0.0.10

type NetbootOption int
const (
	NetbootOptionDefault NetbootOption = iota
	NetbootOptionEnable
	NetbootOptionDisable
)

type Options

type Options struct {
	Hostname  string
	Address   string
	HttpPort  int
	HttpsPort int
	CacheDir  string
	Proxy     NetbootOption
	Template  *Template
}

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
	HttpsPort int
	HttpPort  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

type Template added in v0.0.11

type Template struct {
	Certs  embed.FS
	Ipxe   embed.FS
	Dist   embed.FS
	Mkboot embed.FS
}

Jump to

Keyboard shortcuts

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