summaryrefslogtreecommitdiff
path: root/net-p2p/hostd
diff options
context:
space:
mode:
Diffstat (limited to 'net-p2p/hostd')
-rw-r--r--net-p2p/hostd/Makefile89
-rw-r--r--net-p2p/hostd/distinfo87
-rw-r--r--net-p2p/hostd/files/hostd.conf.in2
-rw-r--r--net-p2p/hostd/files/hostd.in35
-rw-r--r--net-p2p/hostd/files/hostd.yml.in30
-rw-r--r--net-p2p/hostd/files/patch-build_meta.go15
-rw-r--r--net-p2p/hostd/files/patch-vendor_modules.txt290
-rw-r--r--net-p2p/hostd/pkg-descr8
-rw-r--r--net-p2p/hostd/pkg-message9
9 files changed, 565 insertions, 0 deletions
diff --git a/net-p2p/hostd/Makefile b/net-p2p/hostd/Makefile
new file mode 100644
index 000000000000..fac04c19e735
--- /dev/null
+++ b/net-p2p/hostd/Makefile
@@ -0,0 +1,89 @@
+PORTNAME= hostd
+DISTVERSIONPREFIX= v
+DISTVERSION= 2.0.4
+CATEGORIES= net-p2p
+
+MAINTAINER= bruno@tinkerbox.org
+COMMENT= Offer your storage space on the Sia network
+WWW= https://sia.tech/host
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+NOT_FOR_ARCHS= armv6 armv7 i386 mips powerpc powerpcspe
+NOT_FOR_ARCHS_REASON= requires 64-bit architecture
+
+USES= go:1.23,modules
+
+USE_RC_SUBR= hostd
+
+USE_GITHUB= yes
+GH_ACCOUNT= SiaFoundation
+GO_TARGET= ./cmd/hostd
+GO_BUILDFLAGS+= -tags='netgo timetzdata'
+
+GH_TUPLE= SiaFoundation:core:v0.10.1:siafoundation_core/vendor/go.sia.tech/core \
+ SiaFoundation:coreutils:v0.11.1:siafoundation_coreutils/vendor/go.sia.tech/coreutils \
+ SiaFoundation:jape:v0.12.1:siafoundation_jape/vendor/go.sia.tech/jape \
+ SiaFoundation:mux:v1.3.0:siafoundation_mux/vendor/go.sia.tech/mux \
+ SiaFoundation:web:5611d44a533e:siafoundation_web/vendor/go.sia.tech/web \
+ SiaFoundation:web:hostd/v0.58.0:siafoundation_web_1/vendor/go.sia.tech/web/hostd \
+ aws:aws-sdk-go:v1.55.6:aws_aws_sdk_go/vendor/github.com/aws/aws-sdk-go \
+ cloudflare:cloudflare-go:v0.115.0:cloudflare_cloudflare_go/vendor/github.com/cloudflare/cloudflare-go \
+ etcd-io:bbolt:v1.4.0:etcd_io_bbolt/vendor/go.etcd.io/bbolt \
+ go-task:slim-sprig:52ccab3ef572:go_task_slim_sprig/vendor/github.com/go-task/slim-sprig \
+ go-yaml:yaml:v2.4.0:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \
+ go-yaml:yaml:v3.0.1:go_yaml_yaml_1/vendor/gopkg.in/yaml.v3 \
+ goccy:go-json:v0.10.5:goccy_go_json/vendor/github.com/goccy/go-json \
+ golang:crypto:v0.33.0:golang_crypto/vendor/golang.org/x/crypto \
+ golang:exp:9bf2ced13842:golang_exp/vendor/golang.org/x/exp \
+ golang:mod:v0.18.0:golang_mod/vendor/golang.org/x/mod \
+ golang:net:v0.34.0:golang_net/vendor/golang.org/x/net \
+ golang:sync:v0.11.0:golang_sync/vendor/golang.org/x/sync \
+ golang:sys:v0.30.0:golang_sys/vendor/golang.org/x/sys \
+ golang:term:v0.29.0:golang_term/vendor/golang.org/x/term \
+ golang:text:v0.22.0:golang_text/vendor/golang.org/x/text \
+ golang:time:v0.10.0:golang_time/vendor/golang.org/x/time \
+ golang:tools:v0.22.0:golang_tools/vendor/golang.org/x/tools \
+ google:go-querystring:v1.1.0:google_go_querystring/vendor/github.com/google/go-querystring \
+ google:pprof:407c9e7a662f:google_pprof/vendor/github.com/google/pprof \
+ hashicorp:golang-lru:v2.0.7:hashicorp_golang_lru_v2/vendor/github.com/hashicorp/golang-lru/v2 \
+ jmespath:go-jmespath:v0.4.0:jmespath_go_jmespath/vendor/github.com/jmespath/go-jmespath \
+ julienschmidt:httprouter:v1.3.0:julienschmidt_httprouter/vendor/github.com/julienschmidt/httprouter \
+ lukechampine:flagg:v1.1.1:lukechampine_flagg/vendor/lukechampine.com/flagg \
+ lukechampine:frand:v1.5.1:lukechampine_frand/vendor/lukechampine.com/frand \
+ lukechampine:upnp:v0.3.0:lukechampine_upnp/vendor/lukechampine.com/upnp \
+ mattn:go-sqlite3:v1.14.24:mattn_go_sqlite3/vendor/github.com/mattn/go-sqlite3 \
+ onsi:ginkgo:v2.12.0:onsi_ginkgo_v2/vendor/github.com/onsi/ginkgo/v2 \
+ quic-go:qpack:v0.5.1:quic_go_qpack/vendor/github.com/quic-go/qpack \
+ quic-go:quic-go:v0.49.0:quic_go_quic_go/vendor/github.com/quic-go/quic-go \
+ quic-go:webtransport-go:4ac2c9250e66:quic_go_webtransport_go/vendor/github.com/quic-go/webtransport-go \
+ rogpeppe:go-internal:v1.12.0:rogpeppe_go_internal/vendor/github.com/rogpeppe/go-internal \
+ shopspring:decimal:v1.4.0:shopspring_decimal/vendor/github.com/shopspring/decimal \
+ uber-go:goleak:v1.3.0:uber_go_goleak/vendor/go.uber.org/goleak \
+ uber-go:mock:v0.5.0:uber_go_mock/vendor/go.uber.org/mock \
+ uber-go:multierr:v1.11.0:uber_go_multierr/vendor/go.uber.org/multierr \
+ uber-go:zap:v1.27.0:uber_go_zap/vendor/go.uber.org/zap
+
+PLIST_FILES= "@dir(${USERS},${GROUPS},750) /var/db/${PORTNAME}" \
+ "@sample etc/hostd.yml.sample" \
+ "@sample etc/newsyslog.conf.d/hostd.conf.sample" \
+ bin/hostd
+
+SUB_FILES= ${PORTNAME}.conf ${PORTNAME}.yml
+
+SUB_LIST= GROUPS=${GROUPS} \
+ USERS=${USERS}
+
+USERS= ${PORTNAME}
+GROUPS= ${PORTNAME}
+
+post-install:
+ ${INSTALL_DATA} ${WRKDIR}/${PORTNAME}.conf ${STAGEDIR}${PREFIX}/etc/newsyslog.conf.d/${PORTNAME}.conf.sample
+ ${INSTALL_DATA} ${WRKDIR}/${PORTNAME}.yml ${STAGEDIR}${PREFIX}/etc/${PORTNAME}.yml.sample
+ ${INSTALL} -d ${STAGEDIR}/var/db/${PORTNAME}
+
+pre-configure:
+ ${REINPLACE_CMD} -e "s|%%BUILDTIME%%|$$(date +%s)|g" ${WRKSRC}/build/meta.go
+
+.include <bsd.port.mk>
diff --git a/net-p2p/hostd/distinfo b/net-p2p/hostd/distinfo
new file mode 100644
index 000000000000..b618bb995ef7
--- /dev/null
+++ b/net-p2p/hostd/distinfo
@@ -0,0 +1,87 @@
+TIMESTAMP = 1741778012
+SHA256 (SiaFoundation-hostd-v2.0.4_GH0.tar.gz) = 774cfa132b98453dc887b8e8048811aeed1656705cfdc9de76b98b0b9c68dbd2
+SIZE (SiaFoundation-hostd-v2.0.4_GH0.tar.gz) = 249233
+SHA256 (SiaFoundation-core-v0.10.1_GH0.tar.gz) = 5981e02ffc9533a5cf1549aef7f14639a848414e4f4ad54299b19b337bc29527
+SIZE (SiaFoundation-core-v0.10.1_GH0.tar.gz) = 150928
+SHA256 (SiaFoundation-coreutils-v0.11.1_GH0.tar.gz) = f8331816cba3e36607fa96a66588acc2ed230a19ec900604dd24b33a72509d39
+SIZE (SiaFoundation-coreutils-v0.11.1_GH0.tar.gz) = 99325
+SHA256 (SiaFoundation-jape-v0.12.1_GH0.tar.gz) = da107f48dd9ebef33c53cdcc2f136a59f42ad268758424e0e5a6e256e2b44c15
+SIZE (SiaFoundation-jape-v0.12.1_GH0.tar.gz) = 10276
+SHA256 (SiaFoundation-mux-v1.3.0_GH0.tar.gz) = d1297bc70bad3006e1381b4ef9e824823319ef785dc211b38ab1d72f869cc94b
+SIZE (SiaFoundation-mux-v1.3.0_GH0.tar.gz) = 28529
+SHA256 (SiaFoundation-web-5611d44a533e_GH0.tar.gz) = af0fbbedf6d271bf5a7e0fcf6ee942fd39fd39ffffbffc06ad10ae3b89e91eb6
+SIZE (SiaFoundation-web-5611d44a533e_GH0.tar.gz) = 27541708
+SHA256 (SiaFoundation-web-hostd-v0.58.0_GH0.tar.gz) = db607128a490367f100a9907f5f3f8061d6e4e4580757810ce8b090681de7491
+SIZE (SiaFoundation-web-hostd-v0.58.0_GH0.tar.gz) = 27986484
+SHA256 (aws-aws-sdk-go-v1.55.6_GH0.tar.gz) = ae51032a0575b798a24670ec1f006dcd7dc0804c7131f4061887df96f7d114c5
+SIZE (aws-aws-sdk-go-v1.55.6_GH0.tar.gz) = 33373600
+SHA256 (cloudflare-cloudflare-go-v0.115.0_GH0.tar.gz) = b82c3ed62a37aee5359b31822a4152c06b019ce43ba623f2ef7d7664bb27cffb
+SIZE (cloudflare-cloudflare-go-v0.115.0_GH0.tar.gz) = 517339
+SHA256 (etcd-io-bbolt-v1.4.0_GH0.tar.gz) = 2b383501445b37801bf8431cb6efb41708f4623d37a0d0be0a3c1dbcdda66012
+SIZE (etcd-io-bbolt-v1.4.0_GH0.tar.gz) = 168787
+SHA256 (go-task-slim-sprig-52ccab3ef572_GH0.tar.gz) = 234ca4f44e68e77180301a1a6f3e0426769abefdcafb2ff80d3ffdb27512b173
+SIZE (go-task-slim-sprig-52ccab3ef572_GH0.tar.gz) = 39958
+SHA256 (go-yaml-yaml-v2.4.0_GH0.tar.gz) = d8e94679e5fff6bd1a35e10241543929a5f3da44f701755babf99b3daf0faac0
+SIZE (go-yaml-yaml-v2.4.0_GH0.tar.gz) = 73209
+SHA256 (go-yaml-yaml-v3.0.1_GH0.tar.gz) = cf05411540d3e6ef8f1fd88434b34f94cedaceb540329031d80e23b74540c4e5
+SIZE (go-yaml-yaml-v3.0.1_GH0.tar.gz) = 91173
+SHA256 (goccy-go-json-v0.10.5_GH0.tar.gz) = 15a6994e238a3d520816d53eacd115e6d3fd0816e570e8ae79f3a8fcf74616aa
+SIZE (goccy-go-json-v0.10.5_GH0.tar.gz) = 399031
+SHA256 (golang-crypto-v0.33.0_GH0.tar.gz) = f226aebdbb44372844bb754cedd9d4f6d958cf4686db4489de970546c5860913
+SIZE (golang-crypto-v0.33.0_GH0.tar.gz) = 1840655
+SHA256 (golang-exp-9bf2ced13842_GH0.tar.gz) = 90fcc103b5927178af2d64b57d39de86d43a8bfa13cb71f4865a360cffe0f1b0
+SIZE (golang-exp-9bf2ced13842_GH0.tar.gz) = 1744262
+SHA256 (golang-mod-v0.18.0_GH0.tar.gz) = 247133e4ef1a5863af267a81c2d3f2b6e6b439f250db4e1d7e16df46d37e4d71
+SIZE (golang-mod-v0.18.0_GH0.tar.gz) = 123147
+SHA256 (golang-net-v0.34.0_GH0.tar.gz) = 3d5ec65e81b6f1d9530a3008f35722e9cf6d4905b20c19a7126f58aae515996c
+SIZE (golang-net-v0.34.0_GH0.tar.gz) = 1466242
+SHA256 (golang-sync-v0.11.0_GH0.tar.gz) = b695a9de85279f6c4bd19f3b6746c5808243470f158b6c5b637f64c4db889f8e
+SIZE (golang-sync-v0.11.0_GH0.tar.gz) = 18144
+SHA256 (golang-sys-v0.30.0_GH0.tar.gz) = 3e54dfe262f4f09341622679101c0f10935028cc945f78a97f898b2416edb1f0
+SIZE (golang-sys-v0.30.0_GH0.tar.gz) = 1523069
+SHA256 (golang-term-v0.29.0_GH0.tar.gz) = 7c9dd180502d91fc1a1af8710e2314cd64e64cfcda70d6cf518a386fd10b2487
+SIZE (golang-term-v0.29.0_GH0.tar.gz) = 14686
+SHA256 (golang-text-v0.22.0_GH0.tar.gz) = ac8bdce0477effd5a830345979626745e5e5bcb81d1a77c8029b0e8b3d621089
+SIZE (golang-text-v0.22.0_GH0.tar.gz) = 8970985
+SHA256 (golang-time-v0.10.0_GH0.tar.gz) = 4c04f20b8d5cac372d97e350ecb652ba2434c019cbb9e89dfeb1a0049b414cf6
+SIZE (golang-time-v0.10.0_GH0.tar.gz) = 12489
+SHA256 (golang-tools-v0.22.0_GH0.tar.gz) = ae80020fa6994e1e112478eb4fc3aefcf9b21500c6e2ef5c5b3bdbb3f8943f13
+SIZE (golang-tools-v0.22.0_GH0.tar.gz) = 3853706
+SHA256 (google-go-querystring-v1.1.0_GH0.tar.gz) = a5641dee688eb2c733608ce5a88d8181c93ad9f5083fd97fadbccb91afad9a56
+SIZE (google-go-querystring-v1.1.0_GH0.tar.gz) = 10423
+SHA256 (google-pprof-407c9e7a662f_GH0.tar.gz) = 6cd5d14f023e0e372f067e37d677cf7bf85385f15ff05a2f2a3dfc9dbb6cbe73
+SIZE (google-pprof-407c9e7a662f_GH0.tar.gz) = 4790769
+SHA256 (hashicorp-golang-lru-v2.0.7_GH0.tar.gz) = 312697d0bf6e6bb44e66a94b2a8a07955edf89af10b09e69b5a9101d30ad5149
+SIZE (hashicorp-golang-lru-v2.0.7_GH0.tar.gz) = 23860
+SHA256 (jmespath-go-jmespath-v0.4.0_GH0.tar.gz) = aa86d00b6836345eee196c13df2df084a18e0b1159935de9289f2ef6a7fe375d
+SIZE (jmespath-go-jmespath-v0.4.0_GH0.tar.gz) = 128861
+SHA256 (julienschmidt-httprouter-v1.3.0_GH0.tar.gz) = 2999dffc23f8ac3872ea37d108ddec0ba570d2780a42876300bdcdb0744908e2
+SIZE (julienschmidt-httprouter-v1.3.0_GH0.tar.gz) = 23889
+SHA256 (lukechampine-flagg-v1.1.1_GH0.tar.gz) = 18be5b31baa80cef0f6ab83dc3022d1de96e3025011e4e290ff066a834913900
+SIZE (lukechampine-flagg-v1.1.1_GH0.tar.gz) = 3163
+SHA256 (lukechampine-frand-v1.5.1_GH0.tar.gz) = 4cbc9b5f5d08ba860ce7dd8689581b26f0241356e9b37ab109c8bc8c564f18f6
+SIZE (lukechampine-frand-v1.5.1_GH0.tar.gz) = 7591
+SHA256 (lukechampine-upnp-v0.3.0_GH0.tar.gz) = e0911c0bf4acf197b3d5793259b2734d01d00dea93829845ee7a7de5cdd6e517
+SIZE (lukechampine-upnp-v0.3.0_GH0.tar.gz) = 5880
+SHA256 (mattn-go-sqlite3-v1.14.24_GH0.tar.gz) = 8fa3b0b66914ae2dd4ddef9a954f614c5b3eb6ac9d80ee61ae2d08e3178507ec
+SIZE (mattn-go-sqlite3-v1.14.24_GH0.tar.gz) = 2622934
+SHA256 (onsi-ginkgo-v2.12.0_GH0.tar.gz) = ff8ad0c743f3bdcb7472419a85912b78c1ccfe0350473e507de576241193f88b
+SIZE (onsi-ginkgo-v2.12.0_GH0.tar.gz) = 626352
+SHA256 (quic-go-qpack-v0.5.1_GH0.tar.gz) = 4764c488fd58d111bfb06f651f593c8beb1829b853eb56ab204f2680aca12362
+SIZE (quic-go-qpack-v0.5.1_GH0.tar.gz) = 40696
+SHA256 (quic-go-quic-go-v0.49.0_GH0.tar.gz) = 8816ec8c7f799e553442ddb686238ddffe28f843a576757ee2e7d491ea72117b
+SIZE (quic-go-quic-go-v0.49.0_GH0.tar.gz) = 609138
+SHA256 (quic-go-webtransport-go-4ac2c9250e66_GH0.tar.gz) = 621e42ffd6612cf0338cd03628c37e75e71877ab3d4ef44f738fa9cfd5817432
+SIZE (quic-go-webtransport-go-4ac2c9250e66_GH0.tar.gz) = 37597
+SHA256 (rogpeppe-go-internal-v1.12.0_GH0.tar.gz) = b51d588d05f3e82d3045545ef46bd758a0610b9cfde1ae243489a593908b6060
+SIZE (rogpeppe-go-internal-v1.12.0_GH0.tar.gz) = 116899
+SHA256 (shopspring-decimal-v1.4.0_GH0.tar.gz) = 6ddc6bc4e94a0b3a8366bdd5674b4c2890faca1171afc3f7d20aec95e2c8d413
+SIZE (shopspring-decimal-v1.4.0_GH0.tar.gz) = 53681
+SHA256 (uber-go-goleak-v1.3.0_GH0.tar.gz) = 4813e7694736f4d7fd1aad195d942f40ffca448c29bff3282ba6e92eaba4e0cd
+SIZE (uber-go-goleak-v1.3.0_GH0.tar.gz) = 20057
+SHA256 (uber-go-mock-v0.5.0_GH0.tar.gz) = 41c16668926118ccfe8606e335487c0213efbb1330061e3ab7e97650b78e7737
+SIZE (uber-go-mock-v0.5.0_GH0.tar.gz) = 103723
+SHA256 (uber-go-multierr-v1.11.0_GH0.tar.gz) = 8aa599cf7de733306cf8770f854f8a38e6c819b1ae4296f15e44b1e7c6698f34
+SIZE (uber-go-multierr-v1.11.0_GH0.tar.gz) = 16900
+SHA256 (uber-go-zap-v1.27.0_GH0.tar.gz) = 62860771a138097535da9053f75d1da1a9e57f98263ead698ce493e0c9670652
+SIZE (uber-go-zap-v1.27.0_GH0.tar.gz) = 271384
diff --git a/net-p2p/hostd/files/hostd.conf.in b/net-p2p/hostd/files/hostd.conf.in
new file mode 100644
index 000000000000..4ca23bdb1227
--- /dev/null
+++ b/net-p2p/hostd/files/hostd.conf.in
@@ -0,0 +1,2 @@
+# $FreeBSD$
+/var/log/hostd.log 600 20 * @T00 J /var/run/hostd.pid
diff --git a/net-p2p/hostd/files/hostd.in b/net-p2p/hostd/files/hostd.in
new file mode 100644
index 000000000000..e2cf08e5a730
--- /dev/null
+++ b/net-p2p/hostd/files/hostd.in
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+# PROVIDE: hostd
+# REQUIRE: LOGIN FILESYSTEMS netwait
+# KEYWORD: SHUTDOWN
+#
+# Add these lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# hostd_enable (bool): Set to NO by default.
+# Set it to YES to enable doormand.
+# hostd_config (path): Set to %%PREFIX%%/etc/hostd.yml
+# by default.
+
+. /etc/rc.subr
+
+name=hostd
+rcvar=${name}_enable
+
+load_rc_config $name
+
+: ${hostd_enable:=NO}
+: ${hostd_executable:="%%PREFIX%%/bin/hostd"}
+: ${hostd_config:="%%PREFIX%%/etc/hostd.yml"}
+
+hostd_env="HOSTD_CONFIG_FILE=${hostd_config}"
+pidfile="/var/run/${name}.pid"
+command="/usr/sbin/daemon"
+command_args="-r -f -H \
+ -o \"/var/log/${name}.log\" \
+ -P \"${pidfile}\" \
+ -u %%USERS%% \"${hostd_executable}\""
+
+
+run_rc_command "$1"
diff --git a/net-p2p/hostd/files/hostd.yml.in b/net-p2p/hostd/files/hostd.yml.in
new file mode 100644
index 000000000000..1fb278d68209
--- /dev/null
+++ b/net-p2p/hostd/files/hostd.yml.in
@@ -0,0 +1,30 @@
+directory: /var/db/hostd
+recoveryPhrase: indicate nature buzz route rude embody engage confirm aspect potato weapon bid
+autoOpenWebUI: true
+http:
+ address: :9980
+ password: sia is cool
+syncer:
+ address: :9981
+ bootstrap: true
+consensus:
+ network: mainnet
+ indexBatchSize: 100
+explorer:
+ url: https://api.siascan.com
+rhp2:
+ address: :9982
+rhp3:
+ tcp: :9983
+log:
+ level: info # global log level
+ stdout:
+ enabled: true # enable logging to stdout
+ level: info # log level for console logger
+ format: human # log format (human, json)
+ enableANSI: false # enable ANSI color codes (disabled on Windows)
+ file:
+ enabled: false # enable logging to file
+ level: info # log level for file logger
+ path: /var/log/hostd.log # the path of the log file
+ format: json # log format (human, json)
diff --git a/net-p2p/hostd/files/patch-build_meta.go b/net-p2p/hostd/files/patch-build_meta.go
new file mode 100644
index 000000000000..daf356fdda06
--- /dev/null
+++ b/net-p2p/hostd/files/patch-build_meta.go
@@ -0,0 +1,15 @@
+--- build/meta.go.orig 2025-02-24 21:26:07 UTC
++++ build/meta.go
+@@ -1,7 +1,9 @@
++// Code generated by go generate; DO NOT EDIT.
++// This file was generated by go generate at 2025-03-10T13:09:09+01:00.
+ package build
+
+ const (
+- commit = "?"
+- version = "2.0.0"
+- buildTime = 0
++ commit = "4094916"
++ version = "v2.0.4"
++ buildTime = %%BUILDTIME%%
+ )
diff --git a/net-p2p/hostd/files/patch-vendor_modules.txt b/net-p2p/hostd/files/patch-vendor_modules.txt
new file mode 100644
index 000000000000..8a8239e2be0f
--- /dev/null
+++ b/net-p2p/hostd/files/patch-vendor_modules.txt
@@ -0,0 +1,290 @@
+--- vendor/modules.txt.orig 2025-03-12 12:08:29 UTC
++++ vendor/modules.txt
+@@ -0,0 +1,287 @@
++# github.com/aws/aws-sdk-go v1.55.6
++## explicit; go 1.19
++github.com/aws/aws-sdk-go/aws
++github.com/aws/aws-sdk-go/aws/auth/bearer
++github.com/aws/aws-sdk-go/aws/awserr
++github.com/aws/aws-sdk-go/aws/awsutil
++github.com/aws/aws-sdk-go/aws/client
++github.com/aws/aws-sdk-go/aws/client/metadata
++github.com/aws/aws-sdk-go/aws/corehandlers
++github.com/aws/aws-sdk-go/aws/credentials
++github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds
++github.com/aws/aws-sdk-go/aws/credentials/endpointcreds
++github.com/aws/aws-sdk-go/aws/credentials/processcreds
++github.com/aws/aws-sdk-go/aws/credentials/ssocreds
++github.com/aws/aws-sdk-go/aws/credentials/stscreds
++github.com/aws/aws-sdk-go/aws/csm
++github.com/aws/aws-sdk-go/aws/defaults
++github.com/aws/aws-sdk-go/aws/ec2metadata
++github.com/aws/aws-sdk-go/aws/endpoints
++github.com/aws/aws-sdk-go/aws/request
++github.com/aws/aws-sdk-go/aws/session
++github.com/aws/aws-sdk-go/aws/signer/v4
++github.com/aws/aws-sdk-go/internal/context
++github.com/aws/aws-sdk-go/internal/ini
++github.com/aws/aws-sdk-go/internal/sdkio
++github.com/aws/aws-sdk-go/internal/sdkmath
++github.com/aws/aws-sdk-go/internal/sdkrand
++github.com/aws/aws-sdk-go/internal/sdkuri
++github.com/aws/aws-sdk-go/internal/shareddefaults
++github.com/aws/aws-sdk-go/internal/strings
++github.com/aws/aws-sdk-go/internal/sync/singleflight
++github.com/aws/aws-sdk-go/private/protocol
++github.com/aws/aws-sdk-go/private/protocol/json/jsonutil
++github.com/aws/aws-sdk-go/private/protocol/jsonrpc
++github.com/aws/aws-sdk-go/private/protocol/query
++github.com/aws/aws-sdk-go/private/protocol/query/queryutil
++github.com/aws/aws-sdk-go/private/protocol/rest
++github.com/aws/aws-sdk-go/private/protocol/restjson
++github.com/aws/aws-sdk-go/private/protocol/restxml
++github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil
++github.com/aws/aws-sdk-go/service/route53
++github.com/aws/aws-sdk-go/service/sso
++github.com/aws/aws-sdk-go/service/sso/ssoiface
++github.com/aws/aws-sdk-go/service/ssooidc
++github.com/aws/aws-sdk-go/service/sts
++github.com/aws/aws-sdk-go/service/sts/stsiface
++# github.com/cloudflare/cloudflare-go v0.115.0
++## explicit; go 1.21
++github.com/cloudflare/cloudflare-go
++# github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572
++## explicit; go 1.13
++github.com/go-task/slim-sprig
++# github.com/goccy/go-json v0.10.5
++## explicit; go 1.19
++github.com/goccy/go-json
++github.com/goccy/go-json/internal/decoder
++github.com/goccy/go-json/internal/encoder
++github.com/goccy/go-json/internal/encoder/vm
++github.com/goccy/go-json/internal/encoder/vm_color
++github.com/goccy/go-json/internal/encoder/vm_color_indent
++github.com/goccy/go-json/internal/encoder/vm_indent
++github.com/goccy/go-json/internal/errors
++github.com/goccy/go-json/internal/runtime
++# github.com/google/go-querystring v1.1.0
++## explicit; go 1.10
++github.com/google/go-querystring/query
++# github.com/google/pprof v0.0.0-20230821062121-407c9e7a662f
++## explicit; go 1.19
++github.com/google/pprof/profile
++# github.com/hashicorp/golang-lru/v2 v2.0.7
++## explicit; go 1.18
++github.com/hashicorp/golang-lru/v2
++github.com/hashicorp/golang-lru/v2/internal
++github.com/hashicorp/golang-lru/v2/simplelru
++# github.com/jmespath/go-jmespath v0.4.0
++## explicit; go 1.14
++github.com/jmespath/go-jmespath
++# github.com/julienschmidt/httprouter v1.3.0
++## explicit; go 1.7
++github.com/julienschmidt/httprouter
++# github.com/mattn/go-sqlite3 v1.14.24
++## explicit; go 1.19
++github.com/mattn/go-sqlite3
++# github.com/onsi/ginkgo/v2 v2.12.0
++## explicit; go 1.18
++github.com/onsi/ginkgo/v2/config
++github.com/onsi/ginkgo/v2/formatter
++github.com/onsi/ginkgo/v2/ginkgo
++github.com/onsi/ginkgo/v2/ginkgo/build
++github.com/onsi/ginkgo/v2/ginkgo/command
++github.com/onsi/ginkgo/v2/ginkgo/generators
++github.com/onsi/ginkgo/v2/ginkgo/internal
++github.com/onsi/ginkgo/v2/ginkgo/labels
++github.com/onsi/ginkgo/v2/ginkgo/outline
++github.com/onsi/ginkgo/v2/ginkgo/run
++github.com/onsi/ginkgo/v2/ginkgo/unfocus
++github.com/onsi/ginkgo/v2/ginkgo/watch
++github.com/onsi/ginkgo/v2/internal/interrupt_handler
++github.com/onsi/ginkgo/v2/internal/parallel_support
++github.com/onsi/ginkgo/v2/reporters
++github.com/onsi/ginkgo/v2/types
++# github.com/quic-go/qpack v0.5.1
++## explicit; go 1.22
++github.com/quic-go/qpack
++# github.com/quic-go/quic-go v0.49.0
++## explicit; go 1.22
++github.com/quic-go/quic-go
++github.com/quic-go/quic-go/http3
++github.com/quic-go/quic-go/internal/ackhandler
++github.com/quic-go/quic-go/internal/congestion
++github.com/quic-go/quic-go/internal/flowcontrol
++github.com/quic-go/quic-go/internal/handshake
++github.com/quic-go/quic-go/internal/protocol
++github.com/quic-go/quic-go/internal/qerr
++github.com/quic-go/quic-go/internal/qtls
++github.com/quic-go/quic-go/internal/utils
++github.com/quic-go/quic-go/internal/utils/linkedlist
++github.com/quic-go/quic-go/internal/utils/ringbuffer
++github.com/quic-go/quic-go/internal/wire
++github.com/quic-go/quic-go/logging
++github.com/quic-go/quic-go/quicvarint
++# github.com/quic-go/webtransport-go v0.8.1-0.20241018022711-4ac2c9250e66
++## explicit; go 1.22
++github.com/quic-go/webtransport-go
++# github.com/rogpeppe/go-internal v1.12.0
++## explicit; go 1.20
++# github.com/shopspring/decimal v1.4.0
++## explicit; go 1.10
++github.com/shopspring/decimal
++# go.etcd.io/bbolt v1.4.0
++## explicit; go 1.23
++go.etcd.io/bbolt
++go.etcd.io/bbolt/errors
++go.etcd.io/bbolt/internal/common
++go.etcd.io/bbolt/internal/freelist
++# go.sia.tech/core v0.10.1
++## explicit; go 1.23.1
++go.sia.tech/core/consensus
++go.sia.tech/core/gateway
++go.sia.tech/core/internal/blake2b
++go.sia.tech/core/internal/smux
++go.sia.tech/core/rhp/v2
++go.sia.tech/core/rhp/v3
++go.sia.tech/core/rhp/v4
++go.sia.tech/core/types
++# go.sia.tech/coreutils v0.11.1
++## explicit; go 1.23.1
++go.sia.tech/coreutils
++go.sia.tech/coreutils/chain
++go.sia.tech/coreutils/rhp/v4
++go.sia.tech/coreutils/syncer
++go.sia.tech/coreutils/testutil
++go.sia.tech/coreutils/threadgroup
++go.sia.tech/coreutils/wallet
++# go.sia.tech/jape v0.12.1
++## explicit; go 1.21.7
++go.sia.tech/jape
++# go.sia.tech/mux v1.3.0
++## explicit; go 1.23
++go.sia.tech/mux
++go.sia.tech/mux/v1
++go.sia.tech/mux/v2
++# go.sia.tech/web v0.0.0-20240610131903-5611d44a533e
++## explicit
++go.sia.tech/web/internal/nextjs
++# go.sia.tech/web/hostd v0.58.0
++## explicit; go 1.23.0
++go.sia.tech/web/hostd
++# go.uber.org/goleak v1.3.0
++## explicit; go 1.20
++go.uber.org/goleak
++go.uber.org/goleak/internal/stack
++# go.uber.org/mock v0.5.0
++## explicit; go 1.22
++go.uber.org/mock/mockgen
++go.uber.org/mock/mockgen/model
++# go.uber.org/multierr v1.11.0
++## explicit; go 1.19
++go.uber.org/multierr
++# go.uber.org/zap v1.27.0
++## explicit; go 1.19
++go.uber.org/zap
++go.uber.org/zap/buffer
++go.uber.org/zap/internal
++go.uber.org/zap/internal/bufferpool
++go.uber.org/zap/internal/color
++go.uber.org/zap/internal/exit
++go.uber.org/zap/internal/pool
++go.uber.org/zap/internal/stacktrace
++go.uber.org/zap/internal/ztest
++go.uber.org/zap/zapcore
++go.uber.org/zap/zaptest
++# golang.org/x/crypto v0.33.0
++## explicit; go 1.20
++golang.org/x/crypto/blake2b
++golang.org/x/crypto/chacha20
++golang.org/x/crypto/chacha20poly1305
++golang.org/x/crypto/curve25519
++golang.org/x/crypto/hkdf
++golang.org/x/crypto/internal/alias
++golang.org/x/crypto/internal/poly1305
++golang.org/x/crypto/poly1305
++# golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842
++## explicit; go 1.20
++golang.org/x/exp/rand
++# golang.org/x/mod v0.18.0
++## explicit; go 1.18
++golang.org/x/mod/internal/lazyregexp
++golang.org/x/mod/modfile
++golang.org/x/mod/module
++golang.org/x/mod/semver
++# golang.org/x/net v0.34.0
++## explicit; go 1.18
++golang.org/x/net/bpf
++golang.org/x/net/http/httpguts
++golang.org/x/net/http2/hpack
++golang.org/x/net/idna
++golang.org/x/net/internal/iana
++golang.org/x/net/internal/socket
++golang.org/x/net/ipv4
++golang.org/x/net/ipv6
++# golang.org/x/sync v0.11.0
++## explicit; go 1.18
++golang.org/x/sync/errgroup
++# golang.org/x/sys v0.30.0
++## explicit; go 1.18
++golang.org/x/sys/cpu
++golang.org/x/sys/plan9
++golang.org/x/sys/unix
++golang.org/x/sys/windows
++# golang.org/x/term v0.29.0
++## explicit; go 1.18
++golang.org/x/term
++# golang.org/x/text v0.22.0
++## explicit; go 1.18
++golang.org/x/text/secure/bidirule
++golang.org/x/text/transform
++golang.org/x/text/unicode/bidi
++golang.org/x/text/unicode/norm
++# golang.org/x/time v0.10.0
++## explicit; go 1.18
++golang.org/x/time/rate
++# golang.org/x/tools v0.22.0
++## explicit; go 1.19
++golang.org/x/tools/go/analysis
++golang.org/x/tools/go/analysis/passes/ctrlflow
++golang.org/x/tools/go/analysis/passes/inspect
++golang.org/x/tools/go/ast/astutil
++golang.org/x/tools/go/ast/inspector
++golang.org/x/tools/go/cfg
++golang.org/x/tools/go/gcexportdata
++golang.org/x/tools/go/internal/packagesdriver
++golang.org/x/tools/go/packages
++golang.org/x/tools/go/types/objectpath
++golang.org/x/tools/go/types/typeutil
++golang.org/x/tools/imports
++golang.org/x/tools/internal/aliases
++golang.org/x/tools/internal/event
++golang.org/x/tools/internal/event/core
++golang.org/x/tools/internal/event/keys
++golang.org/x/tools/internal/event/label
++golang.org/x/tools/internal/gcimporter
++golang.org/x/tools/internal/gocommand
++golang.org/x/tools/internal/gopathwalk
++golang.org/x/tools/internal/imports
++golang.org/x/tools/internal/packagesinternal
++golang.org/x/tools/internal/pkgbits
++golang.org/x/tools/internal/stdlib
++golang.org/x/tools/internal/tokeninternal
++golang.org/x/tools/internal/typeparams
++golang.org/x/tools/internal/typesinternal
++golang.org/x/tools/internal/versions
++# gopkg.in/yaml.v2 v2.4.0
++## explicit; go 1.15
++# gopkg.in/yaml.v3 v3.0.1
++## explicit
++gopkg.in/yaml.v3
++# lukechampine.com/flagg v1.1.1
++## explicit; go 1.12
++lukechampine.com/flagg
++# lukechampine.com/frand v1.5.1
++## explicit; go 1.23.1
++lukechampine.com/frand
++# lukechampine.com/upnp v0.3.0
++## explicit; go 1.17
++lukechampine.com/upnp
++lukechampine.com/upnp/internal/goupnp
diff --git a/net-p2p/hostd/pkg-descr b/net-p2p/hostd/pkg-descr
new file mode 100644
index 000000000000..571348715619
--- /dev/null
+++ b/net-p2p/hostd/pkg-descr
@@ -0,0 +1,8 @@
+hostd is an advanced Sia host solution created by the Sia Foundation,
+designed to enhance the experience for storage providers within the
+Sia network. Tailored for both individual and large-scale storage
+providers, hostd boasts a user-friendly interface and a robust API,
+empowering providers to efficiently manage their storage resources and
+revenue. hostd incorporates an embedded web-UI, simplifying deployment
+and enabling remote management capabilities, ensuring a smooth user
+experience across a diverse range of devices.
diff --git a/net-p2p/hostd/pkg-message b/net-p2p/hostd/pkg-message
new file mode 100644
index 000000000000..726e6c1a133e
--- /dev/null
+++ b/net-p2p/hostd/pkg-message
@@ -0,0 +1,9 @@
+[
+{ type: install
+ message: <<EOM
+The program hostd has been installed. To enable it at boot time,
+add it to /etc/rc.conf with the following command:
+sysrc hostd_enable="YES"
+EOM
+}
+]