backend/instancemanager/instance_manager.go
ACoolName 1be267e0ff
All checks were successful
Build and Push Docker Image / Build image (push) Successful in 1m40s
updated file browser url logic
2025-05-27 13:20:37 +03:00

69 lines
1.7 KiB
Go

package instancemanager
import (
"context"
"net"
"git.acooldomain.co/server-manager/backend/models"
)
type Server struct {
Id string
Running bool
RunningCommand string
RunningImage *models.Image
Ports []models.Port
Domain string
}
type TerminalConnection struct {
Conn net.Conn
ResizerFunc func(width uint, height uint) error
}
type Port struct {
Number uint16
Protocol models.PortProtocol
}
type Image struct {
Id string
Registry string
Tag string
Command string
WorkingDir string
Ports []Port
}
type InstanceManager interface {
// General
// Read Only
GetImage(ctx context.Context, imageId string) (*Image, error)
ListImages(ctx context.Context) ([]Image, error)
GetServer(ctx context.Context, serverId string) (*Server, error)
ListServers(ctx context.Context) ([]Server, error)
// State Changing
StartServer(ctx context.Context, serverId string, imageId string, command string, ports []models.Port) error
StopServer(ctx context.Context, serverId string) error
CreateServer(ctx context.Context) (*Server, error)
DeleteServer(ctx context.Context, serverId string) error
// Terminal
// Status Changing
InteractiveTerminal(ctx context.Context, serverId string) (*TerminalConnection, error)
// File Browser
// Read Only
GetFileBrowser(ctx context.Context, serverId string) (*models.FileBrowser, error)
ListFileBrowsers(ctx context.Context) ([]models.FileBrowser, error)
GetServerIdFromFileBrowserUrl(ctx context.Context, serverId string) (string, error)
// Status Changing
StartFileBrowser(ctx context.Context, serverId string) (*models.FileBrowser, error)
StopFileBrowser(ctx context.Context, serverId string) error
}