From d6a71fcd5703a5839ba99032e7b6ff09c3e2ba1b Mon Sep 17 00:00:00 2001 From: d34dscene Date: Thu, 31 Jul 2025 00:37:57 +0200 Subject: [PATCH] adding compression --- .ko.yaml | 13 +-- Makefile | 92 ------------------- agent/cmd/main.go | 4 +- pkg/build/update.go | 6 +- pkg/{build => meta}/build.go | 2 +- main.go => server/cmd/main.go | 4 +- .../internal}/api/handler/oidc.go | 6 +- .../internal}/api/handler/traefik.go | 6 +- .../internal}/api/handler/upload.go | 6 +- .../internal}/api/middlewares/audit.go | 4 +- .../internal}/api/middlewares/auth.go | 2 +- .../internal}/api/middlewares/chain.go | 2 +- .../internal}/api/middlewares/logging.go | 0 .../internal}/api/server/cors.go | 2 +- .../internal}/api/server/server.go | 10 +- server/internal/api/server/static.go | 48 ++++++++++ .../internal}/api/service/agent.go | 6 +- .../internal}/api/service/auditlog.go | 4 +- .../internal}/api/service/backup.go | 4 +- .../internal}/api/service/dns.go | 6 +- .../internal}/api/service/entrypoint.go | 4 +- .../internal}/api/service/middleware.go | 4 +- .../internal}/api/service/middleware_ops.go | 6 +- .../internal}/api/service/profile.go | 4 +- .../internal}/api/service/router.go | 2 +- .../internal}/api/service/router_ops.go | 6 +- .../api/service/servers_transport.go | 2 +- .../api/service/servers_transport_ops.go | 6 +- .../internal}/api/service/service.go | 2 +- .../internal}/api/service/service_ops.go | 6 +- .../internal}/api/service/setting.go | 4 +- .../internal}/api/service/traefik_instance.go | 4 +- .../internal}/api/service/user.go | 10 +- .../internal}/api/service/util.go | 6 +- .../internal}/backup/backup.go | 8 +- {internal => server/internal}/config/flags.go | 3 +- .../internal}/config/flags_dev.go | 5 +- {internal => server/internal}/config/setup.go | 8 +- {internal => server/internal}/config/tasks.go | 6 +- .../internal}/config/zod_dev.go | 0 {internal => server/internal}/dns/client.go | 2 +- .../internal}/dns/cloudflare.go | 2 +- {internal => server/internal}/dns/powerdns.go | 2 +- .../internal}/dns/technitium.go | 2 +- {internal => server/internal}/mail/mail.go | 4 +- .../internal}/mail/templates/embed.go | 0 .../mail/templates/reset-password.html | 0 .../mail/templates/verify-email.html | 0 .../internal}/settings/constants.go | 0 .../internal}/settings/settings.go | 4 +- .../internal}/settings/settings_test.go | 4 +- .../internal}/settings/validate.go | 2 +- .../internal}/storage/local.go | 0 {internal => server/internal}/storage/s3.go | 2 +- .../internal}/storage/types.go | 2 +- .../internal}/store/00000_base.sql | 0 .../internal}/store/connection.go | 2 +- .../internal}/store/db/agents.sql.go | 2 +- .../internal}/store/db/audit_logs.sql.go | 0 .../internal}/store/db/conversion.go | 2 +- {internal => server/internal}/store/db/db.go | 0 .../internal}/store/db/dns_providers.sql.go | 2 +- .../internal}/store/db/entry_points.sql.go | 0 .../internal}/store/db/errors.sql.go | 0 .../store/db/http_middlewares.sql.go | 2 +- .../store/db/http_router_dns_provider.sql.go | 2 +- .../internal}/store/db/http_routers.sql.go | 2 +- .../store/db/http_servers_transports.sql.go | 2 +- .../internal}/store/db/http_services.sql.go | 2 +- .../internal}/store/db/models.go | 2 +- .../internal}/store/db/profiles.sql.go | 0 .../internal}/store/db/querier.go | 0 .../store/db/servers_transport.sql.go | 2 +- .../internal}/store/db/settings.sql.go | 0 .../internal}/store/db/tcp_middlewares.sql.go | 2 +- .../store/db/tcp_router_dns_provider.sql.go | 2 +- .../internal}/store/db/tcp_routers.sql.go | 2 +- .../store/db/tcp_servers_transport.sql.go | 2 +- .../internal}/store/db/tcp_services.sql.go | 2 +- .../store/db/traefik_instances.sql.go | 2 +- .../internal}/store/db/udp_routers.sql.go | 2 +- .../internal}/store/db/udp_services.sql.go | 2 +- .../internal}/store/db/users.sql.go | 0 .../internal}/store/migrations/00001_init.sql | 0 .../store/migrations/00002_entrypoints.sql | 0 .../store/migrations/00003_users.sql | 0 .../internal}/store/migrations/00004_v05.sql | 0 .../store/migrations/00005_adjust_rdp.sql | 0 .../store/migrations/00006_add_errors.sql | 0 .../internal}/store/migrations/00007_v07.sql | 0 .../internal}/store/queries/agents.sql | 0 .../internal}/store/queries/audit_logs.sql | 0 .../internal}/store/queries/dns_providers.sql | 0 .../internal}/store/queries/entry_points.sql | 0 .../internal}/store/queries/errors.sql | 0 .../store/queries/http_middlewares.sql | 0 .../queries/http_router_dns_provider.sql | 0 .../internal}/store/queries/http_routers.sql | 0 .../store/queries/http_servers_transports.sql | 0 .../internal}/store/queries/http_services.sql | 0 .../internal}/store/queries/profiles.sql | 0 .../store/queries/servers_transport.sql | 0 .../internal}/store/queries/settings.sql | 0 .../store/queries/tcp_middlewares.sql | 0 .../store/queries/tcp_router_dns_provider.sql | 0 .../internal}/store/queries/tcp_routers.sql | 0 .../store/queries/tcp_servers_transport.sql | 0 .../internal}/store/queries/tcp_services.sql | 0 .../store/queries/traefik_instances.sql | 0 .../internal}/store/queries/udp_routers.sql | 0 .../internal}/store/queries/udp_services.sql | 0 .../internal}/store/queries/users.sql | 0 .../internal}/store/schema/agent.go | 0 .../internal}/store/schema/common.go | 0 .../internal}/store/schema/dns.go | 0 .../internal}/store/schema/middleware.go | 0 .../store/schema/middleware_verify.go | 0 .../internal}/store/schema/router.go | 0 .../store/schema/servers_transport.go | 0 .../internal}/store/schema/service.go | 0 .../internal}/store/schema/traefik.go | 0 .../internal}/store/squash_dev.go | 0 .../internal}/traefik/client.go | 4 +- .../internal}/traefik/config.go | 6 +- taskfile.yaml | 29 ++++-- web/package.json | 1 + web/pnpm-lock.yaml | 40 ++++++++ web/vite.config.ts | 13 +-- 128 files changed, 247 insertions(+), 233 deletions(-) delete mode 100644 Makefile rename pkg/{build => meta}/build.go (89%) rename main.go => server/cmd/main.go (82%) rename {internal => server/internal}/api/handler/oidc.go (98%) rename {internal => server/internal}/api/handler/traefik.go (93%) rename {internal => server/internal}/api/handler/upload.go (96%) rename {internal => server/internal}/api/middlewares/audit.go (99%) rename {internal => server/internal}/api/middlewares/auth.go (99%) rename {internal => server/internal}/api/middlewares/chain.go (91%) rename {internal => server/internal}/api/middlewares/logging.go (100%) rename {internal => server/internal}/api/server/cors.go (95%) rename {internal => server/internal}/api/server/server.go (96%) create mode 100644 server/internal/api/server/static.go rename {internal => server/internal}/api/service/agent.go (97%) rename {internal => server/internal}/api/service/auditlog.go (90%) rename {internal => server/internal}/api/service/backup.go (96%) rename {internal => server/internal}/api/service/dns.go (96%) rename {internal => server/internal}/api/service/entrypoint.go (98%) rename {internal => server/internal}/api/service/middleware.go (97%) rename {internal => server/internal}/api/service/middleware_ops.go (98%) rename {internal => server/internal}/api/service/profile.go (96%) rename {internal => server/internal}/api/service/router.go (98%) rename {internal => server/internal}/api/service/router_ops.go (98%) rename {internal => server/internal}/api/service/servers_transport.go (98%) rename {internal => server/internal}/api/service/servers_transport_ops.go (97%) rename {internal => server/internal}/api/service/service.go (98%) rename {internal => server/internal}/api/service/service_ops.go (98%) rename {internal => server/internal}/api/service/setting.go (93%) rename {internal => server/internal}/api/service/traefik_instance.go (94%) rename {internal => server/internal}/api/service/user.go (97%) rename {internal => server/internal}/api/service/util.go (88%) rename {internal => server/internal}/backup/backup.go (97%) rename {internal => server/internal}/config/flags.go (89%) rename {internal => server/internal}/config/flags_dev.go (85%) rename {internal => server/internal}/config/setup.go (93%) rename {internal => server/internal}/config/tasks.go (93%) rename {internal => server/internal}/config/zod_dev.go (100%) rename {internal => server/internal}/dns/client.go (99%) rename {internal => server/internal}/dns/cloudflare.go (98%) rename {internal => server/internal}/dns/powerdns.go (98%) rename {internal => server/internal}/dns/technitium.go (99%) rename {internal => server/internal}/mail/mail.go (93%) rename {internal => server/internal}/mail/templates/embed.go (100%) rename {internal => server/internal}/mail/templates/reset-password.html (100%) rename {internal => server/internal}/mail/templates/verify-email.html (100%) rename {internal => server/internal}/settings/constants.go (100%) rename {internal => server/internal}/settings/settings.go (98%) rename {internal => server/internal}/settings/settings_test.go (96%) rename {internal => server/internal}/settings/validate.go (97%) rename {internal => server/internal}/storage/local.go (100%) rename {internal => server/internal}/storage/s3.go (98%) rename {internal => server/internal}/storage/types.go (94%) rename {internal => server/internal}/store/00000_base.sql (100%) rename {internal => server/internal}/store/connection.go (98%) rename {internal => server/internal}/store/db/agents.sql.go (98%) rename {internal => server/internal}/store/db/audit_logs.sql.go (100%) rename {internal => server/internal}/store/db/conversion.go (99%) rename {internal => server/internal}/store/db/db.go (100%) rename {internal => server/internal}/store/db/dns_providers.sql.go (98%) rename {internal => server/internal}/store/db/entry_points.sql.go (100%) rename {internal => server/internal}/store/db/errors.sql.go (100%) rename {internal => server/internal}/store/db/http_middlewares.sql.go (99%) rename {internal => server/internal}/store/db/http_router_dns_provider.sql.go (98%) rename {internal => server/internal}/store/db/http_routers.sql.go (99%) rename {internal => server/internal}/store/db/http_servers_transports.sql.go (98%) rename {internal => server/internal}/store/db/http_services.sql.go (99%) rename {internal => server/internal}/store/db/models.go (99%) rename {internal => server/internal}/store/db/profiles.sql.go (100%) rename {internal => server/internal}/store/db/querier.go (100%) rename {internal => server/internal}/store/db/servers_transport.sql.go (98%) rename {internal => server/internal}/store/db/settings.sql.go (100%) rename {internal => server/internal}/store/db/tcp_middlewares.sql.go (99%) rename {internal => server/internal}/store/db/tcp_router_dns_provider.sql.go (98%) rename {internal => server/internal}/store/db/tcp_routers.sql.go (99%) rename {internal => server/internal}/store/db/tcp_servers_transport.sql.go (98%) rename {internal => server/internal}/store/db/tcp_services.sql.go (99%) rename {internal => server/internal}/store/db/traefik_instances.sql.go (98%) rename {internal => server/internal}/store/db/udp_routers.sql.go (99%) rename {internal => server/internal}/store/db/udp_services.sql.go (99%) rename {internal => server/internal}/store/db/users.sql.go (100%) rename {internal => server/internal}/store/migrations/00001_init.sql (100%) rename {internal => server/internal}/store/migrations/00002_entrypoints.sql (100%) rename {internal => server/internal}/store/migrations/00003_users.sql (100%) rename {internal => server/internal}/store/migrations/00004_v05.sql (100%) rename {internal => server/internal}/store/migrations/00005_adjust_rdp.sql (100%) rename {internal => server/internal}/store/migrations/00006_add_errors.sql (100%) rename {internal => server/internal}/store/migrations/00007_v07.sql (100%) rename {internal => server/internal}/store/queries/agents.sql (100%) rename {internal => server/internal}/store/queries/audit_logs.sql (100%) rename {internal => server/internal}/store/queries/dns_providers.sql (100%) rename {internal => server/internal}/store/queries/entry_points.sql (100%) rename {internal => server/internal}/store/queries/errors.sql (100%) rename {internal => server/internal}/store/queries/http_middlewares.sql (100%) rename {internal => server/internal}/store/queries/http_router_dns_provider.sql (100%) rename {internal => server/internal}/store/queries/http_routers.sql (100%) rename {internal => server/internal}/store/queries/http_servers_transports.sql (100%) rename {internal => server/internal}/store/queries/http_services.sql (100%) rename {internal => server/internal}/store/queries/profiles.sql (100%) rename {internal => server/internal}/store/queries/servers_transport.sql (100%) rename {internal => server/internal}/store/queries/settings.sql (100%) rename {internal => server/internal}/store/queries/tcp_middlewares.sql (100%) rename {internal => server/internal}/store/queries/tcp_router_dns_provider.sql (100%) rename {internal => server/internal}/store/queries/tcp_routers.sql (100%) rename {internal => server/internal}/store/queries/tcp_servers_transport.sql (100%) rename {internal => server/internal}/store/queries/tcp_services.sql (100%) rename {internal => server/internal}/store/queries/traefik_instances.sql (100%) rename {internal => server/internal}/store/queries/udp_routers.sql (100%) rename {internal => server/internal}/store/queries/udp_services.sql (100%) rename {internal => server/internal}/store/queries/users.sql (100%) rename {internal => server/internal}/store/schema/agent.go (100%) rename {internal => server/internal}/store/schema/common.go (100%) rename {internal => server/internal}/store/schema/dns.go (100%) rename {internal => server/internal}/store/schema/middleware.go (100%) rename {internal => server/internal}/store/schema/middleware_verify.go (100%) rename {internal => server/internal}/store/schema/router.go (100%) rename {internal => server/internal}/store/schema/servers_transport.go (100%) rename {internal => server/internal}/store/schema/service.go (100%) rename {internal => server/internal}/store/schema/traefik.go (100%) rename {internal => server/internal}/store/squash_dev.go (100%) rename {internal => server/internal}/traefik/client.go (97%) rename {internal => server/internal}/traefik/config.go (97%) diff --git a/.ko.yaml b/.ko.yaml index 83b52e7..0e747d8 100644 --- a/.ko.yaml +++ b/.ko.yaml @@ -4,13 +4,14 @@ defaultPlatforms: - linux/amd64 defaultLdflags: - -s -w - - -X github.com/mizuchilabs/mantrae/pkg/build.Version={{.Git.Tag}} - - -X github.com/mizuchilabs/mantrae/pkg/build.Commit={{.Git.FullCommit}} - - -X github.com/mizuchilabs/mantrae/pkg/build.Date={{.Date}} - - -X github.com/mizuchilabs/mantrae/pkg/build.Dirty={{.Git.IsDirty}} + - -X github.com/mizuchilabs/mantrae/pkg/meta.Version={{.Git.Tag}} + - -X github.com/mizuchilabs/mantrae/pkg/meta.Commit={{.Git.FullCommit}} + - -X github.com/mizuchilabs/mantrae/pkg/meta.Date={{.Date}} + - -X github.com/mizuchilabs/mantrae/pkg/meta.Dirty={{.Git.IsDirty}} defaultLabels: org.opencontainers.image.title: "{{.Target}}" - org.opencontainers.image.description: "Mantrae is a self-hosted, open-source, Traefik dynamic config manager." + org.opencontainers.image.description: + "Mantrae is a self-hosted, open-source, Traefik dynamic config manager." org.opencontainers.image.version: "{{.Git.Tag}}" org.opencontainers.image.created: "{{.Date}}" org.opencontainers.image.revision: "{{.Git.FullCommit}}" @@ -22,6 +23,7 @@ defaultLabels: builds: - id: server + main: ./server/cmd env: - CGO_ENABLED=0 @@ -29,4 +31,3 @@ builds: main: ./agent/cmd env: - CGO_ENABLED=0 - diff --git a/Makefile b/Makefile deleted file mode 100644 index cb36a42..0000000 --- a/Makefile +++ /dev/null @@ -1,92 +0,0 @@ -BIN_SERVER=mantrae -BIN_AGENT=mae - -VERSION=$(shell git describe --tags --abbrev=0) -DATE=$(shell date -u +%Y-%m-%d) -COMMIT=$(shell git rev-parse --short HEAD) - -# Setup the -ldflags option for go build here, interpolate the variable values -LDFLAGS=-ldflags "-s -w -X github.com/mizuchilabs/mantrae/pkg/build.Version=${VERSION} -X github.com/MizuchiLabs/mantrae/pkg/build.Date=${DATE} -X github.com/MizuchiLabs/mantrae/pkg/build.Commit=${COMMIT}" - -all: clean build - -.PHONY: clean -clean: - rm -rf $(PWD)/$(BIN) $(PWD)/$(BIN)-agent $(PWD)/web/build $(PWD)/builds - -.PHONY: run -run: - go run -tags=dev . - -.PHONY: audit -audit-security: - - gosec --exclude=G104 ./... - - govulncheck -show=color ./... - - staticcheck -checks=all -f=stylish ./... - -audit: audit-security - go fmt ./... - go vet ./... - go mod tidy - go mod verify - go test -v -coverprofile cover.out ./... - go tool cover -html cover.out -o cover.html - -build-server: - go generate ./... - go build $(LDFLAGS) -o $(BIN_SERVER) main.go - -build-agent: - go build $(LDFLAGS) -o $(BIN_AGENT) agent/cmd/main.go - -docker-local: - go generate ./... - KO_DOCKER_REPO=ko.local/mantrae ko build . --bare - KO_DOCKER_REPO=ko.local/mantrae-agent ko build ./agent/cmd --bare - # Check for vulnerabilities - grype --scope all-layers ko.local/mantrae:latest - grype --scope all-layers ko.local/mantrae-agent:latest - -docker-release: - go generate ./... - KO_DOCKER_REPO=ghcr.io/mizuchilabs/mantrae ko build . --bare - KO_DOCKER_REPO=ghcr.io/mizuchilabs/mantrae-agent ko build ./agent/cmd --bare - -.PHONY: release -release: - go generate ./... - goreleaser release --clean --skip=validate - -.PHONY: snapshot -snapshot: - goreleaser release --clean --snapshot - -.PHONY: upgrade -upgrade: - go get -u && go mod tidy - cd web && pnpm update - - -.PHONY: db-up -db-up: - goose sqlite3 data/mantrae.db -dir internal/store/migrations up-by-one - -.PHONY: db-down -db-down: - goose sqlite3 data/mantrae.db -dir internal/store/migrations down - -.PHONY: db-reset -db-reset: - rm -f mantrae.db - goose sqlite3 data/mantrae.db -dir internal/store/migrations up - -.PHONY: db-status -db-status: - goose sqlite3 data/mantrae.db -dir internal/store/migrations status - -.PHONY: run -run-server: - go run main.go - -run-web: - cd web && npm run dev diff --git a/agent/cmd/main.go b/agent/cmd/main.go index e7e324f..9ff6e14 100644 --- a/agent/cmd/main.go +++ b/agent/cmd/main.go @@ -11,8 +11,8 @@ import ( "syscall" "github.com/mizuchilabs/mantrae/agent/internal/client" - "github.com/mizuchilabs/mantrae/pkg/build" "github.com/mizuchilabs/mantrae/pkg/logger" + "github.com/mizuchilabs/mantrae/pkg/meta" ) func main() { @@ -22,7 +22,7 @@ func main() { flag.Parse() if *version { - fmt.Println(build.Version) + fmt.Println(meta.Version) return } diff --git a/pkg/build/update.go b/pkg/build/update.go index e0b43f1..d1ab218 100644 --- a/pkg/build/update.go +++ b/pkg/build/update.go @@ -13,6 +13,8 @@ import ( "strconv" "strings" "time" + + "github.com/mizuchilabs/mantrae/pkg/meta" ) const ( @@ -50,13 +52,13 @@ func Update(update bool) { if !update { if compareVersions( - strings.TrimPrefix(Version, "v"), + strings.TrimPrefix(meta.Version, "v"), strings.TrimPrefix(latest.Tag, "v"), ) <= 0 { slog.Info("You are running the latest version!") return } - slog.Info("New version available!", "latest", latest.Tag, "current", Version) + slog.Info("New version available!", "latest", latest.Tag, "current", meta.Version) return } diff --git a/pkg/build/build.go b/pkg/meta/build.go similarity index 89% rename from pkg/build/build.go rename to pkg/meta/build.go index 3b04587..6fafcdc 100644 --- a/pkg/build/build.go +++ b/pkg/meta/build.go @@ -1,5 +1,5 @@ // Package build provides build information. -package build +package meta var ( Version = "unknown" diff --git a/main.go b/server/cmd/main.go similarity index 82% rename from main.go rename to server/cmd/main.go index 58665d7..fb6ea91 100644 --- a/main.go +++ b/server/cmd/main.go @@ -7,8 +7,8 @@ import ( "os/signal" "syscall" - "github.com/mizuchilabs/mantrae/internal/api/server" - "github.com/mizuchilabs/mantrae/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/api/server" + "github.com/mizuchilabs/mantrae/server/internal/config" ) func main() { diff --git a/internal/api/handler/oidc.go b/server/internal/api/handler/oidc.go similarity index 98% rename from internal/api/handler/oidc.go rename to server/internal/api/handler/oidc.go index 09edc11..4c9f0de 100644 --- a/internal/api/handler/oidc.go +++ b/server/internal/api/handler/oidc.go @@ -14,9 +14,9 @@ import ( "time" "github.com/coreos/go-oidc/v3/oidc" - "github.com/mizuchilabs/mantrae/internal/config" - "github.com/mizuchilabs/mantrae/internal/settings" - "github.com/mizuchilabs/mantrae/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/settings" + "github.com/mizuchilabs/mantrae/server/internal/store/db" "github.com/mizuchilabs/mantrae/pkg/meta" "golang.org/x/oauth2" ) diff --git a/internal/api/handler/traefik.go b/server/internal/api/handler/traefik.go similarity index 93% rename from internal/api/handler/traefik.go rename to server/internal/api/handler/traefik.go index e1d7078..cb4f572 100644 --- a/internal/api/handler/traefik.go +++ b/server/internal/api/handler/traefik.go @@ -7,9 +7,9 @@ import ( "sync" "time" - "github.com/mizuchilabs/mantrae/internal/config" - "github.com/mizuchilabs/mantrae/internal/store/db" - "github.com/mizuchilabs/mantrae/internal/traefik" + "github.com/mizuchilabs/mantrae/server/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/traefik" "github.com/mizuchilabs/mantrae/pkg/meta" "golang.org/x/sync/singleflight" "gopkg.in/yaml.v3" diff --git a/internal/api/handler/upload.go b/server/internal/api/handler/upload.go similarity index 96% rename from internal/api/handler/upload.go rename to server/internal/api/handler/upload.go index 6398887..3ebd87f 100644 --- a/internal/api/handler/upload.go +++ b/server/internal/api/handler/upload.go @@ -11,9 +11,9 @@ import ( "strconv" "time" - "github.com/mizuchilabs/mantrae/internal/config" - "github.com/mizuchilabs/mantrae/internal/storage" - "github.com/mizuchilabs/mantrae/internal/traefik" + "github.com/mizuchilabs/mantrae/server/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/storage" + "github.com/mizuchilabs/mantrae/server/internal/traefik" "github.com/traefik/traefik/v3/pkg/config/dynamic" "gopkg.in/yaml.v3" ) diff --git a/internal/api/middlewares/audit.go b/server/internal/api/middlewares/audit.go similarity index 99% rename from internal/api/middlewares/audit.go rename to server/internal/api/middlewares/audit.go index 8b9fd06..c444591 100644 --- a/internal/api/middlewares/audit.go +++ b/server/internal/api/middlewares/audit.go @@ -7,8 +7,8 @@ import ( "strings" "connectrpc.com/connect" - "github.com/mizuchilabs/mantrae/internal/config" - "github.com/mizuchilabs/mantrae/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/store/db" mantraev1 "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1" ) diff --git a/internal/api/middlewares/auth.go b/server/internal/api/middlewares/auth.go similarity index 99% rename from internal/api/middlewares/auth.go rename to server/internal/api/middlewares/auth.go index 0c74a89..a8130f5 100644 --- a/internal/api/middlewares/auth.go +++ b/server/internal/api/middlewares/auth.go @@ -8,7 +8,7 @@ import ( "strings" "connectrpc.com/connect" - "github.com/mizuchilabs/mantrae/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/config" "github.com/mizuchilabs/mantrae/pkg/meta" "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1/mantraev1connect" "golang.org/x/crypto/bcrypt" diff --git a/internal/api/middlewares/chain.go b/server/internal/api/middlewares/chain.go similarity index 91% rename from internal/api/middlewares/chain.go rename to server/internal/api/middlewares/chain.go index d5dad50..be78834 100644 --- a/internal/api/middlewares/chain.go +++ b/server/internal/api/middlewares/chain.go @@ -3,7 +3,7 @@ package middlewares import ( "net/http" - "github.com/mizuchilabs/mantrae/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/config" ) type Middleware func(http.Handler) http.Handler diff --git a/internal/api/middlewares/logging.go b/server/internal/api/middlewares/logging.go similarity index 100% rename from internal/api/middlewares/logging.go rename to server/internal/api/middlewares/logging.go diff --git a/internal/api/server/cors.go b/server/internal/api/server/cors.go similarity index 95% rename from internal/api/server/cors.go rename to server/internal/api/server/cors.go index 2743770..f8d579c 100644 --- a/internal/api/server/cors.go +++ b/server/internal/api/server/cors.go @@ -6,7 +6,7 @@ import ( "time" connectcors "connectrpc.com/cors" - "github.com/mizuchilabs/mantrae/internal/settings" + "github.com/mizuchilabs/mantrae/server/internal/settings" "github.com/rs/cors" "golang.org/x/net/http2" "golang.org/x/net/http2/h2c" diff --git a/internal/api/server/server.go b/server/internal/api/server/server.go similarity index 96% rename from internal/api/server/server.go rename to server/internal/api/server/server.go index 2fe0145..a8d19e2 100644 --- a/internal/api/server/server.go +++ b/server/internal/api/server/server.go @@ -16,11 +16,11 @@ import ( "connectrpc.com/grpcreflect" "connectrpc.com/validate" "github.com/caarlos0/env/v11" - "github.com/mizuchilabs/mantrae/internal/api/handler" - "github.com/mizuchilabs/mantrae/internal/api/middlewares" - "github.com/mizuchilabs/mantrae/internal/api/service" - "github.com/mizuchilabs/mantrae/internal/config" "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1/mantraev1connect" + "github.com/mizuchilabs/mantrae/server/internal/api/handler" + "github.com/mizuchilabs/mantrae/server/internal/api/middlewares" + "github.com/mizuchilabs/mantrae/server/internal/api/service" + "github.com/mizuchilabs/mantrae/server/internal/config" "github.com/mizuchilabs/mantrae/web" ) @@ -182,8 +182,8 @@ func (s *Server) registerServices() { log.Fatal(err) } uploadsContent := http.FileServer(http.Dir("./data/uploads")) - s.mux.Handle("/", http.FileServer(http.FS(staticContent))) s.mux.Handle("/uploads/", http.StripPrefix("/uploads/", uploadsContent)) + s.mux.Handle("/", CompressedFileHandler(staticContent)) // Health check s.mux.HandleFunc("/healthz", func(w http.ResponseWriter, r *http.Request) { diff --git a/server/internal/api/server/static.go b/server/internal/api/server/static.go new file mode 100644 index 0000000..20cd881 --- /dev/null +++ b/server/internal/api/server/static.go @@ -0,0 +1,48 @@ +package server + +import ( + "io/fs" + "mime" + "net/http" + "path/filepath" + "strings" +) + +func CompressedFileHandler(root fs.FS) http.Handler { + fileServer := http.FileServer(http.FS(root)) + + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + originalPath := r.URL.Path + accept := r.Header.Get("Accept-Encoding") + + switch { + case strings.Contains(accept, "br") && fileExists(root, originalPath+".br"): + r.URL.Path += ".br" + w.Header().Set("Content-Encoding", "br") + setContentType(w, originalPath) + + case strings.Contains(accept, "gzip") && fileExists(root, originalPath+".gz"): + r.URL.Path += ".gz" + w.Header().Set("Content-Encoding", "gzip") + setContentType(w, originalPath) + } + + fileServer.ServeHTTP(w, r) + }) +} + +func setContentType(w http.ResponseWriter, origPath string) { + ext := filepath.Ext(origPath) + if mimeType := mime.TypeByExtension(ext); mimeType != "" { + w.Header().Set("Content-Type", mimeType) + } +} + +func fileExists(fsys fs.FS, name string) bool { + f, err := fsys.Open(strings.TrimPrefix(name, "/")) + if err != nil { + return false + } + defer f.Close() + return true +} diff --git a/internal/api/service/agent.go b/server/internal/api/service/agent.go similarity index 97% rename from internal/api/service/agent.go rename to server/internal/api/service/agent.go index 76a2778..902e86b 100644 --- a/internal/api/service/agent.go +++ b/server/internal/api/service/agent.go @@ -9,9 +9,9 @@ import ( "connectrpc.com/connect" "github.com/google/uuid" - "github.com/mizuchilabs/mantrae/internal/config" - "github.com/mizuchilabs/mantrae/internal/settings" - "github.com/mizuchilabs/mantrae/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/settings" + "github.com/mizuchilabs/mantrae/server/internal/store/db" "github.com/mizuchilabs/mantrae/pkg/meta" mantraev1 "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1" ) diff --git a/internal/api/service/auditlog.go b/server/internal/api/service/auditlog.go similarity index 90% rename from internal/api/service/auditlog.go rename to server/internal/api/service/auditlog.go index 4b8eacd..41c3496 100644 --- a/internal/api/service/auditlog.go +++ b/server/internal/api/service/auditlog.go @@ -5,8 +5,8 @@ import ( "connectrpc.com/connect" - "github.com/mizuchilabs/mantrae/internal/config" - "github.com/mizuchilabs/mantrae/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/store/db" mantraev1 "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1" ) diff --git a/internal/api/service/backup.go b/server/internal/api/service/backup.go similarity index 96% rename from internal/api/service/backup.go rename to server/internal/api/service/backup.go index 3aa6c94..3bca0b2 100644 --- a/internal/api/service/backup.go +++ b/server/internal/api/service/backup.go @@ -7,8 +7,8 @@ import ( "log/slog" "connectrpc.com/connect" - "github.com/mizuchilabs/mantrae/internal/config" - "github.com/mizuchilabs/mantrae/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/store/db" mantraev1 "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1" ) diff --git a/internal/api/service/dns.go b/server/internal/api/service/dns.go similarity index 96% rename from internal/api/service/dns.go rename to server/internal/api/service/dns.go index 6456a13..b0405f6 100644 --- a/internal/api/service/dns.go +++ b/server/internal/api/service/dns.go @@ -6,9 +6,9 @@ import ( "connectrpc.com/connect" - "github.com/mizuchilabs/mantrae/internal/config" - "github.com/mizuchilabs/mantrae/internal/store/db" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" mantraev1 "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1" ) diff --git a/internal/api/service/entrypoint.go b/server/internal/api/service/entrypoint.go similarity index 98% rename from internal/api/service/entrypoint.go rename to server/internal/api/service/entrypoint.go index 48beb1e..2c5d1e3 100644 --- a/internal/api/service/entrypoint.go +++ b/server/internal/api/service/entrypoint.go @@ -6,8 +6,8 @@ import ( "connectrpc.com/connect" - "github.com/mizuchilabs/mantrae/internal/config" - "github.com/mizuchilabs/mantrae/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/store/db" mantraev1 "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1" ) diff --git a/internal/api/service/middleware.go b/server/internal/api/service/middleware.go similarity index 97% rename from internal/api/service/middleware.go rename to server/internal/api/service/middleware.go index 7d5e5ba..30e9a4a 100644 --- a/internal/api/service/middleware.go +++ b/server/internal/api/service/middleware.go @@ -10,8 +10,8 @@ import ( "connectrpc.com/connect" - "github.com/mizuchilabs/mantrae/internal/config" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" mantraev1 "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1" ) diff --git a/internal/api/service/middleware_ops.go b/server/internal/api/service/middleware_ops.go similarity index 98% rename from internal/api/service/middleware_ops.go rename to server/internal/api/service/middleware_ops.go index 9b87238..585ba76 100644 --- a/internal/api/service/middleware_ops.go +++ b/server/internal/api/service/middleware_ops.go @@ -4,9 +4,9 @@ import ( "context" "slices" - "github.com/mizuchilabs/mantrae/internal/config" - "github.com/mizuchilabs/mantrae/internal/store/db" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" mantraev1 "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1" ) diff --git a/internal/api/service/profile.go b/server/internal/api/service/profile.go similarity index 96% rename from internal/api/service/profile.go rename to server/internal/api/service/profile.go index 89fc497..22fe309 100644 --- a/internal/api/service/profile.go +++ b/server/internal/api/service/profile.go @@ -5,8 +5,8 @@ import ( "connectrpc.com/connect" - "github.com/mizuchilabs/mantrae/internal/config" - "github.com/mizuchilabs/mantrae/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/store/db" "github.com/mizuchilabs/mantrae/pkg/util" mantraev1 "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1" ) diff --git a/internal/api/service/router.go b/server/internal/api/service/router.go similarity index 98% rename from internal/api/service/router.go rename to server/internal/api/service/router.go index 6de63f5..30edce1 100644 --- a/internal/api/service/router.go +++ b/server/internal/api/service/router.go @@ -6,7 +6,7 @@ import ( "connectrpc.com/connect" - "github.com/mizuchilabs/mantrae/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/config" mantraev1 "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1" ) diff --git a/internal/api/service/router_ops.go b/server/internal/api/service/router_ops.go similarity index 98% rename from internal/api/service/router_ops.go rename to server/internal/api/service/router_ops.go index c279c57..9476d7a 100644 --- a/internal/api/service/router_ops.go +++ b/server/internal/api/service/router_ops.go @@ -4,9 +4,9 @@ import ( "context" "log/slog" - "github.com/mizuchilabs/mantrae/internal/config" - "github.com/mizuchilabs/mantrae/internal/store/db" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" mantraev1 "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1" ) diff --git a/internal/api/service/servers_transport.go b/server/internal/api/service/servers_transport.go similarity index 98% rename from internal/api/service/servers_transport.go rename to server/internal/api/service/servers_transport.go index d552681..4622de9 100644 --- a/internal/api/service/servers_transport.go +++ b/server/internal/api/service/servers_transport.go @@ -5,7 +5,7 @@ import ( "errors" "connectrpc.com/connect" - "github.com/mizuchilabs/mantrae/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/config" mantraev1 "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1" ) diff --git a/internal/api/service/servers_transport_ops.go b/server/internal/api/service/servers_transport_ops.go similarity index 97% rename from internal/api/service/servers_transport_ops.go rename to server/internal/api/service/servers_transport_ops.go index 14d28eb..570c04c 100644 --- a/internal/api/service/servers_transport_ops.go +++ b/server/internal/api/service/servers_transport_ops.go @@ -3,9 +3,9 @@ package service import ( "context" - "github.com/mizuchilabs/mantrae/internal/config" - "github.com/mizuchilabs/mantrae/internal/store/db" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" mantraev1 "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1" ) diff --git a/internal/api/service/service.go b/server/internal/api/service/service.go similarity index 98% rename from internal/api/service/service.go rename to server/internal/api/service/service.go index 146795d..a6f2837 100644 --- a/internal/api/service/service.go +++ b/server/internal/api/service/service.go @@ -7,7 +7,7 @@ import ( "connectrpc.com/connect" - "github.com/mizuchilabs/mantrae/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/config" mantraev1 "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1" ) diff --git a/internal/api/service/service_ops.go b/server/internal/api/service/service_ops.go similarity index 98% rename from internal/api/service/service_ops.go rename to server/internal/api/service/service_ops.go index d0dd45f..e800147 100644 --- a/internal/api/service/service_ops.go +++ b/server/internal/api/service/service_ops.go @@ -4,9 +4,9 @@ import ( "context" "errors" - "github.com/mizuchilabs/mantrae/internal/config" - "github.com/mizuchilabs/mantrae/internal/store/db" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" mantraev1 "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1" ) diff --git a/internal/api/service/setting.go b/server/internal/api/service/setting.go similarity index 93% rename from internal/api/service/setting.go rename to server/internal/api/service/setting.go index 91765f7..6e1805c 100644 --- a/internal/api/service/setting.go +++ b/server/internal/api/service/setting.go @@ -6,8 +6,8 @@ import ( "connectrpc.com/connect" - "github.com/mizuchilabs/mantrae/internal/config" - "github.com/mizuchilabs/mantrae/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/store/db" mantraev1 "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1" ) diff --git a/internal/api/service/traefik_instance.go b/server/internal/api/service/traefik_instance.go similarity index 94% rename from internal/api/service/traefik_instance.go rename to server/internal/api/service/traefik_instance.go index 24e0f4b..b627164 100644 --- a/internal/api/service/traefik_instance.go +++ b/server/internal/api/service/traefik_instance.go @@ -4,8 +4,8 @@ import ( "context" "connectrpc.com/connect" - "github.com/mizuchilabs/mantrae/internal/config" - "github.com/mizuchilabs/mantrae/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/store/db" mantraev1 "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1" ) diff --git a/internal/api/service/user.go b/server/internal/api/service/user.go similarity index 97% rename from internal/api/service/user.go rename to server/internal/api/service/user.go index 9fcdbe3..b627800 100644 --- a/internal/api/service/user.go +++ b/server/internal/api/service/user.go @@ -9,11 +9,11 @@ import ( "connectrpc.com/connect" "github.com/google/uuid" - "github.com/mizuchilabs/mantrae/internal/api/middlewares" - "github.com/mizuchilabs/mantrae/internal/config" - "github.com/mizuchilabs/mantrae/internal/mail" - "github.com/mizuchilabs/mantrae/internal/settings" - "github.com/mizuchilabs/mantrae/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/api/middlewares" + "github.com/mizuchilabs/mantrae/server/internal/config" + "github.com/mizuchilabs/mantrae/server/internal/mail" + "github.com/mizuchilabs/mantrae/server/internal/settings" + "github.com/mizuchilabs/mantrae/server/internal/store/db" "github.com/mizuchilabs/mantrae/pkg/meta" "github.com/mizuchilabs/mantrae/pkg/util" mantraev1 "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1" diff --git a/internal/api/service/util.go b/server/internal/api/service/util.go similarity index 88% rename from internal/api/service/util.go rename to server/internal/api/service/util.go index cbf6c42..c75f264 100644 --- a/internal/api/service/util.go +++ b/server/internal/api/service/util.go @@ -5,10 +5,10 @@ import ( "connectrpc.com/connect" - "github.com/mizuchilabs/mantrae/internal/config" - "github.com/mizuchilabs/mantrae/pkg/build" + "github.com/mizuchilabs/mantrae/pkg/meta" "github.com/mizuchilabs/mantrae/pkg/util" mantraev1 "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1" + "github.com/mizuchilabs/mantrae/server/internal/config" ) type UtilService struct { @@ -24,7 +24,7 @@ func (s *UtilService) GetVersion( req *connect.Request[mantraev1.GetVersionRequest], ) (*connect.Response[mantraev1.GetVersionResponse], error) { return connect.NewResponse(&mantraev1.GetVersionResponse{ - Version: build.Version, + Version: meta.Version, }), nil } diff --git a/internal/backup/backup.go b/server/internal/backup/backup.go similarity index 97% rename from internal/backup/backup.go rename to server/internal/backup/backup.go index 67506b9..c8dfb9a 100644 --- a/internal/backup/backup.go +++ b/server/internal/backup/backup.go @@ -15,10 +15,10 @@ import ( "sync" "time" - "github.com/mizuchilabs/mantrae/internal/settings" - "github.com/mizuchilabs/mantrae/internal/storage" - "github.com/mizuchilabs/mantrae/internal/store" - "github.com/mizuchilabs/mantrae/internal/traefik" + "github.com/mizuchilabs/mantrae/server/internal/settings" + "github.com/mizuchilabs/mantrae/server/internal/storage" + "github.com/mizuchilabs/mantrae/server/internal/store" + "github.com/mizuchilabs/mantrae/server/internal/traefik" ) const BackupPath = "backups" diff --git a/internal/config/flags.go b/server/internal/config/flags.go similarity index 89% rename from internal/config/flags.go rename to server/internal/config/flags.go index fa85f85..0c8c3ab 100644 --- a/internal/config/flags.go +++ b/server/internal/config/flags.go @@ -10,6 +10,7 @@ import ( "os" "github.com/mizuchilabs/mantrae/pkg/build" + "github.com/mizuchilabs/mantrae/pkg/meta" ) type Flags struct { @@ -28,7 +29,7 @@ func ParseFlags() { flag.CommandLine = flag.NewFlagSet(os.Args[0], flag.ExitOnError) if f.Version { - fmt.Println(build.Version) + fmt.Println(meta.Version) os.Exit(0) } diff --git a/internal/config/flags_dev.go b/server/internal/config/flags_dev.go similarity index 85% rename from internal/config/flags_dev.go rename to server/internal/config/flags_dev.go index e5c3392..eda9a9a 100644 --- a/internal/config/flags_dev.go +++ b/server/internal/config/flags_dev.go @@ -8,8 +8,9 @@ import ( "fmt" "os" - "github.com/mizuchilabs/mantrae/internal/store" "github.com/mizuchilabs/mantrae/pkg/build" + "github.com/mizuchilabs/mantrae/pkg/meta" + "github.com/mizuchilabs/mantrae/server/internal/store" ) type Flags struct { @@ -30,7 +31,7 @@ func ParseFlags() { flag.CommandLine = flag.NewFlagSet(os.Args[0], flag.ExitOnError) if f.Version { - fmt.Println(build.Version) + fmt.Println(meta.Version) os.Exit(0) } diff --git a/internal/config/setup.go b/server/internal/config/setup.go similarity index 93% rename from internal/config/setup.go rename to server/internal/config/setup.go index 529af55..025b1d5 100644 --- a/internal/config/setup.go +++ b/server/internal/config/setup.go @@ -10,10 +10,10 @@ import ( "github.com/caarlos0/env/v11" "github.com/google/uuid" - "github.com/mizuchilabs/mantrae/internal/backup" - "github.com/mizuchilabs/mantrae/internal/settings" - "github.com/mizuchilabs/mantrae/internal/store" - "github.com/mizuchilabs/mantrae/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/backup" + "github.com/mizuchilabs/mantrae/server/internal/settings" + "github.com/mizuchilabs/mantrae/server/internal/store" + "github.com/mizuchilabs/mantrae/server/internal/store/db" "github.com/mizuchilabs/mantrae/pkg/logger" "github.com/mizuchilabs/mantrae/pkg/util" ) diff --git a/internal/config/tasks.go b/server/internal/config/tasks.go similarity index 93% rename from internal/config/tasks.go rename to server/internal/config/tasks.go index 2476fe8..1b9935f 100644 --- a/internal/config/tasks.go +++ b/server/internal/config/tasks.go @@ -5,9 +5,9 @@ import ( "log/slog" "time" - "github.com/mizuchilabs/mantrae/internal/dns" - "github.com/mizuchilabs/mantrae/internal/settings" - "github.com/mizuchilabs/mantrae/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/dns" + "github.com/mizuchilabs/mantrae/server/internal/settings" + "github.com/mizuchilabs/mantrae/server/internal/store/db" ) // setupBackgroundJobs initiates essential background operations for the application. diff --git a/internal/config/zod_dev.go b/server/internal/config/zod_dev.go similarity index 100% rename from internal/config/zod_dev.go rename to server/internal/config/zod_dev.go diff --git a/internal/dns/client.go b/server/internal/dns/client.go similarity index 99% rename from internal/dns/client.go rename to server/internal/dns/client.go index f7f9179..d4dac46 100644 --- a/internal/dns/client.go +++ b/server/internal/dns/client.go @@ -6,7 +6,7 @@ import ( "fmt" "log/slog" - "github.com/mizuchilabs/mantrae/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/store/db" "github.com/mizuchilabs/mantrae/pkg/util" ) diff --git a/internal/dns/cloudflare.go b/server/internal/dns/cloudflare.go similarity index 98% rename from internal/dns/cloudflare.go rename to server/internal/dns/cloudflare.go index e4222b6..f7d88a6 100644 --- a/internal/dns/cloudflare.go +++ b/server/internal/dns/cloudflare.go @@ -6,7 +6,7 @@ import ( "log/slog" "github.com/cloudflare/cloudflare-go" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" "github.com/mizuchilabs/mantrae/pkg/util" ) diff --git a/internal/dns/powerdns.go b/server/internal/dns/powerdns.go similarity index 98% rename from internal/dns/powerdns.go rename to server/internal/dns/powerdns.go index 2ffaec1..c0169f4 100644 --- a/internal/dns/powerdns.go +++ b/server/internal/dns/powerdns.go @@ -6,7 +6,7 @@ import ( "log/slog" "github.com/joeig/go-powerdns/v3" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" "github.com/mizuchilabs/mantrae/pkg/util" ) diff --git a/internal/dns/technitium.go b/server/internal/dns/technitium.go similarity index 99% rename from internal/dns/technitium.go rename to server/internal/dns/technitium.go index baecf9f..3aa745a 100644 --- a/internal/dns/technitium.go +++ b/server/internal/dns/technitium.go @@ -11,7 +11,7 @@ import ( "net/url" "slices" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" "github.com/mizuchilabs/mantrae/pkg/util" ) diff --git a/internal/mail/mail.go b/server/internal/mail/mail.go similarity index 93% rename from internal/mail/mail.go rename to server/internal/mail/mail.go index 65c8de7..2537729 100644 --- a/internal/mail/mail.go +++ b/server/internal/mail/mail.go @@ -8,8 +8,8 @@ import ( "net/smtp" "github.com/domodwyer/mailyak/v3" - "github.com/mizuchilabs/mantrae/internal/mail/templates" - "github.com/mizuchilabs/mantrae/internal/settings" + "github.com/mizuchilabs/mantrae/server/internal/mail/templates" + "github.com/mizuchilabs/mantrae/server/internal/settings" ) type EmailConfig struct { diff --git a/internal/mail/templates/embed.go b/server/internal/mail/templates/embed.go similarity index 100% rename from internal/mail/templates/embed.go rename to server/internal/mail/templates/embed.go diff --git a/internal/mail/templates/reset-password.html b/server/internal/mail/templates/reset-password.html similarity index 100% rename from internal/mail/templates/reset-password.html rename to server/internal/mail/templates/reset-password.html diff --git a/internal/mail/templates/verify-email.html b/server/internal/mail/templates/verify-email.html similarity index 100% rename from internal/mail/templates/verify-email.html rename to server/internal/mail/templates/verify-email.html diff --git a/internal/settings/constants.go b/server/internal/settings/constants.go similarity index 100% rename from internal/settings/constants.go rename to server/internal/settings/constants.go diff --git a/internal/settings/settings.go b/server/internal/settings/settings.go similarity index 98% rename from internal/settings/settings.go rename to server/internal/settings/settings.go index 0689320..2fd211c 100644 --- a/internal/settings/settings.go +++ b/server/internal/settings/settings.go @@ -12,8 +12,8 @@ import ( "strings" "time" - "github.com/mizuchilabs/mantrae/internal/store" - "github.com/mizuchilabs/mantrae/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/store" + "github.com/mizuchilabs/mantrae/server/internal/store/db" ) // Settings defines all application settings diff --git a/internal/settings/settings_test.go b/server/internal/settings/settings_test.go similarity index 96% rename from internal/settings/settings_test.go rename to server/internal/settings/settings_test.go index 7466749..3aac390 100644 --- a/internal/settings/settings_test.go +++ b/server/internal/settings/settings_test.go @@ -6,8 +6,8 @@ import ( "testing" "time" - "github.com/mizuchilabs/mantrae/internal/store" - "github.com/mizuchilabs/mantrae/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/store" + "github.com/mizuchilabs/mantrae/server/internal/store/db" "github.com/stretchr/testify/assert" ) diff --git a/internal/settings/validate.go b/server/internal/settings/validate.go similarity index 97% rename from internal/settings/validate.go rename to server/internal/settings/validate.go index b0201ab..917207e 100644 --- a/internal/settings/validate.go +++ b/server/internal/settings/validate.go @@ -6,7 +6,7 @@ import ( "strconv" "strings" - "github.com/mizuchilabs/mantrae/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/store/db" "github.com/mizuchilabs/mantrae/pkg/util" ) diff --git a/internal/storage/local.go b/server/internal/storage/local.go similarity index 100% rename from internal/storage/local.go rename to server/internal/storage/local.go diff --git a/internal/storage/s3.go b/server/internal/storage/s3.go similarity index 98% rename from internal/storage/s3.go rename to server/internal/storage/s3.go index e3481cb..c24823e 100644 --- a/internal/storage/s3.go +++ b/server/internal/storage/s3.go @@ -12,7 +12,7 @@ import ( "github.com/aws/aws-sdk-go-v2/config" "github.com/aws/aws-sdk-go-v2/credentials" "github.com/aws/aws-sdk-go-v2/service/s3" - "github.com/mizuchilabs/mantrae/internal/settings" + "github.com/mizuchilabs/mantrae/server/internal/settings" ) type S3Config struct { diff --git a/internal/storage/types.go b/server/internal/storage/types.go similarity index 94% rename from internal/storage/types.go rename to server/internal/storage/types.go index 7233330..a9d8fda 100644 --- a/internal/storage/types.go +++ b/server/internal/storage/types.go @@ -6,7 +6,7 @@ import ( "io" "time" - "github.com/mizuchilabs/mantrae/internal/settings" + "github.com/mizuchilabs/mantrae/server/internal/settings" ) type BackendType string diff --git a/internal/store/00000_base.sql b/server/internal/store/00000_base.sql similarity index 100% rename from internal/store/00000_base.sql rename to server/internal/store/00000_base.sql diff --git a/internal/store/connection.go b/server/internal/store/connection.go similarity index 98% rename from internal/store/connection.go rename to server/internal/store/connection.go index b439a11..cb528ba 100644 --- a/internal/store/connection.go +++ b/server/internal/store/connection.go @@ -13,7 +13,7 @@ import ( "sync" "time" - "github.com/mizuchilabs/mantrae/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/store/db" "github.com/mizuchilabs/mantrae/pkg/util" "github.com/pressly/goose/v3" _ "modernc.org/sqlite" diff --git a/internal/store/db/agents.sql.go b/server/internal/store/db/agents.sql.go similarity index 98% rename from internal/store/db/agents.sql.go rename to server/internal/store/db/agents.sql.go index 5da2d67..a2880cf 100644 --- a/internal/store/db/agents.sql.go +++ b/server/internal/store/db/agents.sql.go @@ -8,7 +8,7 @@ package db import ( "context" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" ) const countAgents = `-- name: CountAgents :one diff --git a/internal/store/db/audit_logs.sql.go b/server/internal/store/db/audit_logs.sql.go similarity index 100% rename from internal/store/db/audit_logs.sql.go rename to server/internal/store/db/audit_logs.sql.go diff --git a/internal/store/db/conversion.go b/server/internal/store/db/conversion.go similarity index 99% rename from internal/store/db/conversion.go rename to server/internal/store/db/conversion.go index d59dbfa..7b123bd 100644 --- a/internal/store/db/conversion.go +++ b/server/internal/store/db/conversion.go @@ -7,7 +7,7 @@ import ( "log/slog" "time" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" mantraev1 "github.com/mizuchilabs/mantrae/proto/gen/mantrae/v1" "google.golang.org/protobuf/types/known/structpb" "google.golang.org/protobuf/types/known/timestamppb" diff --git a/internal/store/db/db.go b/server/internal/store/db/db.go similarity index 100% rename from internal/store/db/db.go rename to server/internal/store/db/db.go diff --git a/internal/store/db/dns_providers.sql.go b/server/internal/store/db/dns_providers.sql.go similarity index 98% rename from internal/store/db/dns_providers.sql.go rename to server/internal/store/db/dns_providers.sql.go index 1c757aa..da50b43 100644 --- a/internal/store/db/dns_providers.sql.go +++ b/server/internal/store/db/dns_providers.sql.go @@ -8,7 +8,7 @@ package db import ( "context" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" ) const countDnsProviders = `-- name: CountDnsProviders :one diff --git a/internal/store/db/entry_points.sql.go b/server/internal/store/db/entry_points.sql.go similarity index 100% rename from internal/store/db/entry_points.sql.go rename to server/internal/store/db/entry_points.sql.go diff --git a/internal/store/db/errors.sql.go b/server/internal/store/db/errors.sql.go similarity index 100% rename from internal/store/db/errors.sql.go rename to server/internal/store/db/errors.sql.go diff --git a/internal/store/db/http_middlewares.sql.go b/server/internal/store/db/http_middlewares.sql.go similarity index 99% rename from internal/store/db/http_middlewares.sql.go rename to server/internal/store/db/http_middlewares.sql.go index 5546033..c164ba7 100644 --- a/internal/store/db/http_middlewares.sql.go +++ b/server/internal/store/db/http_middlewares.sql.go @@ -8,7 +8,7 @@ package db import ( "context" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" ) const countHttpMiddlewares = `-- name: CountHttpMiddlewares :one diff --git a/internal/store/db/http_router_dns_provider.sql.go b/server/internal/store/db/http_router_dns_provider.sql.go similarity index 98% rename from internal/store/db/http_router_dns_provider.sql.go rename to server/internal/store/db/http_router_dns_provider.sql.go index a652b1a..929730f 100644 --- a/internal/store/db/http_router_dns_provider.sql.go +++ b/server/internal/store/db/http_router_dns_provider.sql.go @@ -8,7 +8,7 @@ package db import ( "context" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" ) const createHttpRouterDNSProvider = `-- name: CreateHttpRouterDNSProvider :exec diff --git a/internal/store/db/http_routers.sql.go b/server/internal/store/db/http_routers.sql.go similarity index 99% rename from internal/store/db/http_routers.sql.go rename to server/internal/store/db/http_routers.sql.go index ec86987..0f7819d 100644 --- a/internal/store/db/http_routers.sql.go +++ b/server/internal/store/db/http_routers.sql.go @@ -8,7 +8,7 @@ package db import ( "context" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" ) const countHttpRouters = `-- name: CountHttpRouters :one diff --git a/internal/store/db/http_servers_transports.sql.go b/server/internal/store/db/http_servers_transports.sql.go similarity index 98% rename from internal/store/db/http_servers_transports.sql.go rename to server/internal/store/db/http_servers_transports.sql.go index 22f3323..c68144d 100644 --- a/internal/store/db/http_servers_transports.sql.go +++ b/server/internal/store/db/http_servers_transports.sql.go @@ -8,7 +8,7 @@ package db import ( "context" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" ) const countHttpServersTransports = `-- name: CountHttpServersTransports :one diff --git a/internal/store/db/http_services.sql.go b/server/internal/store/db/http_services.sql.go similarity index 99% rename from internal/store/db/http_services.sql.go rename to server/internal/store/db/http_services.sql.go index 9986837..e14c678 100644 --- a/internal/store/db/http_services.sql.go +++ b/server/internal/store/db/http_services.sql.go @@ -8,7 +8,7 @@ package db import ( "context" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" ) const countHttpServices = `-- name: CountHttpServices :one diff --git a/internal/store/db/models.go b/server/internal/store/db/models.go similarity index 99% rename from internal/store/db/models.go rename to server/internal/store/db/models.go index e43da9f..037da2d 100644 --- a/internal/store/db/models.go +++ b/server/internal/store/db/models.go @@ -7,7 +7,7 @@ package db import ( "time" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" ) type Agent struct { diff --git a/internal/store/db/profiles.sql.go b/server/internal/store/db/profiles.sql.go similarity index 100% rename from internal/store/db/profiles.sql.go rename to server/internal/store/db/profiles.sql.go diff --git a/internal/store/db/querier.go b/server/internal/store/db/querier.go similarity index 100% rename from internal/store/db/querier.go rename to server/internal/store/db/querier.go diff --git a/internal/store/db/servers_transport.sql.go b/server/internal/store/db/servers_transport.sql.go similarity index 98% rename from internal/store/db/servers_transport.sql.go rename to server/internal/store/db/servers_transport.sql.go index f60aff5..ca01365 100644 --- a/internal/store/db/servers_transport.sql.go +++ b/server/internal/store/db/servers_transport.sql.go @@ -9,7 +9,7 @@ import ( "context" "time" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" ) const countServersTransportsByAgent = `-- name: CountServersTransportsByAgent :one diff --git a/internal/store/db/settings.sql.go b/server/internal/store/db/settings.sql.go similarity index 100% rename from internal/store/db/settings.sql.go rename to server/internal/store/db/settings.sql.go diff --git a/internal/store/db/tcp_middlewares.sql.go b/server/internal/store/db/tcp_middlewares.sql.go similarity index 99% rename from internal/store/db/tcp_middlewares.sql.go rename to server/internal/store/db/tcp_middlewares.sql.go index 20dd870..cc6bb56 100644 --- a/internal/store/db/tcp_middlewares.sql.go +++ b/server/internal/store/db/tcp_middlewares.sql.go @@ -8,7 +8,7 @@ package db import ( "context" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" ) const countTcpMiddlewares = `-- name: CountTcpMiddlewares :one diff --git a/internal/store/db/tcp_router_dns_provider.sql.go b/server/internal/store/db/tcp_router_dns_provider.sql.go similarity index 98% rename from internal/store/db/tcp_router_dns_provider.sql.go rename to server/internal/store/db/tcp_router_dns_provider.sql.go index 05c2b98..2378cae 100644 --- a/internal/store/db/tcp_router_dns_provider.sql.go +++ b/server/internal/store/db/tcp_router_dns_provider.sql.go @@ -8,7 +8,7 @@ package db import ( "context" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" ) const createTcpRouterDNSProvider = `-- name: CreateTcpRouterDNSProvider :exec diff --git a/internal/store/db/tcp_routers.sql.go b/server/internal/store/db/tcp_routers.sql.go similarity index 99% rename from internal/store/db/tcp_routers.sql.go rename to server/internal/store/db/tcp_routers.sql.go index 6c0dd3e..5533785 100644 --- a/internal/store/db/tcp_routers.sql.go +++ b/server/internal/store/db/tcp_routers.sql.go @@ -8,7 +8,7 @@ package db import ( "context" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" ) const countTcpRouters = `-- name: CountTcpRouters :one diff --git a/internal/store/db/tcp_servers_transport.sql.go b/server/internal/store/db/tcp_servers_transport.sql.go similarity index 98% rename from internal/store/db/tcp_servers_transport.sql.go rename to server/internal/store/db/tcp_servers_transport.sql.go index 24fd5a8..3c0427c 100644 --- a/internal/store/db/tcp_servers_transport.sql.go +++ b/server/internal/store/db/tcp_servers_transport.sql.go @@ -8,7 +8,7 @@ package db import ( "context" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" ) const countTcpServersTransports = `-- name: CountTcpServersTransports :one diff --git a/internal/store/db/tcp_services.sql.go b/server/internal/store/db/tcp_services.sql.go similarity index 99% rename from internal/store/db/tcp_services.sql.go rename to server/internal/store/db/tcp_services.sql.go index 7b2bbf1..cc33bd5 100644 --- a/internal/store/db/tcp_services.sql.go +++ b/server/internal/store/db/tcp_services.sql.go @@ -8,7 +8,7 @@ package db import ( "context" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" ) const countTcpServices = `-- name: CountTcpServices :one diff --git a/internal/store/db/traefik_instances.sql.go b/server/internal/store/db/traefik_instances.sql.go similarity index 98% rename from internal/store/db/traefik_instances.sql.go rename to server/internal/store/db/traefik_instances.sql.go index 75a5578..2aad5ae 100644 --- a/internal/store/db/traefik_instances.sql.go +++ b/server/internal/store/db/traefik_instances.sql.go @@ -8,7 +8,7 @@ package db import ( "context" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" ) const countTraefikInstances = `-- name: CountTraefikInstances :one diff --git a/internal/store/db/udp_routers.sql.go b/server/internal/store/db/udp_routers.sql.go similarity index 99% rename from internal/store/db/udp_routers.sql.go rename to server/internal/store/db/udp_routers.sql.go index 85472cd..93b48dc 100644 --- a/internal/store/db/udp_routers.sql.go +++ b/server/internal/store/db/udp_routers.sql.go @@ -8,7 +8,7 @@ package db import ( "context" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" ) const countUdpRouters = `-- name: CountUdpRouters :one diff --git a/internal/store/db/udp_services.sql.go b/server/internal/store/db/udp_services.sql.go similarity index 99% rename from internal/store/db/udp_services.sql.go rename to server/internal/store/db/udp_services.sql.go index 9d57690..4f7e0ae 100644 --- a/internal/store/db/udp_services.sql.go +++ b/server/internal/store/db/udp_services.sql.go @@ -8,7 +8,7 @@ package db import ( "context" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" ) const countUdpServices = `-- name: CountUdpServices :one diff --git a/internal/store/db/users.sql.go b/server/internal/store/db/users.sql.go similarity index 100% rename from internal/store/db/users.sql.go rename to server/internal/store/db/users.sql.go diff --git a/internal/store/migrations/00001_init.sql b/server/internal/store/migrations/00001_init.sql similarity index 100% rename from internal/store/migrations/00001_init.sql rename to server/internal/store/migrations/00001_init.sql diff --git a/internal/store/migrations/00002_entrypoints.sql b/server/internal/store/migrations/00002_entrypoints.sql similarity index 100% rename from internal/store/migrations/00002_entrypoints.sql rename to server/internal/store/migrations/00002_entrypoints.sql diff --git a/internal/store/migrations/00003_users.sql b/server/internal/store/migrations/00003_users.sql similarity index 100% rename from internal/store/migrations/00003_users.sql rename to server/internal/store/migrations/00003_users.sql diff --git a/internal/store/migrations/00004_v05.sql b/server/internal/store/migrations/00004_v05.sql similarity index 100% rename from internal/store/migrations/00004_v05.sql rename to server/internal/store/migrations/00004_v05.sql diff --git a/internal/store/migrations/00005_adjust_rdp.sql b/server/internal/store/migrations/00005_adjust_rdp.sql similarity index 100% rename from internal/store/migrations/00005_adjust_rdp.sql rename to server/internal/store/migrations/00005_adjust_rdp.sql diff --git a/internal/store/migrations/00006_add_errors.sql b/server/internal/store/migrations/00006_add_errors.sql similarity index 100% rename from internal/store/migrations/00006_add_errors.sql rename to server/internal/store/migrations/00006_add_errors.sql diff --git a/internal/store/migrations/00007_v07.sql b/server/internal/store/migrations/00007_v07.sql similarity index 100% rename from internal/store/migrations/00007_v07.sql rename to server/internal/store/migrations/00007_v07.sql diff --git a/internal/store/queries/agents.sql b/server/internal/store/queries/agents.sql similarity index 100% rename from internal/store/queries/agents.sql rename to server/internal/store/queries/agents.sql diff --git a/internal/store/queries/audit_logs.sql b/server/internal/store/queries/audit_logs.sql similarity index 100% rename from internal/store/queries/audit_logs.sql rename to server/internal/store/queries/audit_logs.sql diff --git a/internal/store/queries/dns_providers.sql b/server/internal/store/queries/dns_providers.sql similarity index 100% rename from internal/store/queries/dns_providers.sql rename to server/internal/store/queries/dns_providers.sql diff --git a/internal/store/queries/entry_points.sql b/server/internal/store/queries/entry_points.sql similarity index 100% rename from internal/store/queries/entry_points.sql rename to server/internal/store/queries/entry_points.sql diff --git a/internal/store/queries/errors.sql b/server/internal/store/queries/errors.sql similarity index 100% rename from internal/store/queries/errors.sql rename to server/internal/store/queries/errors.sql diff --git a/internal/store/queries/http_middlewares.sql b/server/internal/store/queries/http_middlewares.sql similarity index 100% rename from internal/store/queries/http_middlewares.sql rename to server/internal/store/queries/http_middlewares.sql diff --git a/internal/store/queries/http_router_dns_provider.sql b/server/internal/store/queries/http_router_dns_provider.sql similarity index 100% rename from internal/store/queries/http_router_dns_provider.sql rename to server/internal/store/queries/http_router_dns_provider.sql diff --git a/internal/store/queries/http_routers.sql b/server/internal/store/queries/http_routers.sql similarity index 100% rename from internal/store/queries/http_routers.sql rename to server/internal/store/queries/http_routers.sql diff --git a/internal/store/queries/http_servers_transports.sql b/server/internal/store/queries/http_servers_transports.sql similarity index 100% rename from internal/store/queries/http_servers_transports.sql rename to server/internal/store/queries/http_servers_transports.sql diff --git a/internal/store/queries/http_services.sql b/server/internal/store/queries/http_services.sql similarity index 100% rename from internal/store/queries/http_services.sql rename to server/internal/store/queries/http_services.sql diff --git a/internal/store/queries/profiles.sql b/server/internal/store/queries/profiles.sql similarity index 100% rename from internal/store/queries/profiles.sql rename to server/internal/store/queries/profiles.sql diff --git a/internal/store/queries/servers_transport.sql b/server/internal/store/queries/servers_transport.sql similarity index 100% rename from internal/store/queries/servers_transport.sql rename to server/internal/store/queries/servers_transport.sql diff --git a/internal/store/queries/settings.sql b/server/internal/store/queries/settings.sql similarity index 100% rename from internal/store/queries/settings.sql rename to server/internal/store/queries/settings.sql diff --git a/internal/store/queries/tcp_middlewares.sql b/server/internal/store/queries/tcp_middlewares.sql similarity index 100% rename from internal/store/queries/tcp_middlewares.sql rename to server/internal/store/queries/tcp_middlewares.sql diff --git a/internal/store/queries/tcp_router_dns_provider.sql b/server/internal/store/queries/tcp_router_dns_provider.sql similarity index 100% rename from internal/store/queries/tcp_router_dns_provider.sql rename to server/internal/store/queries/tcp_router_dns_provider.sql diff --git a/internal/store/queries/tcp_routers.sql b/server/internal/store/queries/tcp_routers.sql similarity index 100% rename from internal/store/queries/tcp_routers.sql rename to server/internal/store/queries/tcp_routers.sql diff --git a/internal/store/queries/tcp_servers_transport.sql b/server/internal/store/queries/tcp_servers_transport.sql similarity index 100% rename from internal/store/queries/tcp_servers_transport.sql rename to server/internal/store/queries/tcp_servers_transport.sql diff --git a/internal/store/queries/tcp_services.sql b/server/internal/store/queries/tcp_services.sql similarity index 100% rename from internal/store/queries/tcp_services.sql rename to server/internal/store/queries/tcp_services.sql diff --git a/internal/store/queries/traefik_instances.sql b/server/internal/store/queries/traefik_instances.sql similarity index 100% rename from internal/store/queries/traefik_instances.sql rename to server/internal/store/queries/traefik_instances.sql diff --git a/internal/store/queries/udp_routers.sql b/server/internal/store/queries/udp_routers.sql similarity index 100% rename from internal/store/queries/udp_routers.sql rename to server/internal/store/queries/udp_routers.sql diff --git a/internal/store/queries/udp_services.sql b/server/internal/store/queries/udp_services.sql similarity index 100% rename from internal/store/queries/udp_services.sql rename to server/internal/store/queries/udp_services.sql diff --git a/internal/store/queries/users.sql b/server/internal/store/queries/users.sql similarity index 100% rename from internal/store/queries/users.sql rename to server/internal/store/queries/users.sql diff --git a/internal/store/schema/agent.go b/server/internal/store/schema/agent.go similarity index 100% rename from internal/store/schema/agent.go rename to server/internal/store/schema/agent.go diff --git a/internal/store/schema/common.go b/server/internal/store/schema/common.go similarity index 100% rename from internal/store/schema/common.go rename to server/internal/store/schema/common.go diff --git a/internal/store/schema/dns.go b/server/internal/store/schema/dns.go similarity index 100% rename from internal/store/schema/dns.go rename to server/internal/store/schema/dns.go diff --git a/internal/store/schema/middleware.go b/server/internal/store/schema/middleware.go similarity index 100% rename from internal/store/schema/middleware.go rename to server/internal/store/schema/middleware.go diff --git a/internal/store/schema/middleware_verify.go b/server/internal/store/schema/middleware_verify.go similarity index 100% rename from internal/store/schema/middleware_verify.go rename to server/internal/store/schema/middleware_verify.go diff --git a/internal/store/schema/router.go b/server/internal/store/schema/router.go similarity index 100% rename from internal/store/schema/router.go rename to server/internal/store/schema/router.go diff --git a/internal/store/schema/servers_transport.go b/server/internal/store/schema/servers_transport.go similarity index 100% rename from internal/store/schema/servers_transport.go rename to server/internal/store/schema/servers_transport.go diff --git a/internal/store/schema/service.go b/server/internal/store/schema/service.go similarity index 100% rename from internal/store/schema/service.go rename to server/internal/store/schema/service.go diff --git a/internal/store/schema/traefik.go b/server/internal/store/schema/traefik.go similarity index 100% rename from internal/store/schema/traefik.go rename to server/internal/store/schema/traefik.go diff --git a/internal/store/squash_dev.go b/server/internal/store/squash_dev.go similarity index 100% rename from internal/store/squash_dev.go rename to server/internal/store/squash_dev.go diff --git a/internal/traefik/client.go b/server/internal/traefik/client.go similarity index 97% rename from internal/traefik/client.go rename to server/internal/traefik/client.go index ba706d8..db806c8 100644 --- a/internal/traefik/client.go +++ b/server/internal/traefik/client.go @@ -11,8 +11,8 @@ import ( "net/http" "time" - "github.com/mizuchilabs/mantrae/internal/store/db" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" "github.com/mizuchilabs/mantrae/pkg/meta" ) diff --git a/internal/traefik/config.go b/server/internal/traefik/config.go similarity index 97% rename from internal/traefik/config.go rename to server/internal/traefik/config.go index bb72981..f3a9594 100644 --- a/internal/traefik/config.go +++ b/server/internal/traefik/config.go @@ -7,9 +7,9 @@ import ( "os" "time" - "github.com/mizuchilabs/mantrae/internal/storage" - "github.com/mizuchilabs/mantrae/internal/store/db" - "github.com/mizuchilabs/mantrae/internal/store/schema" + "github.com/mizuchilabs/mantrae/server/internal/storage" + "github.com/mizuchilabs/mantrae/server/internal/store/db" + "github.com/mizuchilabs/mantrae/server/internal/store/schema" "github.com/traefik/traefik/v3/pkg/config/dynamic" "gopkg.in/yaml.v3" ) diff --git a/taskfile.yaml b/taskfile.yaml index 6a4337a..9e13552 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -3,11 +3,24 @@ version: "3" output: prefixed env: + CGO_ENABLED: 0 IMAGE_SERVER_DEV: ko.local/mantrae IMAGE_AGENT_DEV: ko.local/mantrae-agent IMAGE_SERVER_PROD: ghcr.io/mizuchilabs/mantrae IMAGE_AGENT_PROD: ghcr.io/mizuchilabs/mantrae-agent +vars: + VERSION: + sh: git describe --tags --abbrev=0 + COMMIT: + sh: git rev-parse --short HEAD + DATE: + sh: date -u +%Y-%m-%d + LDFLAGS: >- + -s -w -X 'github.com/mizuchilabs/mantrae/pkg/meta.Version={{.VERSION}}' -X + 'github.com/mizuchilabs/mantrae/pkg/meta.Commit={{.COMMIT}}' -X + 'github.com/mizuchilabs/mantrae/pkg/meta.Date={{.DATE}}' + tasks: dev: desc: Run Go backend and Vite frontend concurrently @@ -16,7 +29,7 @@ tasks: backend: desc: Run Go backend cmds: - - go run main.go + - go run server/cmd/main.go silent: false frontend: @@ -29,8 +42,7 @@ tasks: agent: desc: Run Go agent cmds: - - go run main.go - dir: cmd/agent + - go run agent/cmd/main.go silent: false # 󰚰 Update deps @@ -46,18 +58,17 @@ tasks: cmds: - buf generate --clean - sqlc generate - - go run -tags dev main.go -zod + - go run -tags dev server/cmd/main.go -zod #  Build binary build: desc: Build Go binary deps: [build:frontend] cmds: - - go build -o bin/server ./cmd/server - sources: - - "**/*.go" - generates: - - bin/server + - go build -o bin/server -ldflags="{{.LDFLAGS}}" ./server/cmd + - go build -o bin/agent -ldflags="{{.LDFLAGS}}" ./agent/cmd + - upx -9 bin/server + - upx -9 bin/agent # 🏗 Build frontend build:frontend: diff --git a/web/package.json b/web/package.json index aa71611..560f7bd 100644 --- a/web/package.json +++ b/web/package.json @@ -47,6 +47,7 @@ "typescript": "^5.8.3", "typescript-eslint": "^8.38.0", "vite": "^7.0.6", + "vite-plugin-compression2": "^2.2.0", "yaml": "^2.8.0", "zod": "^4.0.10" }, diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index e8b8954..6498b7a 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -123,6 +123,9 @@ importers: vite: specifier: ^7.0.6 version: 7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0) + vite-plugin-compression2: + specifier: ^2.2.0 + version: 2.2.0(rollup@4.45.3) yaml: specifier: ^2.8.0 version: 2.8.0 @@ -439,6 +442,15 @@ packages: '@poppinss/macroable@1.0.5': resolution: {integrity: sha512-6u61y1HHd090MEk1Av0/1btDmm2Hh/+XoJj+HgFYRh9koUPI822ybJbwLHuqjLNCiY+o1gRykg2igEqOf/VBZw==} + '@rollup/pluginutils@5.2.0': + resolution: {integrity: sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/rollup-android-arm-eabi@4.45.3': resolution: {integrity: sha512-8oQkCTve4H4B4JpmD2FV7fV2ZPTxJHN//bRhCqPUU8v6c5APlxteAXyc7BFaEb4aGpUzrPLU4PoAcGhwmRzZTA==} cpu: [arm] @@ -1057,6 +1069,9 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -1746,6 +1761,9 @@ packages: resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} engines: {node: '>=6'} + tar-mini@0.2.0: + resolution: {integrity: sha512-+qfUHz700DWnRutdUsxRRVZ38G1Qr27OetwaMYTdg8hcPxf46U0S1Zf76dQMWRBmusOt2ZCK5kbIaiLkoGO7WQ==} + tar@7.4.3: resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} engines: {node: '>=18'} @@ -1863,6 +1881,9 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + vite-plugin-compression2@2.2.0: + resolution: {integrity: sha512-7BZlU2mBHbqoBGy0ARkn3tv/7LC/2h8ewVDpG/cyH8iSzLw6E/yH6P4oBOEvchkQxNpl+B5W6rFR5fdSwfDhMA==} + vite@7.0.6: resolution: {integrity: sha512-MHFiOENNBd+Bd9uvc8GEsIzdkn1JxMmEeYX35tI3fv0sJBUTfW5tQsoaOwuY4KhBI09A3dUJ/DXf2yxPVPUceg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2197,6 +2218,14 @@ snapshots: '@poppinss/macroable@1.0.5': optional: true + '@rollup/pluginutils@5.2.0(rollup@4.45.3)': + dependencies: + '@types/estree': 1.0.8 + estree-walker: 2.0.2 + picomatch: 4.0.3 + optionalDependencies: + rollup: 4.45.3 + '@rollup/rollup-android-arm-eabi@4.45.3': optional: true @@ -2865,6 +2894,8 @@ snapshots: estraverse@5.3.0: {} + estree-walker@2.0.2: {} + esutils@2.0.3: {} fast-check@3.23.2: @@ -3499,6 +3530,8 @@ snapshots: tapable@2.2.2: {} + tar-mini@0.2.0: {} + tar@7.4.3: dependencies: '@isaacs/fs-minipass': 4.0.1 @@ -3617,6 +3650,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 + vite-plugin-compression2@2.2.0(rollup@4.45.3): + dependencies: + '@rollup/pluginutils': 5.2.0(rollup@4.45.3) + tar-mini: 0.2.0 + transitivePeerDependencies: + - rollup + vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(yaml@2.8.0): dependencies: esbuild: 0.25.8 diff --git a/web/vite.config.ts b/web/vite.config.ts index f98d933..d09560b 100644 --- a/web/vite.config.ts +++ b/web/vite.config.ts @@ -1,11 +1,12 @@ -import { sveltekit } from '@sveltejs/kit/vite'; -import { defineConfig } from 'vite'; -import tailwindcss from '@tailwindcss/vite'; +import { sveltekit } from "@sveltejs/kit/vite"; +import { defineConfig } from "vite"; +import tailwindcss from "@tailwindcss/vite"; +import { compression } from "vite-plugin-compression2"; export default defineConfig({ - plugins: [tailwindcss(), sveltekit()], + plugins: [tailwindcss(), sveltekit(), compression()], define: {}, server: { - host: '127.0.0.1' - } + host: "127.0.0.1", + }, });