diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index c385afd..17a6eef 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -28,7 +28,8 @@ jobs:
         id: generate
         run: |
           ./build.sh -g -v ${{ github.event.inputs.version }} -p 7.4 -o debian php
-      - name: Build and push
+        env:
+          dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
         uses: docker/build-push-action@v4
         with:
           context: .
@@ -62,7 +63,8 @@ jobs:
         id: generate
         run: |
           ./build.sh -g -v ${{ github.event.inputs.version }} -p 7.4 -o debian cli
-      - name: Build and push
+        env:
+          dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
         uses: docker/build-push-action@v4
         with:
           context: .
@@ -96,7 +98,8 @@ jobs:
         id: generate
         run: |
           ./build.sh -g -v ${{ github.event.inputs.version }} -p 7.4 -o debian fpm
-      - name: Build and push
+        env:
+          dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
         uses: docker/build-push-action@v4
         with:
           context: .
@@ -130,7 +133,8 @@ jobs:
         id: generate
         run: |
           ./build.sh -g -v ${{ github.event.inputs.version }} -p 7.4 -o debian apache
-      - name: Build and push
+        env:
+          dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
         uses: docker/build-push-action@v4
         with:
           context: .
@@ -163,7 +167,8 @@ jobs:
         id: generate
         run: |
           ./build.sh -g -v ${{ github.event.inputs.version }} -p 8.2 -o debian php
-      - name: Build and push
+        env:
+          dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
         uses: docker/build-push-action@v4
         with:
           context: .
@@ -197,7 +202,8 @@ jobs:
         id: generate
         run: |
           ./build.sh -g -v ${{ github.event.inputs.version }} -p 8.2 -o debian cli
-      - name: Build and push
+        env:
+          dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
         uses: docker/build-push-action@v4
         with:
           context: .
@@ -231,7 +237,8 @@ jobs:
         id: generate
         run: |
           ./build.sh -g -v ${{ github.event.inputs.version }} -p 8.2 -o debian fpm
-      - name: Build and push
+        env:
+          dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
         uses: docker/build-push-action@v4
         with:
           context: .
@@ -265,7 +272,8 @@ jobs:
         id: generate
         run: |
           ./build.sh -g -v ${{ github.event.inputs.version }} -p 8.2 -o debian apache
-      - name: Build and push
+        env:
+          dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
         uses: docker/build-push-action@v4
         with:
           context: .
@@ -298,7 +306,8 @@ jobs:
         id: generate
         run: |
           ./build.sh -g -v ${{ github.event.inputs.version }} -p 7.4 -o alpine php
-      - name: Build and push
+        env:
+          dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
         uses: docker/build-push-action@v4
         with:
           context: .
@@ -332,7 +341,8 @@ jobs:
         id: generate
         run: |
           ./build.sh -g -v ${{ github.event.inputs.version }} -p 7.4 -o alpine cli
-      - name: Build and push
+        env:
+          dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
         uses: docker/build-push-action@v4
         with:
           context: .
@@ -366,7 +376,8 @@ jobs:
         id: generate
         run: |
           ./build.sh -g -v ${{ github.event.inputs.version }} -p 7.4 -o alpine fpm
-      - name: Build and push
+        env:
+          dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
         uses: docker/build-push-action@v4
         with:
           context: .
@@ -399,7 +410,8 @@ jobs:
         id: generate
         run: |
           ./build.sh -g -v ${{ github.event.inputs.version }} -p 8.2 -o alpine php
-      - name: Build and push
+        env:
+          dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
         uses: docker/build-push-action@v4
         with:
           context: .
@@ -433,7 +445,8 @@ jobs:
         id: generate
         run: |
           ./build.sh -g -v ${{ github.event.inputs.version }} -p 8.2 -o alpine cli
-      - name: Build and push
+        env:
+          dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
         uses: docker/build-push-action@v4
         with:
           context: .
@@ -467,7 +480,8 @@ jobs:
         id: generate
         run: |
           ./build.sh -g -v ${{ github.event.inputs.version }} -p 8.2 -o alpine fpm
-      - name: Build and push
+        env:
+          dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
         uses: docker/build-push-action@v4
         with:
           context: .
diff --git a/build.sh b/build.sh
index ae8d614..02369d2 100755
--- a/build.sh
+++ b/build.sh
@@ -8,6 +8,7 @@ generate=0
 upload=0
 buildx=0
 setup_buildx=0
+dockerhub_username=${dockerhub_username:-joyqi}
 
 display_usage_and_exit() {
   echo "Usage: $(basename "$0") [-g] [-u] [-x] [-s] [-v <typecho version>] [-p <php version>] [-o <os>] <type>" >&2
@@ -106,7 +107,7 @@ if [ ${generate} -eq 0 ]; then
         fi
     fi
 
-    docker ${BUILDX} --no-cache -t joyqi/typecho:${version}-php${TAG} --build-arg TAG=${TAG} --build-arg URL=${URL} --build-arg CONFIG="${CONFIG}" --build-arg PHP_EXTENSION="${PHP_EXTENSION}" --build-arg PHP8_SOCKETS_WORKAROUND="${PHP8_SOCKETS_WORKAROUND}" .
+    docker ${BUILDX} --no-cache -t ${dockerhub_username}/typecho:${version}-php${TAG} --build-arg TAG=${TAG} --build-arg URL=${URL} --build-arg CONFIG="${CONFIG}" --build-arg PHP_EXTENSION="${PHP_EXTENSION}" --build-arg PHP8_SOCKETS_WORKAROUND="${PHP8_SOCKETS_WORKAROUND}" .
 
     if [ ${setup_buildx} -eq 1 ]; then
         docker buildx stop
@@ -114,7 +115,7 @@ if [ ${generate} -eq 0 ]; then
     fi
 
     if [[ ${buildx} -eq 0 && ${upload} -eq 1 ]]; then
-        docker push joyqi/typecho:${version}-php${TAG}
+        docker push ${dockerhub_username}/typecho:${version}-php${TAG}
     fi
     
     rm -rf Dockerfile
@@ -125,5 +126,5 @@ else
     echo "PLATFORM=${PLATFORM}" >> $GITHUB_OUTPUT
     echo "PHP8_SOCKETS_WORKAROUND=${PHP8_SOCKETS_WORKAROUND}" >> $GITHUB_OUTPUT
     echo "PHP_EXTENSION=${PHP_EXTENSION}" >> $GITHUB_OUTPUT
-    echo "VERSION=joyqi/typecho:${version}-php${TAG}" >> $GITHUB_OUTPUT
+    echo "VERSION=${dockerhub_username}/typecho:${version}-php${TAG}" >> $GITHUB_OUTPUT
 fi