Fixed services on caddy

This commit is contained in:
anonpenguin23 2026-01-29 08:56:28 +02:00
parent 571f8babb4
commit d8c93f6ee9
3 changed files with 49 additions and 12 deletions

View File

@ -387,7 +387,7 @@ Description=Caddy HTTP/2 Server
Documentation=https://caddyserver.com/docs/ Documentation=https://caddyserver.com/docs/
After=network-online.target debros-node.service coredns.service After=network-online.target debros-node.service coredns.service
Wants=network-online.target Wants=network-online.target
Requires=debros-node.service Wants=debros-node.service
[Service] [Service]
Type=simple Type=simple

View File

@ -308,7 +308,10 @@ func New(logger *logging.ColoredLogger, cfg *Config) (*Gateway, error) {
gw.listHandler = deploymentshandlers.NewListHandler( gw.listHandler = deploymentshandlers.NewListHandler(
gw.deploymentService, gw.deploymentService,
gw.processManager,
deps.IPFSClient,
logger.Logger, logger.Logger,
baseDeployPath,
) )
gw.updateHandler = deploymentshandlers.NewUpdateHandler( gw.updateHandler = deploymentshandlers.NewUpdateHandler(

View File

@ -3,23 +3,33 @@ package deployments
import ( import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"os"
"path/filepath"
"time" "time"
"github.com/DeBrosOfficial/network/pkg/deployments" "github.com/DeBrosOfficial/network/pkg/deployments"
"github.com/DeBrosOfficial/network/pkg/deployments/process"
"github.com/DeBrosOfficial/network/pkg/ipfs"
"go.uber.org/zap" "go.uber.org/zap"
) )
// ListHandler handles listing deployments // ListHandler handles listing deployments
type ListHandler struct { type ListHandler struct {
service *DeploymentService service *DeploymentService
logger *zap.Logger processManager *process.Manager
ipfsClient ipfs.IPFSClient
logger *zap.Logger
baseDeployPath string
} }
// NewListHandler creates a new list handler // NewListHandler creates a new list handler
func NewListHandler(service *DeploymentService, logger *zap.Logger) *ListHandler { func NewListHandler(service *DeploymentService, processManager *process.Manager, ipfsClient ipfs.IPFSClient, logger *zap.Logger, baseDeployPath string) *ListHandler {
return &ListHandler{ return &ListHandler{
service: service, service: service,
logger: logger, processManager: processManager,
ipfsClient: ipfsClient,
logger: logger,
baseDeployPath: baseDeployPath,
} }
} }
@ -209,19 +219,43 @@ func (h *ListHandler) HandleDelete(w http.ResponseWriter, r *http.Request) {
return return
} }
// Delete deployment record // 1. Stop systemd service
if err := h.processManager.Stop(ctx, deployment); err != nil {
h.logger.Warn("Failed to stop deployment service (may not exist)", zap.Error(err), zap.String("name", deployment.Name))
}
// 2. Remove deployment files from disk
if h.baseDeployPath != "" {
deployDir := filepath.Join(h.baseDeployPath, deployment.Namespace, deployment.Name)
if err := os.RemoveAll(deployDir); err != nil {
h.logger.Warn("Failed to remove deployment files", zap.Error(err), zap.String("path", deployDir))
}
}
// 3. Unpin IPFS content
if deployment.ContentCID != "" {
if err := h.ipfsClient.Unpin(ctx, deployment.ContentCID); err != nil {
h.logger.Warn("Failed to unpin IPFS content", zap.Error(err), zap.String("cid", deployment.ContentCID))
}
}
// 4. Delete subdomain registry
subdomainQuery := `DELETE FROM global_deployment_subdomains WHERE deployment_id = ?`
_, _ = h.service.db.Exec(ctx, subdomainQuery, deployment.ID)
// 5. Delete DNS records
dnsQuery := `DELETE FROM dns_records WHERE deployment_id = ?`
_, _ = h.service.db.Exec(ctx, dnsQuery, deployment.ID)
// 6. Delete deployment record
query := `DELETE FROM deployments WHERE namespace = ? AND name = ?` query := `DELETE FROM deployments WHERE namespace = ? AND name = ?`
_, err = h.service.db.Exec(ctx, query, namespace, name) _, err = h.service.db.Exec(ctx, query, namespace, deployment.Name)
if err != nil { if err != nil {
h.logger.Error("Failed to delete deployment", zap.Error(err)) h.logger.Error("Failed to delete deployment", zap.Error(err))
http.Error(w, "Failed to delete deployment", http.StatusInternalServerError) http.Error(w, "Failed to delete deployment", http.StatusInternalServerError)
return return
} }
// Delete DNS records
query = `DELETE FROM dns_records WHERE deployment_id = ?`
_, _ = h.service.db.Exec(ctx, query, deployment.ID)
h.logger.Info("Deployment deleted", h.logger.Info("Deployment deleted",
zap.String("id", deployment.ID), zap.String("id", deployment.ID),
zap.String("namespace", namespace), zap.String("namespace", namespace),