diff --git a/.env.example b/.env.example deleted file mode 100644 index b7266f9..0000000 --- a/.env.example +++ /dev/null @@ -1,32 +0,0 @@ -# App Configuration -APP_NAME="ULFlow Starter Kit" -APP_VERSION="0.1.0" -APP_ENVIRONMENT="development" -APP_TIMEZONE="Asia/Ho_Chi_Minh" - -# Logger Configuration -LOG_LEVEL="info" # debug, info, warn, error - -# Server Configuration -SERVER_HOST="0.0.0.0" -SERVER_PORT=3000 -SERVER_READ_TIMEOUT=15 -SERVER_WRITE_TIMEOUT=15 -SERVER_SHUTDOWN_TIMEOUT=30 - -# Database Configuration -DB_DRIVER="postgres" -DB_HOST="localhost" -DB_PORT=5432 -DB_USERNAME="postgres" -DB_PASSWORD="your_password_here" -DB_NAME="ulflow" -DB_SSLMODE="disable" - -# JWT Configuration -JWT_SECRET="your-32-byte-base64-encoded-secret-key-here" -JWT_ACCESS_TOKEN_EXPIRE=15 # in minutes -JWT_REFRESH_TOKEN_EXPIRE=10080 # in minutes (7 days) -JWT_ALGORITHM="HS256" -JWT_ISSUER="ulflow-starter-kit" -JWT_AUDIENCE="ulflow-web" diff --git a/.gitea/hooks/pre-commit b/.gitea/hooks/pre-commit index 21b4218..f76814b 100644 --- a/.gitea/hooks/pre-commit +++ b/.gitea/hooks/pre-commit @@ -12,7 +12,7 @@ if [[ "$STAGED_GO_FILES" = "" ]]; then else # Run golangci-lint on staged files echo "Running golangci-lint..." - golangci-lint run $STAGED_GO_FILES + golangci-lint run ./... if [ $? -ne 0 ]; then echo "golangci-lint failed. Please fix the issues before committing." exit 1 diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 1f14f1b..5a893f1 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v5 with: - go-version: '1.23' + go-version: '1.24.3' cache-dependency-path: go.sum - name: Lint @@ -58,7 +58,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v5 with: - go-version: '1.23' + go-version: '1.24.3' cache-dependency-path: go.sum - name: Install go-junit-report @@ -93,7 +93,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v5 with: - go-version: '1.23' + go-version: '1.24.3' cache-dependency-path: go.sum - name: Build diff --git a/Dockerfile b/Dockerfile index 30bdcf2..eb4b5f0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ # Production-ready multi-stage build for server deployment # Build arguments -ARG GO_VERSION=1.23.6 +ARG GO_VERSION=1.24.3 ARG ALPINE_VERSION=3.19 ARG APP_USER=appuser ARG APP_GROUP=appgroup diff --git a/Dockerfile.local b/Dockerfile.local index 901398e..f86e241 100644 --- a/Dockerfile.local +++ b/Dockerfile.local @@ -2,13 +2,13 @@ # Optimized for local development with hot reload # Build stage -FROM golang:1.23-alpine AS builder +FROM golang:1.24.3-alpine AS builder # Install necessary tools for development RUN apk add --no-cache git make gcc libc-dev # Install Air for hot reload -RUN go install github.com/cosmtrek/air@latest +RUN go install github.com/air-verse/air@latest # Set working directory WORKDIR /app diff --git a/Makefile b/Makefile index fcdbe07..7d76af8 100644 --- a/Makefile +++ b/Makefile @@ -42,23 +42,14 @@ help: init: @echo "Installing project dependencies and tools..." go mod tidy - go install github.com/cosmtrek/air@latest + go install github.com/air-verse/air@latest go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest @echo "Creating necessary directories..." - mkdir -p tmp - mkdir -p logs - + if not exist tmp mkdir tmp + if not exist logs mkdir logs + @echo "Copying .env file if not exists..." - @if not exist .env ( - if exist templates\.env.example ( - copy templates\.env.example .env - @echo "Created .env file from example" - ) else ( - @echo "Warning: templates/.env.example not found, skipping .env creation" - ) - ) else ( - @echo ".env file already exists, skipping" - ) + @if not exist ".env" (if exist "templates\.env.example" (copy "templates\.env.example" ".env" & echo Created .env file from example) else (echo Warning: Could not create .env file)) else (echo .env file already exists, skipping) @echo "Initialization complete!" @@ -94,16 +85,16 @@ clean: # Build Docker image docker-build: @echo "Building Docker image..." - docker build -t ulflow-starter-kit:latest . + docker build -t ulflow-zee:latest . # Run application in Docker container docker-run: @echo "Running application in Docker container..." @if not exist .env ( @echo "Warning: .env file not found. Running with default environment variables..." - docker run -p 3000:3000 ulflow-starter-kit:latest + docker run -p 3000:3000 ulflow-zee:latest ) else ( - docker run -p 3000:3000 --env-file .env ulflow-starter-kit:latest + docker run -p 3000:3000 --env-file .env ulflow-zee:latest ) # Run Docker Compose for local development @@ -132,18 +123,22 @@ docker-compose-prod-down: setup-git-hooks: @echo "Setting up Git hooks..." git config --local commit.template .gitea/commit-template.txt - if not exist .git/hooks mkdir .git/hooks - copy /Y .gitea\hooks\pre-commit .git\hooks\ >nul - copy /Y .gitea\hooks\prepare-commit-msg .git\hooks\ >nul + + @REM Kiểm tra và tạo thư mục .git/hooks nếu chưa tồn tại + @if not exist .git\hooks (mkdir .git\hooks) + + @REM Sao chép các Git hooks + @echo Copying pre-commit hook... + @copy /Y .gitea\hooks\pre-commit .git\hooks\pre-commit >nul || (echo Warning: Could not copy pre-commit hook & exit /b 1) + @echo Copying prepare-commit-msg hook... + @copy /Y .gitea\hooks\prepare-commit-msg .git\hooks\prepare-commit-msg >nul || (echo Warning: Could not copy prepare-commit-msg hook & exit /b 1) + git config --local core.hooksPath .git/hooks @echo "Git setup complete!" # Create git message template setup-git-message: @echo "Creating Git commit message template..." - if not exist .gitea mkdir .gitea - mkdir -p .gitea - echo "# : \n\n# \n\n#