Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions agent/app/api/v2/website.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,47 @@ func (b *BaseApi) CreateWebsite(c *gin.Context) {
helper.Success(c)
}

// @Tags Website
// @Summary Sync Webflow site
// @Accept json
// @Param request body request.WebsiteCommonReq true "request"
// @Success 200 {string} string
// @Security ApiKeyAuth
// @Security Timestamp
// @Router /websites/webflow/sync [post]
func (b *BaseApi) SyncWebflow(c *gin.Context) {
var req request.WebsiteCommonReq
if err := helper.CheckBindAndValidate(&req, c); err != nil {
return
}
taskID, err := websiteService.SyncWebflow(req)
if err != nil {
helper.InternalServer(c, err)
return
}
helper.SuccessWithData(c, taskID)
}

// @Tags Website
// @Summary Update Webflow Config
// @Accept json
// @Param request body request.WebflowUpdate true "request"
// @Success 200
// @Security ApiKeyAuth
// @Security Timestamp
// @Router /websites/webflow/update [post]
func (b *BaseApi) UpdateWebflow(c *gin.Context) {
var req request.WebflowUpdate
if err := helper.CheckBindAndValidate(&req, c); err != nil {
return
}
if err := websiteService.UpdateWebflow(req); err != nil {
helper.InternalServer(c, err)
return
}
helper.Success(c)
}

// @Tags Website
// @Summary Operate website
// @Accept json
Expand Down
5 changes: 5 additions & 0 deletions agent/app/dto/request/website.go
Original file line number Diff line number Diff line change
Expand Up @@ -372,3 +372,8 @@ type ExecComposerReq struct {
WebsiteID uint `json:"websiteID" validate:"required"`
TaskID string `json:"taskID" validate:"required"`
}

type WebflowUpdate struct {
ID uint `json:"id" validate:"required"`
WebflowConfig
}
Comment on lines +376 to +379
Copy link

Copilot AI Apr 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WebflowUpdate embeds WebflowConfig, but there is no WebflowConfig type defined anywhere in agent/app/dto/request (or the wider agent package). This will not compile; define WebflowConfig (e.g., WebflowURL/WebflowType with validate tags) or inline the fields on WebflowUpdate.

Copilot uses AI. Check for mistakes.
67 changes: 67 additions & 0 deletions agent/app/service/website.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,9 @@ type IWebsiteService interface {
BatchOpWebsite(req request.BatchWebsiteOp) error
BatchSetGroup(req request.BatchWebsiteGroup) error
BatchSetHttps(ctx context.Context, req request.BatchWebsiteHttps) error

SyncWebflow(req request.WebsiteCommonReq) (string, error)
UpdateWebflow(req request.WebflowUpdate) error
}

func NewIWebsiteService() IWebsiteService {
Expand Down Expand Up @@ -2346,6 +2349,70 @@ func (w WebsiteService) ExecComposer(req request.ExecComposerReq) error {
return nil
}

func (w WebsiteService) UpdateWebflow(req request.WebflowUpdate) error {
website, err := websiteRepo.GetFirst(repo.WithByID(req.ID))
if err != nil {
return err
}
if website.WebflowType != req.WebflowType || website.WebflowURL != req.WebflowURL {
website.WebflowType = req.WebflowType
website.WebflowURL = req.WebflowURL
if website.WebflowType == "proxy" {
website.Proxy = website.WebflowURL
} else {
website.Proxy = ""
}
Comment on lines +2352 to +2364
Copy link

Copilot AI Apr 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

UpdateWebflow updates WebflowURL/WebflowType and also mutates website.Proxy + nginx config regardless of website.Type. Without a guard (e.g., website.Type == constant.Webflow), calling this on a non-Webflow site could unexpectedly reconfigure it. Add a type check (and consider rejecting invalid WebflowType values).

Copilot uses AI. Check for mistakes.
if err := updateWebsiteConfig(website, func(server *components.Server) error {
rootIndex := path.Join("/www/sites", website.Alias, "index")
if website.WebflowType == "proxy" {
server.RemoveDirective("root", nil)
server.UpdateRootProxy([]string{website.Proxy})
} else {
server.UpdateRoot(rootIndex)
server.UpdateDirective("error_page", []string{"404", "/404.html"})
Comment on lines +2371 to +2372
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Overwrite location / when switching to static mode

When webflowType changes from proxy to static, this branch only updates root/error_page and leaves the existing location / { proxy_pass ... } block created by UpdateRootProxy intact. In that state Nginx keeps proxying all traffic, so synced static files are never served after the mode switch. The static path should replace or remove the proxy location / block.

Useful? React with 👍 / 👎.

}
return nil
}); err != nil {
return err
}
return websiteRepo.Save(context.Background(), &website)
}
return nil
}

func (w WebsiteService) SyncWebflow(req request.WebsiteCommonReq) (string, error) {
website, err := websiteRepo.GetFirst(repo.WithByID(req.ID))
if err != nil {
return "", err
}
if website.Type != constant.Webflow || website.WebflowType != "static" {
return "", errors.New("only static webflow website support sync")
Copy link

Copilot AI Apr 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SyncWebflow returns a plain errors.New(...) string (not i18n/localized), and the API wraps it into ErrInternalServer: . For consistency with other user-facing errors, return a buserr.New/WithName-backed error (and optionally use helper.BadRequest if this should be treated as an invalid operation rather than an internal failure).

Suggested change
return "", errors.New("only static webflow website support sync")
return "", buserr.New("only static webflow website support sync").WithName("ErrWebflowSyncOnlySupportStatic")

Copilot uses AI. Check for mistakes.
}

taskName := i18n.GetMsgByKey("SyncWebflow") + ":" + website.PrimaryDomain
syncTask, err := task.NewTaskWithOps(taskName, task.TaskSync, task.TaskScopeWebsite, "", website.ID)
if err != nil {
return "", err
}

syncWebflow := func(t *task.Task) error {
indexDir := GetSitePath(website, SiteIndexDir)
cmdMgr := cmd.NewCommandMgr(cmd.WithTask(*syncTask))
wgetCmd := fmt.Sprintf("wget --mirror --convert-links --adjust-extension --page-requisites --no-parent -nH -P %s %s", indexDir, website.WebflowURL)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Avoid shell interpolation for Webflow URL in sync task

The sync command is built with fmt.Sprintf(..., website.WebflowURL) and then executed via RunBashC, so any shell metacharacters in the stored URL are interpreted by the shell. That enables command injection during sync if a crafted URL reaches this field. Build the command as argv (no shell) or strictly quote/escape untrusted arguments before execution.

Useful? React with 👍 / 👎.

if err := cmdMgr.RunBashC(wgetCmd); err != nil {
return err
Comment on lines +2398 to +2403
Copy link

Copilot AI Apr 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Security: wgetCmd is built by string interpolation and executed via bash -c, with website.WebflowURL coming from persisted user input. This enables command injection (e.g., URL containing shell metacharacters) and also provides no execution timeout. Avoid bash -c here: run wget via exec with explicit args (or cmdMgr.Run("wget", ...)) and validate/normalize the URL (scheme http/https, no whitespace/metacharacters) before execution; also set a reasonable timeout on the command.

Copilot uses AI. Check for mistakes.
}
return nil
}
syncTask.AddSubTask(i18n.GetMsgByKey("SyncWebflow"), syncWebflow, nil)
Comment on lines +2392 to +2407
Copy link

Copilot AI Apr 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i18n.GetMsgByKey returns an empty string when a key is missing. The key "SyncWebflow" does not exist under agent/i18n/lang/*.yaml currently, so taskName/subtask labels will be blank (e.g., ":"). Add the SyncWebflow entries to the agent i18n files or switch to an existing message key.

Copilot uses AI. Check for mistakes.

go func() {
_ = syncTask.Execute()
}()

return syncTask.Task.ID, nil
}

func (w WebsiteService) UpdateStream(req request.StreamUpdate) error {
if req.StreamConfig.StreamPorts == "" {
return buserr.New("ErrTypePortRange")
Expand Down
261 changes: 261 additions & 0 deletions agent/backend.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,261 @@
go: downloading go1.24.9 (linux/amd64)
go: downloading github.com/spf13/cobra v1.10.1
go: downloading github.com/gin-gonic/gin v1.10.0
go: downloading github.com/robfig/cron/v3 v3.0.1
go: downloading github.com/go-playground/validator/v10 v10.26.0
go: downloading github.com/nicksnyder/go-i18n/v2 v2.4.0
go: downloading github.com/sirupsen/logrus v1.9.3
go: downloading github.com/spf13/viper v1.19.0
go: downloading gorm.io/gorm v1.30.0
go: downloading golang.org/x/text v0.32.0
go: downloading gopkg.in/yaml.v3 v3.0.1
go: downloading github.com/google/uuid v1.6.0
go: downloading google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38
go: downloading github.com/go-gormigrate/gormigrate/v2 v2.1.2
go: downloading github.com/fsnotify/fsnotify v1.9.0
go: downloading github.com/glebarez/sqlite v1.11.0
go: downloading golang.org/x/net v0.48.0
go: downloading github.com/compose-spec/compose-go/v2 v2.9.0
go: downloading github.com/docker/docker v28.5.1+incompatible
go: downloading github.com/docker/go-connections v0.6.0
go: downloading github.com/go-acme/lego/v4 v4.30.1
go: downloading github.com/go-sql-driver/mysql v1.8.1
go: downloading github.com/jackc/pgx/v5 v5.6.0
go: downloading github.com/jinzhu/copier v0.4.0
go: downloading github.com/jinzhu/gorm v1.9.16
go: downloading github.com/joho/godotenv v1.5.1
go: downloading github.com/opencontainers/image-spec v1.1.1
go: downloading github.com/pkg/errors v0.9.1
go: downloading github.com/shirou/gopsutil/v4 v4.25.11
go: downloading github.com/spf13/afero v1.11.0
go: downloading github.com/subosito/gotenv v1.6.0
go: downloading github.com/tomasen/fcgi_client v0.0.0-20180423082037-2bb3d819fd19
go: downloading golang.org/x/crypto v0.46.0
go: downloading golang.org/x/sys v0.39.0
go: downloading gopkg.in/ini.v1 v1.67.0
go: downloading github.com/patrickmn/go-cache v2.1.0+incompatible
go: downloading github.com/spf13/pflag v1.0.10
go: downloading github.com/gin-contrib/sse v0.1.0
go: downloading github.com/mattn/go-isatty v0.0.20
go: downloading github.com/mitchellh/mapstructure v1.5.0
go: downloading github.com/sagikazarmark/slog-shim v0.1.0
go: downloading github.com/spf13/cast v1.7.0
go: downloading github.com/gabriel-vasile/mimetype v1.4.8
go: downloading github.com/go-playground/universal-translator v0.18.1
go: downloading github.com/leodido/go-urn v1.4.0
go: downloading github.com/docker/compose/v2 v2.40.2
go: downloading github.com/jinzhu/now v1.1.5
go: downloading github.com/klauspost/compress v1.18.1
go: downloading github.com/mholt/archiver/v4 v4.0.0-alpha.8
go: downloading github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674
go: downloading github.com/aliyun/aliyun-oss-go-sdk v3.0.2+incompatible
go: downloading github.com/aws/aws-sdk-go v1.55.0
go: downloading github.com/go-resty/resty/v2 v2.17.0
go: downloading github.com/goh-chunlin/go-onedrive v1.1.1
go: downloading github.com/minio/minio-go/v7 v7.0.74
go: downloading github.com/pkg/sftp v1.13.6
go: downloading github.com/qiniu/go-sdk/v7 v7.21.1
go: downloading github.com/tencentyun/cos-go-sdk-v5 v0.7.54
go: downloading github.com/upyun/go-sdk v2.1.0+incompatible
go: downloading golang.org/x/oauth2 v0.34.0
go: downloading github.com/glebarez/go-sqlite v1.22.0
go: downloading modernc.org/sqlite v1.38.0
go: downloading github.com/oschwald/maxminddb-golang v1.13.1
go: downloading github.com/go-redis/redis v6.15.9+incompatible
go: downloading github.com/miekg/dns v1.1.69
go: downloading github.com/distribution/reference v0.6.0
go: downloading github.com/docker/go-units v0.5.0
go: downloading github.com/go-viper/mapstructure/v2 v2.4.0
go: downloading github.com/mattn/go-shellwords v1.0.12
go: downloading github.com/opencontainers/go-digest v1.0.0
go: downloading github.com/xhit/go-str2duration/v2 v2.1.0
go: downloading go.yaml.in/yaml/v3 v3.0.4
go: downloading golang.org/x/sync v0.19.0
go: downloading google.golang.org/protobuf v1.36.10
go: downloading github.com/moby/docker-image-spec v1.3.1
go: downloading github.com/moby/go-archive v0.1.0
go: downloading github.com/containerd/errdefs v1.0.0
go: downloading github.com/containerd/errdefs/pkg v0.3.0
go: downloading go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0
go: downloading go.opentelemetry.io/otel/trace v1.38.0
go: downloading go.opentelemetry.io/otel v1.38.0
go: downloading filippo.io/edwards25519 v1.1.0
go: downloading github.com/jinzhu/inflection v1.0.0
go: downloading github.com/tklauser/go-sysconf v0.3.16
go: downloading github.com/pelletier/go-toml/v2 v2.2.4
go: downloading github.com/ugorji/go/codec v1.2.12
go: downloading github.com/hashicorp/hcl v1.0.0
go: downloading github.com/pelletier/go-toml v1.9.5
go: downloading github.com/magiconair/properties v1.8.9
go: downloading github.com/go-playground/locales v0.14.1
go: downloading github.com/andybalholm/brotli v1.0.4
go: downloading github.com/bodgit/sevenzip v1.3.0
go: downloading github.com/dsnet/compress v0.0.1
go: downloading github.com/golang/snappy v0.0.4
go: downloading github.com/klauspost/pgzip v1.2.5
go: downloading github.com/nwaples/rardecode/v2 v2.2.0
go: downloading github.com/pierrec/lz4/v4 v4.1.15
go: downloading github.com/therootcompany/xz v1.0.1
go: downloading github.com/ulikunitz/xz v0.5.15
go: downloading github.com/creack/pty v1.1.24
go: downloading golang.org/x/time v0.14.0
go: downloading github.com/containerd/platforms v1.0.0-rc.2
go: downloading github.com/docker/buildx v0.29.1
go: downloading github.com/docker/cli v28.5.1+incompatible
go: downloading github.com/hashicorp/go-version v1.8.0
go: downloading github.com/h2non/filetype v1.1.1
go: downloading github.com/go-ini/ini v1.67.0
go: downloading github.com/goccy/go-json v0.10.5
go: downloading github.com/minio/md5-simd v1.1.2
go: downloading github.com/kr/fs v0.1.0
go: downloading modernc.org/libc v1.66.1
go: downloading github.com/clbanning/mxj v1.8.4
go: downloading github.com/google/go-querystring v1.1.0
go: downloading github.com/mozillazg/go-httpheader v0.2.1
go: downloading github.com/nrdcg/goacmedns v0.2.0
go: downloading github.com/alibabacloud-go/darabonba-openapi/v2 v2.1.13
go: downloading github.com/alibabacloud-go/tea v1.3.14
go: downloading github.com/aliyun/credentials-go v1.4.7
go: downloading github.com/go-acme/alidns-20150109/v4 v4.7.0
go: downloading github.com/go-acme/esa-20240910/v2 v2.40.3
go: downloading github.com/baidubce/bce-sdk-go v0.9.254
go: downloading github.com/cenkalti/backoff/v5 v5.0.3
go: downloading github.com/nrdcg/dnspod-go v0.4.0
go: downloading github.com/nrdcg/freemyip v0.3.0
go: downloading github.com/huaweicloud/huaweicloud-sdk-go-v3 v0.1.180
go: downloading github.com/namedotcom/go/v4 v4.0.2
go: downloading github.com/nrdcg/namesilo v0.5.0
go: downloading github.com/ovh/go-ovh v1.9.0
go: downloading github.com/nrdcg/porkbun v0.4.0
go: downloading github.com/aws/aws-sdk-go-v2 v1.41.0
go: downloading github.com/aws/aws-sdk-go-v2/config v1.32.5
go: downloading github.com/aws/aws-sdk-go-v2/credentials v1.19.5
go: downloading github.com/aws/aws-sdk-go-v2/service/route53 v1.62.0
go: downloading github.com/aws/aws-sdk-go-v2/service/sts v1.41.5
go: downloading github.com/go-acme/tencentclouddnspod v1.1.25
go: downloading github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.12
go: downloading github.com/volcengine/volc-sdk-golang v1.0.230
go: downloading github.com/moby/sys/user v0.4.0
go: downloading github.com/containerd/log v0.1.0
go: downloading github.com/moby/patternmatcher v0.6.0
go: downloading github.com/moby/sys/sequential v0.6.0
go: downloading github.com/moby/sys/userns v0.1.0
go: downloading github.com/felixge/httpsnoop v1.0.4
go: downloading go.opentelemetry.io/otel/metric v1.38.0
go: downloading github.com/jackc/pgpassfile v1.0.0
go: downloading github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a
go: downloading github.com/jackc/puddle/v2 v2.2.1
go: downloading github.com/tklauser/numcpus v0.11.0
go: downloading github.com/santhosh-tekuri/jsonschema/v6 v6.0.1
go: downloading github.com/bodgit/plumbing v1.2.0
go: downloading github.com/bodgit/windows v1.0.0
go: downloading github.com/hashicorp/go-multierror v1.1.1
go: downloading go4.org v0.0.0-20200411211856-f5505b9728dd
go: downloading github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510
go: downloading github.com/moby/buildkit v0.25.1
go: downloading github.com/tonistiigi/go-csvvalue v0.0.0-20240814133006-030d3b2625d0
go: downloading google.golang.org/grpc v1.77.0
go: downloading github.com/containerd/containerd/v2 v2.2.0
go: downloading github.com/in-toto/in-toto-golang v0.9.0
go: downloading github.com/moby/term v0.5.2
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.35.0
go: downloading github.com/morikuni/aec v1.0.0
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0
go: downloading go.opentelemetry.io/otel/sdk/metric v1.38.0
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0
go: downloading go.opentelemetry.io/otel/sdk v1.38.0
go: downloading github.com/jmespath/go-jmespath v0.4.0
go: downloading github.com/rs/xid v1.5.0
go: downloading github.com/klauspost/cpuid/v2 v2.2.8
go: downloading github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.5
go: downloading github.com/alibabacloud-go/debug v1.0.1
go: downloading github.com/alibabacloud-go/tea-utils/v2 v2.0.7
go: downloading github.com/clbanning/mxj/v2 v2.7.0
go: downloading github.com/json-iterator/go v1.1.13-0.20220915233716-71ac16282d12
go: downloading github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee
go: downloading github.com/dustin/go-humanize v1.0.1
go: downloading golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b
go: downloading modernc.org/mathutil v1.7.1
go: downloading modernc.org/memory v1.11.0
go: downloading github.com/aws/smithy-go v1.24.0
go: downloading github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.16
go: downloading github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4
go: downloading github.com/aws/aws-sdk-go-v2/service/signin v1.0.4
go: downloading github.com/aws/aws-sdk-go-v2/service/sso v1.30.7
go: downloading github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.12
go: downloading github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.16
go: downloading github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4
go: downloading github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.16
go: downloading github.com/alex-ant/gomath v0.0.0-20160516115720-89013a210a82
go: downloading github.com/go-logr/logr v1.4.3
go: downloading github.com/go-jose/go-jose/v4 v4.1.3
go: downloading github.com/connesc/cipherio v0.2.1
go: downloading github.com/hashicorp/errwrap v1.1.0
go: downloading github.com/gofrs/flock v0.13.0
go: downloading github.com/moby/sys/atomicwriter v0.1.0
go: downloading github.com/tonistiigi/fsutil v0.0.0-20250605211040-586307ad452f
go: downloading github.com/mitchellh/hashstructure/v2 v2.0.2
go: downloading github.com/containerd/containerd/api v1.10.0
go: downloading go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0
go: downloading github.com/containerd/console v1.0.5
go: downloading github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea
go: downloading github.com/tonistiigi/vt100 v0.0.0-20240514184818-90bafcd6abab
go: downloading github.com/containerd/typeurl/v2 v2.2.3
go: downloading github.com/golang/protobuf v1.5.4
go: downloading google.golang.org/genproto/googleapis/rpc v0.0.0-20251124214823-79d6a2a48846
go: downloading github.com/cenkalti/backoff/v4 v4.3.0
go: downloading github.com/moby/locker v1.0.1
go: downloading go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.60.0
go: downloading github.com/docker/docker-credential-helpers v0.9.3
go: downloading github.com/fvbommel/sortorder v1.1.0
go: downloading github.com/mattn/go-runewidth v0.0.16
go: downloading go.opentelemetry.io/proto/otlp v1.5.0
go: downloading github.com/tjfoc/gmsm v1.4.1
go: downloading github.com/secure-systems-lab/go-securesystemslib v0.6.0
go: downloading github.com/shibumi/go-pathspec v1.3.0
go: downloading go.mongodb.org/mongo-driver v1.13.1
go: downloading github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
go: downloading github.com/goccy/go-yaml v1.9.8
go: downloading github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec
go: downloading github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.16
go: downloading github.com/BurntSushi/toml v1.5.0
go: downloading github.com/matishsiao/goInfo v0.0.0-20210923090445-da2e3fa8d45f
go: downloading github.com/go-logr/stdr v1.2.2
go: downloading go.opentelemetry.io/auto/sdk v1.2.1
go: downloading github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10
go: downloading github.com/moby/sys/signal v0.7.1
go: downloading github.com/containerd/continuity v0.4.5
go: downloading github.com/tonistiigi/dchapes-mode v0.0.0-20250318174251-73d941a28323
go: downloading github.com/gogo/protobuf v1.3.2
go: downloading github.com/rivo/uniseg v0.2.0
go: downloading github.com/containerd/ttrpc v1.2.7
go: downloading github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1
go: downloading golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028
go: downloading google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8
go: downloading github.com/fatih/color v1.16.0
go: downloading github.com/google/go-cmp v0.7.0
go: downloading github.com/mattn/go-colorable v0.1.13
panic: error `BASE_DIR` find in /usr/local/bin/1pctl

goroutine 1 [running]:
github.com/1Panel-dev/1Panel/agent/utils/xpack.loadParams({0x2b8b604, 0x8})
/app/agent/utils/xpack/community.go:43 +0xf4
github.com/1Panel-dev/1Panel/agent/utils/xpack.LoadNodeInfo(0x4f?)
/app/agent/utils/xpack/community.go:29 +0x6a
github.com/1Panel-dev/1Panel/agent/init/viper.initBaseInfo(...)
/app/agent/init/viper/viper.go:59
github.com/1Panel-dev/1Panel/agent/init/viper.Init()
/app/agent/init/viper/viper.go:54 +0x3a6
github.com/1Panel-dev/1Panel/agent/server.Start()
/app/agent/server/server.go:37 +0x2a
github.com/1Panel-dev/1Panel/agent/cmd/server/cmd.init.func1(0xc0001da200?, {0x2b7c565?, 0x4?, 0x2b7c50d?})
/app/agent/cmd/server/cmd/root.go:11 +0xf
github.com/spf13/cobra.(*Command).execute(0x480a260, {0xc0000500b0, 0x0, 0x0})
/home/jules/go/pkg/mod/github.com/spf13/cobra@v1.10.1/command.go:1015 +0xaaa
github.com/spf13/cobra.(*Command).ExecuteC(0x480a260)
/home/jules/go/pkg/mod/github.com/spf13/cobra@v1.10.1/command.go:1148 +0x46f
github.com/spf13/cobra.(*Command).Execute(0x0?)
/home/jules/go/pkg/mod/github.com/spf13/cobra@v1.10.1/command.go:1071 +0x13
main.main()
/app/agent/cmd/server/main.go:37 +0x1a
exit status 2
Loading
Loading