feat: static sites feature with Gitea/GitHub/GitLab support and Deno backend
Deploy static content from Git repository folders with optional server-side
API endpoints. Supports Gitea/Forgejo/Gogs, GitHub, and GitLab with provider
autodetection.
- New Sites entity with CRUD, encrypted secrets, and manual/push/tag sync triggers
- Pluggable GitProvider interface with three implementations
- Deno container mode: auto-generates router from API_{method}_{name} exports
- Static container mode: nginx serving files with optional markdown rendering
- Wizard UI with provider selector, repo picker, branch/folder tree pickers
- Deploy pipeline builds fresh image, starts container, configures NPM proxy
- Stop/Start buttons, force redeploy on manual trigger
- Periodic health checker detects crashed containers
- Proxy route existence check during auto-sync
This commit is contained in:
@@ -21,6 +21,9 @@ const (
|
||||
|
||||
// EventLog is emitted for audit trail and operational log entries.
|
||||
EventLog EventType = "event_log"
|
||||
|
||||
// EventStaticSiteStatus is emitted when a static site status changes.
|
||||
EventStaticSiteStatus EventType = "static_site_status"
|
||||
)
|
||||
|
||||
// Event is a single event published on the bus.
|
||||
@@ -64,6 +67,13 @@ type EventLogPayload struct {
|
||||
CreatedAt string `json:"created_at"`
|
||||
}
|
||||
|
||||
// StaticSiteStatusPayload is the payload for EventStaticSiteStatus events.
|
||||
type StaticSiteStatusPayload struct {
|
||||
SiteID string `json:"site_id"`
|
||||
Name string `json:"name"`
|
||||
Status string `json:"status"`
|
||||
}
|
||||
|
||||
// Subscriber is a channel that receives events.
|
||||
type Subscriber chan Event
|
||||
|
||||
|
||||
Reference in New Issue
Block a user