[:: LAMBWIRE ::]

Keeping It Simple: Automating Hugo with Gitea

So What?
Because life is short and repetitive tasks are dull, here’s a straightforward setup to automatically update my Hugo-based website every time I push changes to Gitea. No glamor, just practical efficiency.


I’ve been using Hugo for this site—it’s simple, fast, and gets out of the way. Gitea hosts my Git repos because it does exactly what’s needed without fuss. Combining these two tools to automate deployments just made sense.

Here’s the basic workflow:

That’s it. No magic, no elaborate setups, just two tools working effectively together.

Automating with Gitea Actions

Originally, I considered using a post-receive hook inside Gitea’s internal filesystem. But maintaining shell scripts buried in a container volume just felt messy. Instead, I used Gitea Actions — a cleaner, version-controlled way to define what should happen on push.

In my Hugo repo, I created a file at:

.gitea/workflows/deploy.yml

And dropped this in:

name: Build Hugo Site

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout Repository
        uses: actions/checkout@v4
        with:
          submodules: true

      - name: Install Hugo
        uses: peaceiris/actions-hugo@v2
        with:
          hugo-version: 'latest'
          extended: true

      - name: Clear Previous Build Output
        run: rm -rf /mnt/hugo_output/*

      - name: Build Hugo Site
        run: hugo --minify --destination /mnt/hugo_output --cleanDestinationDir --buildDrafts --buildFuture --buildExpired 

Gitea picks this up automatically. Every time I push to main, it checks out the repo, builds the static site, and syncs the output to my production server.

The Result

Now, pushing changes to the site takes seconds and requires zero manual intervention:

Simple, efficient, effective.

Takeaway

Using Hugo and Gitea together isn’t groundbreaking, but it is reliably functional—exactly the way I like it. Gitea Actions made it feel tidy and maintainable. If you prefer your tools uncomplicated and effective, this combination might work nicely for you too.

Reply to this post by email ↪