mirror of
https://github.com/chrislusf/seaweedfs
synced 2025-07-04 10:42:47 +02:00
* init version * relocate * add s3 bucket link * refactor handlers into weed/admin folder * fix login logout * adding favicon * remove fall back to http get topology * grpc dial option, disk total capacity * show filer count * fix each volume disk usage * add filers to dashboard * adding hosts, volumes, collections * refactor code and menu * remove "refresh" button * fix data for collections * rename cluster hosts into volume servers * add masters, filers * reorder * adding file browser * create folder and upload files * add filer version, created at time * remove mock data * remove fields * fix submenu item highlighting * fix bucket creation * purge files * delete multiple * fix bucket creation * remove region from buckets * add object store with buckets and users * rendering permission * refactor * get bucket objects and size * link to file browser * add file size and count for collections page * paginate the volumes * fix possible SSRF https://github.com/seaweedfs/seaweedfs/pull/6928/checks?check_run_id=45108469801 * Update weed/command/admin.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update weed/command/admin.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix build * import * remove filer CLI option * remove filer option * remove CLI options --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
165 lines
No EOL
4.8 KiB
Makefile
165 lines
No EOL
4.8 KiB
Makefile
# SeaweedFS Admin Component Makefile
|
|
|
|
# Variables
|
|
ADMIN_DIR := .
|
|
VIEW_DIR := $(ADMIN_DIR)/view
|
|
STATIC_DIR := $(ADMIN_DIR)/static
|
|
TEMPL_FILES := $(shell find $(VIEW_DIR) -name "*.templ")
|
|
TEMPL_GO_FILES := $(TEMPL_FILES:.templ=_templ.go)
|
|
GO_FILES := $(shell find $(ADMIN_DIR) -name "*.go" -not -name "*_templ.go")
|
|
BUILD_DIR := ../..
|
|
WEED_BINARY := $(BUILD_DIR)/weed
|
|
|
|
# Default target
|
|
.PHONY: all
|
|
all: build
|
|
|
|
# Install templ if not present
|
|
.PHONY: install-templ
|
|
install-templ:
|
|
@which templ > /dev/null || (echo "Installing templ..." && go install github.com/a-h/templ/cmd/templ@latest)
|
|
|
|
# Generate templ files
|
|
.PHONY: generate
|
|
generate: install-templ
|
|
@echo "Generating templ files..."
|
|
@templ generate
|
|
@echo "Generated: $(TEMPL_GO_FILES)"
|
|
|
|
# Clean generated files
|
|
.PHONY: clean-templ
|
|
clean-templ:
|
|
@echo "Cleaning generated templ files..."
|
|
@find $(VIEW_DIR) -name "*_templ.go" -delete
|
|
@echo "Cleaned templ files"
|
|
|
|
# Watch for changes and regenerate
|
|
.PHONY: watch
|
|
watch: install-templ
|
|
@echo "Watching for templ file changes..."
|
|
@templ generate --watch
|
|
|
|
# Build the main weed binary with admin component
|
|
.PHONY: build
|
|
build: generate
|
|
@echo "Building weed binary with admin component..."
|
|
@cd $(BUILD_DIR) && go build -o weed ./weed
|
|
@echo "Built: $(BUILD_DIR)/weed"
|
|
|
|
# Test the admin component
|
|
.PHONY: test
|
|
test: generate
|
|
@echo "Running admin component tests..."
|
|
@go test ./...
|
|
|
|
# Run the admin server via weed command
|
|
.PHONY: run
|
|
run: build
|
|
@echo "Starting admin server via weed command..."
|
|
@cd $(BUILD_DIR) && ./weed admin
|
|
|
|
# Development server with auto-reload
|
|
.PHONY: dev
|
|
dev: generate
|
|
@echo "Starting development server with auto-reload..."
|
|
@echo "Note: You'll need to manually restart the server when Go files change"
|
|
@cd $(BUILD_DIR) && ./weed admin -port=23647 &
|
|
@$(MAKE) watch
|
|
|
|
# Lint the code
|
|
.PHONY: lint
|
|
lint:
|
|
@echo "Linting admin component..."
|
|
@golangci-lint run ./...
|
|
|
|
# Format the code
|
|
.PHONY: fmt
|
|
fmt:
|
|
@echo "Formatting Go code..."
|
|
@go fmt ./...
|
|
@echo "Formatting templ files..."
|
|
@templ fmt $(VIEW_DIR)
|
|
|
|
# Validate static files exist
|
|
.PHONY: validate-static
|
|
validate-static:
|
|
@echo "Validating static files..."
|
|
@test -f $(STATIC_DIR)/css/admin.css || (echo "Missing: admin.css" && exit 1)
|
|
@test -f $(STATIC_DIR)/js/admin.js || (echo "Missing: admin.js" && exit 1)
|
|
@echo "Static files validated"
|
|
|
|
# Check dependencies
|
|
.PHONY: deps
|
|
deps:
|
|
@echo "Checking dependencies..."
|
|
@go mod tidy
|
|
@go mod verify
|
|
|
|
# Clean all build artifacts
|
|
.PHONY: clean
|
|
clean: clean-templ
|
|
@echo "Cleaning build artifacts..."
|
|
@rm -f $(BUILD_DIR)/weed 2>/dev/null || true
|
|
@echo "Cleaned build artifacts"
|
|
|
|
# Install dependencies
|
|
.PHONY: install-deps
|
|
install-deps:
|
|
@echo "Installing Go dependencies..."
|
|
@go mod download
|
|
@$(MAKE) install-templ
|
|
|
|
# Production build
|
|
.PHONY: build-prod
|
|
build-prod: clean generate validate-static
|
|
@echo "Building production binary..."
|
|
@cd $(BUILD_DIR) && CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o weed-linux-amd64 ./weed
|
|
@echo "Built production binary: $(BUILD_DIR)/weed-linux-amd64"
|
|
|
|
# Docker build (if needed)
|
|
.PHONY: docker-build
|
|
docker-build: generate
|
|
@echo "Building Docker image with admin component..."
|
|
@cd $(BUILD_DIR) && docker build -t seaweedfs/seaweedfs:latest .
|
|
|
|
# Help target
|
|
.PHONY: help
|
|
help:
|
|
@echo "SeaweedFS Admin Component Makefile"
|
|
@echo ""
|
|
@echo "Available targets:"
|
|
@echo " all - Build the weed binary with admin component (default)"
|
|
@echo " generate - Generate templ files from templates"
|
|
@echo " build - Build weed binary with admin component"
|
|
@echo " build-prod - Build production binary"
|
|
@echo " run - Run admin server via weed command"
|
|
@echo " dev - Start development server with template watching"
|
|
@echo " test - Run tests"
|
|
@echo " watch - Watch for template changes and regenerate"
|
|
@echo " clean - Clean all build artifacts"
|
|
@echo " clean-templ - Clean generated template files"
|
|
@echo " fmt - Format Go and templ code"
|
|
@echo " lint - Lint the code"
|
|
@echo " deps - Check and tidy dependencies"
|
|
@echo " install-deps - Install all dependencies"
|
|
@echo " install-templ - Install templ compiler"
|
|
@echo " validate-static - Validate static files exist"
|
|
@echo " docker-build - Build Docker image"
|
|
@echo " help - Show this help message"
|
|
@echo ""
|
|
@echo "Examples:"
|
|
@echo " make generate # Generate templates"
|
|
@echo " make build # Build weed binary"
|
|
@echo " make run # Start admin server"
|
|
@echo " make dev # Development mode with auto-reload"
|
|
|
|
# Make sure generated files are up to date before building
|
|
$(WEED_BINARY): $(TEMPL_GO_FILES) $(GO_FILES)
|
|
@$(MAKE) build
|
|
|
|
# Auto-generate templ files when .templ files change
|
|
%_templ.go: %.templ
|
|
@echo "Regenerating $@ from $<"
|
|
@templ generate
|
|
|
|
.PHONY: $(TEMPL_GO_FILES) |