system

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: May 25, 2026 License: MIT Imports: 36 Imported by: 0

Documentation

Index

Constants

View Source
const DBXRootSecret = "yes-i-will-destroy-everything-on-this-disk"
View Source
const (
	MONITOR_INTERVAL time.Duration = 10 * time.Second
)

Variables

View Source
var DBXROOT_WRAPPER_COMMAND = "/run/wrappers/bin/_dbxroot"
View Source
var RELEASE_REPOSITORY = "https://github.com/dogebox-wg/os.git"
View Source
var SUDO_COMMAND = "sudo"
View Source
var VALID_RECOVERY_FILES = []string{"RECOVERY", "RECOVERY.TXT"}

Functions

func CheckAndSubmitReflectorData

func CheckAndSubmitReflectorData(config dogeboxd.ServerConfig, networkManager dogeboxd.NetworkManager) error

func DidEnterRecovery

func DidEnterRecovery(dogeboxDataDir string) error

func DoSystemUpdate

func DoSystemUpdate(pkg string, updateVersion string, logger dogeboxd.SubLogger) error

func ForceRecoveryNextBoot

func ForceRecoveryNextBoot(dataDir string) error

func GetBuildType

func GetBuildType() (string, error)

func GetCustomNixPath

func GetCustomNixPath(config dogeboxd.ServerConfig) string

func GetInstallationState

Dogebox OS installation state based on boot drive type is either: From Installation Media (Read-Only mode): - No Installed OS - BootstrapInstallationStateNotInstalled - Installed, Unconfigured OS - BootstrapInstallationStateUnconfigured - Installed, Configured OS - BootstrapInstallationStateConfigured From Installed Location (not Read-Only mode): - Installed, Unconfigured - BootstrapInstallationStateUnconfigured - Installed, Configured - BootstrapInstallationStateConfigured

func GetSystemDisks

func GetSystemDisks() ([]dogeboxd.SystemDisk, error)

func HasForceRecoveryFile

func HasForceRecoveryFile(dataDir string) bool

func InitStorageDevice

func InitStorageDevice(dbxState dogeboxd.DogeboxState) (string, error)

func InstallToDisk

func InstallToDisk(t dogeboxd.Dogeboxd, config dogeboxd.ServerConfig, dbxState dogeboxd.DogeboxState, name string) error

func IsDiskNixRoot

func IsDiskNixRoot(disk dogeboxd.SystemDisk) bool

func IsInstalled

func IsInstalled(t dogeboxd.Dogeboxd, config dogeboxd.ServerConfig, dbxState dogeboxd.DogeboxState) (bool, error)

func IsRecoveryMode

func IsRecoveryMode(dogeboxDataDir string, sm dogeboxd.StateManager) bool

func MigrateLegacyCustomNix

func MigrateLegacyCustomNix(config dogeboxd.ServerConfig) error

func NewStateManager

func NewStateManager(store *dogeboxd.StoreManager) dogeboxd.StateManager

func SaveReflectorTokenForReboot

func SaveReflectorTokenForReboot(config dogeboxd.ServerConfig, host, token string) error

func ShouldEnterRecovery

func ShouldEnterRecovery(dogeboxDataDir string, sm dogeboxd.StateManager) bool

This function should do detection on whether or not we should enter our "Recovery Mode". This can always be overriden by a CLI flag if necessary. This will not return true if the current instance of dogeboxd has booted in recovery. Use `IsRecoveryMode()` for that.

func UnforceRecoveryNextBoot

func UnforceRecoveryNextBoot(dataDir string) error

Types

type DefaultRepoTagsFetcher

type DefaultRepoTagsFetcher struct{}

DefaultRepoTagsFetcher implements RepoTagsFetcher using the actual git implementation

func (*DefaultRepoTagsFetcher) GetRepoTags

func (d *DefaultRepoTagsFetcher) GetRepoTags(repo string) ([]RepositoryTag, error)

type InvalidUpdatePackageError

type InvalidUpdatePackageError struct {
	Package string
}

func (InvalidUpdatePackageError) Error

type JournalReader

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

func NewJournalReader

func NewJournalReader(config dogeboxd.ServerConfig) JournalReader

func (JournalReader) GetJournalChannel

func (t JournalReader) GetJournalChannel(service string) (context.CancelFunc, chan string, error)

func (JournalReader) GetJournalChannelFromCursor

func (t JournalReader) GetJournalChannelFromCursor(service string, cursor string) (context.CancelFunc, chan string, error)

func (JournalReader) GetJournalTail

func (t JournalReader) GetJournalTail(service string, limit int) ([]string, *string, error)

type Keymap

type Keymap struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

func GetKeymaps

func GetKeymaps() ([]Keymap, error)

type LogTailer

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

func NewLogTailer

func NewLogTailer(config dogeboxd.ServerConfig) LogTailer

func (LogTailer) GetChannel

func (t LogTailer) GetChannel(pupId string) (context.CancelFunc, chan string, error)

func (LogTailer) GetChannelFromOffset

func (t LogTailer) GetChannelFromOffset(pupId string, startOffset int64) (context.CancelFunc, chan string, error)

func (LogTailer) GetTail

func (t LogTailer) GetTail(pupId string, limit int) ([]string, int64, error)

type NixValidationError

type NixValidationError struct {
	Output string
}

NixValidationError represents a nix validation error

func (*NixValidationError) Error

func (e *NixValidationError) Error() string

type ReflectorFileData

type ReflectorFileData struct {
	Host  string `json:"host"`
	Token string `json:"token"`
}

type RepoTagsFetcher

type RepoTagsFetcher interface {
	GetRepoTags(repo string) ([]RepositoryTag, error)
}

RepoTagsFetcher interface for mocking getRepoTags

type RepositoryTag

type RepositoryTag struct {
	Tag string
}

type StateManager

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

func (*StateManager) CloseDB

func (s *StateManager) CloseDB() error

func (*StateManager) Get

func (s *StateManager) Get() dogeboxd.State

func (*StateManager) OpenDB

func (s *StateManager) OpenDB() error

func (*StateManager) SetDogebox

func (s *StateManager) SetDogebox(dbs dogeboxd.DogeboxState) error

func (*StateManager) SetNetwork

func (s *StateManager) SetNetwork(ns dogeboxd.NetworkState) error

func (*StateManager) SetSources

func (s *StateManager) SetSources(state dogeboxd.SourceState) error

type SystemMonitor

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

func NewSystemMonitor

func NewSystemMonitor(config dogeboxd.ServerConfig) SystemMonitor

func (SystemMonitor) GetFastMonChannel

func (t SystemMonitor) GetFastMonChannel() chan string

func (SystemMonitor) GetFastStatChannel

func (t SystemMonitor) GetFastStatChannel() chan map[string]dogeboxd.ProcStatus

func (SystemMonitor) GetMonChannel

func (t SystemMonitor) GetMonChannel() chan []string

func (SystemMonitor) GetStatChannel

func (t SystemMonitor) GetStatChannel() chan map[string]dogeboxd.ProcStatus

func (SystemMonitor) Run

func (t SystemMonitor) Run(started, stopped chan bool, stop chan context.Context) error

type SystemUpdater

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

func NewSystemUpdater

func NewSystemUpdater(config dogeboxd.ServerConfig, networkManager dogeboxd.NetworkManager, nixManager dogeboxd.NixManager, sourceManager dogeboxd.SourceManager, pupManager dogeboxd.PupManager, stateManager dogeboxd.StateManager, lifecycle dogeboxd.LifecycleManager, dkm dogeboxd.DKMManager) SystemUpdater

func (SystemUpdater) AddBinaryCache

func (t SystemUpdater) AddBinaryCache(j dogeboxd.AddBinaryCache, log dogeboxd.SubLogger) error

func (SystemUpdater) AddJob

func (t SystemUpdater) AddJob(j dogeboxd.Job)

func (SystemUpdater) AddSSHKey

func (t SystemUpdater) AddSSHKey(key string, l dogeboxd.SubLogger) error

func (SystemUpdater) DisableSSH

func (t SystemUpdater) DisableSSH(l dogeboxd.SubLogger) error

func (SystemUpdater) DoSystemUpdate

func (t SystemUpdater) DoSystemUpdate(pkg string, updateVersion string, logger dogeboxd.SubLogger) error

func (SystemUpdater) EnableSSH

func (t SystemUpdater) EnableSSH(l dogeboxd.SubLogger) error

func (SystemUpdater) GetSnapshot

func (t SystemUpdater) GetSnapshot(pupID string) (*dogeboxd.PupVersionSnapshot, error)

GetSnapshot retrieves a snapshot for a pup if it exists

func (SystemUpdater) GetUpdateChannel

func (t SystemUpdater) GetUpdateChannel() chan dogeboxd.Job

func (SystemUpdater) HasSnapshot

func (t SystemUpdater) HasSnapshot(pupID string) bool

HasSnapshot checks if a snapshot exists for a pup (for rollback)

func (SystemUpdater) ListSSHKeys

func (t SystemUpdater) ListSSHKeys() ([]dogeboxd.DogeboxStateSSHKey, error)

func (SystemUpdater) RemoveSSHKey

func (t SystemUpdater) RemoveSSHKey(id string, l dogeboxd.SubLogger) error

func (SystemUpdater) Run

func (t SystemUpdater) Run(started, stopped chan bool, stop chan context.Context) error

func (SystemUpdater) SaveCustomNix

func (t SystemUpdater) SaveCustomNix(content string, l dogeboxd.SubLogger) error

SaveCustomNix validates and saves the custom.nix content, then triggers a system rebuild.

func (SystemUpdater) UpdateSystemConfig

func (t SystemUpdater) UpdateSystemConfig(dbxState dogeboxd.DogeboxState, log dogeboxd.SubLogger) error

func (SystemUpdater) ValidateNix

func (t SystemUpdater) ValidateNix(content string) error

ValidateNix validates nix content using nix-instantiate --parse. Returns nil if valid, otherwise returns the error message.

type Timezone

type Timezone struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

func GetTimezones

func GetTimezones() ([]Timezone, error)

type UpdateVersionUnavailableError

type UpdateVersionUnavailableError struct {
	Package string
	Version string
}

func (UpdateVersionUnavailableError) Error

type UpgradableRelease

type UpgradableRelease struct {
	Version    string
	ReleaseURL string
	Summary    string
}

func GetUpgradableReleases

func GetUpgradableReleases(includePreReleases bool) ([]UpgradableRelease, error)

func GetUpgradableReleasesForVersionWithFetcher

func GetUpgradableReleasesForVersionWithFetcher(currentRelease string, includePreReleases bool, fetcher RepoTagsFetcher) ([]UpgradableRelease, error)

func GetUpgradableReleasesWithFetcher

func GetUpgradableReleasesWithFetcher(includePreReleases bool, fetcher RepoTagsFetcher) ([]UpgradableRelease, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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