mirror of
https://github.com/DeBrosOfficial/network.git
synced 2026-01-30 05:23:03 +00:00
Fixed services on caddy
This commit is contained in:
parent
571f8babb4
commit
d8c93f6ee9
@ -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
|
||||||
|
|||||||
@ -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(
|
||||||
|
|||||||
@ -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),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user