feat: complete dockerization (optional)

This commit is contained in:
fsylvain committed 2026-10-05 04:52:49 +02:00
1 parent 3e01c29657
commit d275ba3c14
38 files changed
+1244 -20

No files matched your search

+1
View File
@@ -60,6 +60,7 @@ type UpdateStatus struct {
Error *string `json:"error"`
StartedAt *time.Time `json:"started_at"`
FinishedAt *time.Time `json:"finished_at"`
Container bool `json:"container"`
}
func NewResult(release Release, checkedAt time.Time) CheckResult {
@@ -33,6 +33,7 @@ type Settings struct {
TrustedProxies []string
Version string
UpdateFeedURL string
Container bool
}
func (s Settings) IsProduction() bool {
@@ -76,6 +77,7 @@ func NewSettingsFromEnv() (Settings, error) {
},
TrustedProxies: parseSemicolonSeparatedList(os.Getenv("TRUSTED_PROXIES")),
UpdateFeedURL: os.Getenv("UPDATE_FEED_URL"),
Container: strings.EqualFold(os.Getenv("RENEWCMS_CONTAINER"), "true"),
}, nil
}
@@ -0,0 +1,16 @@
package update
import domain "RenewCMS/internal/domain/update"
type containerHelperDetector struct {
inner domain.HelperDetector
container bool
}
func NewContainerHelperDetector(inner domain.HelperDetector, container bool) domain.HelperDetector {
return containerHelperDetector{inner: inner, container: container}
}
func (d containerHelperDetector) Installed() bool {
return !d.container && d.inner.Installed()
}
@@ -6,17 +6,21 @@ import (
)
type GetUpdateStatusUseCase struct {
status updateStatusBuilder
helper update.HelperDetector
status updateStatusBuilder
helper update.HelperDetector
container bool
}
func NewGetUpdateStatusUseCase(store update.StatusStore, jobs update.JobStore, helper update.HelperDetector, results update.ResultStore, requests update.RestartRequestStore, currentVersion string, now func() time.Time) *GetUpdateStatusUseCase {
func NewGetUpdateStatusUseCase(store update.StatusStore, jobs update.JobStore, helper update.HelperDetector, results update.ResultStore, requests update.RestartRequestStore, currentVersion string, container bool, now func() time.Time) *GetUpdateStatusUseCase {
return &GetUpdateStatusUseCase{
status: updateStatusBuilder{store: store, jobs: jobs, results: results, requests: requests, currentVersion: currentVersion, now: now},
helper: helper,
status: updateStatusBuilder{store: store, jobs: jobs, results: results, requests: requests, currentVersion: currentVersion, now: now},
helper: helper,
container: container,
}
}
func (g *GetUpdateStatusUseCase) GetStatus(isOwner bool) update.UpdateStatus {
return g.status.build(isOwner && g.helper.Installed())
status := g.status.build(isOwner && g.helper.Installed())
status.Container = g.container
return status
}