diff --git a/.forgejo/issue_template/01-content-update.yml b/.forgejo/issue_template/01-content-update.yml index 6b12b2b..c755c70 100644 --- a/.forgejo/issue_template/01-content-update.yml +++ b/.forgejo/issue_template/01-content-update.yml @@ -15,6 +15,7 @@ body: attributes: label: "Topic:" multiple: true + default: 0 options: - Garden - Blog diff --git a/.forgejo/workflows/build-docker-image.yaml b/.forgejo/workflows/build-docker-image.yaml new file mode 100644 index 0000000..8633f14 --- /dev/null +++ b/.forgejo/workflows/build-docker-image.yaml @@ -0,0 +1,65 @@ +name: Publish image +on: + push: + branches: + - main + workflow_dispatch: + +jobs: + create-docker-images: + runs-on: host + steps: + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + registry: git.alecodes.page + username: ${{ vars.CONTAINER_REGISTRY_USER }} + password: ${{ secrets.CONTAINER_REGISTRY_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v6 + with: + platforms: linux/amd64,linux/arm64,linux/arm/v7 + push: true + tags: | + git.alecodes.page/alecodes/page:latest + git.alecodes.page/alecodes/page:${{ github.sha }} + + deploy: + runs-on: ubuntu-latest + needs: + - create-docker-images + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: 'Docker Stack Deploy' + uses: https://github.com/cssnr/stack-deploy-action@v1 + with: + host: ${{ vars.DOCKER_SWARM_HOST }} + port: ${{ vars.DOCKER_SWARM_PORT }} + user: ${{ secrets.DOCKER_SWARM_USER }} + ssh_key: '${{ secrets.DOCKER_SWARM_SSH_KEY }}' + file: 'docker-stack.yaml' + name: 'personal-page' + + rebase: + runs-on: ubuntu-latest + needs: deploy + if: success() + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: '0' + ref: content-update + + - name: Update branch + run: | + set -x + git config --global user.name "robo" + git config --global user.email "robo@alecodes.page" + git rebase origin/main + git push origin content-update --force-with-lease diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f69dae2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM --platform=linux/amd64 ghcr.io/getzola/zola:v0.19.2 AS builder + +COPY . /project +WORKDIR /project +RUN ["zola", "build"] + +FROM ghcr.io/static-web-server/static-web-server:2 +WORKDIR / +COPY --from=builder /project/dist /public diff --git a/content/_index.md b/content/_index.md index 488c699..2f11bb4 100644 --- a/content/_index.md +++ b/content/_index.md @@ -2,4 +2,4 @@ +++ -# This is a awesome page :D +# This is a **really** awesome page :D diff --git a/docker-stack.yaml b/docker-stack.yaml new file mode 100644 index 0000000..55782e5 --- /dev/null +++ b/docker-stack.yaml @@ -0,0 +1,15 @@ +networks: + reverse-proxy: + external: true + +services: + page: + image: git.alecodes.page/alecodes/page:${GITHUB_SHA:-latest} + restart: unless-stopped + networks: + - reverse-proxy + deploy: + labels: + - traefik.enable=true + - traefik.http.routers.personal-page.rule=Host(`alecodes.page`) + - traefik.http.services.personal-page.loadbalancer.server.port=80