Web-based portfolio frontend for Gitea https://code.ivysaur.me/teafolio
Go to file
mappu 0407a52fb6 doc/README: update for v1.4.1 2024-03-19 19:08:46 +13:00
doc doc: add screenshot 2020-05-02 14:25:38 +12:00
gitea gitea/api: add cooldown to debounce markdown api failures 2024-03-19 19:08:03 +13:00
static self-host the build_success_brightgreen.svg image 2021-04-12 13:46:46 +12:00
.gitignore initial commit 2020-05-02 14:16:49 +12:00
Dockerfile production: build with go1.22 2024-03-19 18:42:18 +13:00
README.md doc/README: update for v1.4.1 2024-03-19 19:08:46 +13:00
config.toml.sample gitea: optionally support authenticated api 2024-03-19 18:42:13 +13:00
go.mod markdown: fall back to internal renderer if gitea's is unavailable 2024-03-19 18:52:16 +13:00
go.sum markdown: fall back to internal renderer if gitea's is unavailable 2024-03-19 18:52:16 +13:00
main.go gitea: optionally support authenticated api 2024-03-19 18:42:13 +13:00
page_home.go config: add OverrideOrder option 2022-12-31 14:18:47 +13:00
page_imageredir.go banner: use reposCacheByName 2022-12-31 14:55:15 +13:00
page_repository.go repo: ensure we render massaged html when in fallback mode 2024-03-19 19:08:12 +13:00
page_util.go split pages into multiple source files 2022-12-31 13:47:07 +13:00
router.go use go1.16+ embed for static assets 2024-03-19 18:42:02 +13:00
sync.go sync: idx values from reposAlphabeticalOrder do not match reposCache indexes 2022-12-31 14:55:00 +13:00



Teafolio is a web-based portfolio frontend for a Gitea server.

Compared to the earlier codesite project, the repository list and detailed information is loaded live from a Gitea server.

Written in Go


  1. Compile the binary: go build
  2. Modify the sample config.toml file to point to your Gitea instance
    • teafolio will look for config.toml in the current directory, or, you can supply a custom path with -ConfigFile
  3. Deploy binary + static/ directory to webserver

Production (Docker)

docker build -t teafolio:latest .
docker run --restart=always -d -p 5656:5656 -v $(pwd)/config.toml:/app/config.toml teafolio:latest

Production (Dokku)

By default, Dokku will proxy HTTP on port 5000.

dokku apps:create teafolio
dokku storage:mount teafolio /srv/teafolio-dokku/config.toml:/app/config.toml


2024-03-19 v1.4.1

  • Add cooldown for failed markdown API calls
  • Fix missing extra html elements when using fallback markdown renderer

2024-03-19 v1.4.0

  • Support using application token for Gitea API
  • Add fallback to internal markdown renderer if Gitea's API is unavailable
  • Add fallback to Gitea page redirect if there are any errors building repo page
  • Embed static web assets in binary (requires Go 1.16+)

2022-12-31 v1.3.1

  • Fix missing images on homepage
  • Fix an issue with wrong mtime comparisons for updated repositories

2022-12-31 v1.3.0

  • Add OverrideOrder configuration option to insert repos at specific positions
  • Cache target image URLs to improve homepage load performance

2021-04-12 v1.2.1

  • Exclude 'build:success' tag from article-only repositories, and re-host the image locally
  • Also search root repo directory for images
  • Enhance mobile viewport and table styling

2020-11-19 v1.2.0

  • Cache homepage repositories, sync changes in the background
  • Consider the updated time to be the most recent commit, not the Gitea repository metadata update field
  • Add extra logging to startup

2020-11-08 v1.1.1

  • Fix an issue with newer versions of Gitea that paginate repoistory list responses
  • Fix an issue with blocking semaphores for a cancelled network request

2020-05-24 v1.1.0

  • Support limiting the number of concurrent API requests to Gitea
  • Display total number of projects
  • Fix cosmetic issues with page background image, page height, and margins around thumbnails

2020-05-24 v1.0.1

  • Remove image dependency from static files
  • Fix a cosmetic issue with h2/h3 margins

2020-05-05 v1.0.0

  • Initial release