2
4
Fork
You've already forked GoBlog
0
  • Go 95.3%
  • JavaScript 1.9%
  • CSS 1.7%
  • SCSS 0.5%
  • Shell 0.4%
  • Other 0.1%
Find a file
2026年06月28日 09:14:11 +02:00
.github Support login to apps requiring Mastodon-Login (like bubbles.town) 2026年06月28日 08:05:16 +02:00
.vscode No more double h1 2026年05月19日 08:09:46 +02:00
dbmigrations Support login to apps requiring Mastodon-Login (like bubbles.town) 2026年06月28日 08:05:16 +02:00
docs Support login to apps requiring Mastodon-Login (like bubbles.town) 2026年06月28日 08:05:16 +02:00
hlsjs Add script to download external js dependencies 2025年08月14日 17:46:31 +02:00
leaflet Add script to download external js dependencies 2025年08月14日 17:46:31 +02:00
logo Initial profile image support 2022年11月27日 15:06:43 +01:00
original-assets Split CSS into public and admin stylesheets 2026年06月05日 15:48:11 +02:00
pkgs Fix test 2026年06月28日 08:05:16 +02:00
plugins Fix imagetooltips plugin to work on photo summary 2026年06月02日 22:48:46 +02:00
strings Support login to apps requiring Mastodon-Login (like bubbles.town) 2026年06月28日 08:05:16 +02:00
templates/assets Add undo/redo buttons to editor toolbar 2026年06月07日 08:27:11 +02:00
testdata Add functionality for manually adding ActivityPub followers 2026年02月10日 08:56:31 +01:00
.gitignore Add IDEA configs 2023年02月23日 15:12:30 +01:00
.golangci.yml No more double h1 2026年05月19日 08:09:46 +02:00
acme.go Update dependencies 2026年05月20日 20:21:36 +02:00
acme_integration_test.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
acme_test.go Refactor ACME implementation with Lego 2026年02月19日 21:21:32 +01:00
activityPub.go Use shared issuer method 2026年06月28日 09:14:11 +02:00
activityPub_integration_test.go Add ntfy integration test 2026年06月09日 21:37:30 +02:00
activityPub_test.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
activityPubRemoteFollow.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
activityPubSending.go Add ActivityPub follower check command and cleanup functionality 2026年02月09日 19:42:17 +01:00
activityPubTools.go Add functionality for manually adding ActivityPub followers 2026年02月10日 08:56:31 +01:00
activityPubTools_test.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
activityStreams.go Breaking: New media optimization system using imgproxy and responsive images 2026年05月28日 23:33:38 +02:00
activityStreams_test.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
AGENTS.md Improve docs 2026年06月09日 17:48:24 +02:00
altAddress_test.go Support login to apps requiring Mastodon-Login (like bubbles.town) 2026年06月28日 08:05:16 +02:00
app.go Support login to apps requiring Mastodon-Login (like bubbles.town) 2026年06月28日 08:05:16 +02:00
atproto.go Improve accessability 2026年05月12日 14:16:37 +02:00
authDb.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
authDb_test.go feat: enhanced authentication system with hashed passwords, multiple passkeys, TOTP and app passwords via UI ( #82 ) 2025年12月26日 12:08:41 +01:00
authentication.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
authentication_test.go feat: enhanced authentication system with hashed passwords, multiple passkeys, TOTP and app passwords via UI ( #82 ) 2025年12月26日 12:08:41 +01:00
blogroll.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
blogroll_test.go Improve test speeds by removing useless method calls 2022年07月17日 10:54:03 +02:00
blogstats.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
blogstats_test.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
bundle-assets.sh Add script to download external js dependencies 2025年08月14日 17:46:31 +02:00
cache.go Add support for alternative addresses (old addresses when doing a domain migration), ActivityPub domainmove and fix some AP issues on the way 2026年02月04日 20:38:35 +01:00
cache_test.go Update to Go 1.25, use modernizer, update dependencies 2025年09月20日 10:06:46 +02:00
cacheRecorder.go Remove prepared statements cache, refactor various things 2024年07月16日 07:35:51 +02:00
captcha.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
captcha_test.go Run go fix 2026年02月16日 15:41:41 +01:00
check.go Small fixes 2026年05月15日 13:51:34 +02:00
check_test.go Improve link check and add dnsbl check flag 2026年05月15日 13:22:00 +02:00
checkMajorUpdates.sh Update dependencies 2026年05月20日 20:21:36 +02:00
comments.go No more double h1 2026年05月19日 08:09:46 +02:00
comments_test.go Use cobra for command parsing 2025年01月20日 19:37:53 +01:00
commentsAdmin.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
commentsEditor.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
commentsEditor_test.go Use cobra for command parsing 2025年01月20日 19:37:53 +01:00
config.go New CLI command to migrate media to the new optimization system 2026年06月02日 21:07:05 +02:00
config_test.go New CLI command to migrate media to the new optimization system 2026年06月02日 21:07:05 +02:00
contact.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
contact_test.go Use cobra for command parsing 2025年01月20日 19:37:53 +01:00
database.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
database_test.go Handle all file writes by a util function that correctly cares about sync and close 2024年09月19日 10:29:32 +02:00
databaseHooks.go Use slog 2023年12月27日 11:37:58 +01:00
databaseMigrations.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
docker-compose.dev.yml Breaking: New media optimization system using imgproxy and responsive images 2026年05月28日 23:33:38 +02:00
Dockerfile Support login to apps requiring Mastodon-Login (like bubbles.town) 2026年06月28日 08:05:16 +02:00
editor.go Support login to apps requiring Mastodon-Login (like bubbles.town) 2026年06月28日 08:05:16 +02:00
editor_test.go Breaking: New media optimization system using imgproxy and responsive images 2026年05月28日 23:33:38 +02:00
editorFiles.go Add variants view to editorFiles 2026年06月03日 10:24:09 +02:00
editorLinks.go Add simple subpage on editor to list linked external domains 2026年05月14日 10:55:22 +02:00
editorLinks_test.go Add simple subpage on editor to list linked external domains 2026年05月14日 10:55:22 +02:00
editorWebsocket.go Add undo/redo buttons to editor toolbar 2026年06月07日 08:27:11 +02:00
editorWebsocket_test.go Fix test 2026年06月09日 21:50:41 +02:00
errors.go Initial profile image support 2022年11月27日 15:06:43 +01:00
errors_test.go Use cobra for command parsing 2025年01月20日 19:37:53 +01:00
example-config.yml Support login to apps requiring Mastodon-Login (like bubbles.town) 2026年06月28日 08:05:16 +02:00
export.go Handle all file writes by a util function that correctly cares about sync and close 2024年09月19日 10:29:32 +02:00
export_test.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
externalVideo.go (Experimental) external video integration using hls.js 2022年05月27日 09:48:57 +02:00
externalVideo_test.go Increase coverage for media helpers, short-domain redirects, and plugin execution ( #80 ) 2025年12月19日 11:49:04 +01:00
feeds.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
feeds_test.go Use cobra for command parsing 2025年01月20日 19:37:53 +01:00
geo.go Update to Go 1.25, use modernizer, update dependencies 2025年09月20日 10:06:46 +02:00
geo_test.go Switch to Nominatim for reverse geocoding 2024年11月11日 15:33:55 +01:00
geoMap.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
geoTiles.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
geoTiles_test.go Render SVG shape of the GPX route when "showroute: false" and in editor preview 2024年07月24日 18:23:20 +02:00
geoTrack.go Included stopped distance in track statistics 2025年04月15日 11:46:34 +02:00
geoTrack_test.go Included stopped distance in track statistics 2025年04月15日 11:46:34 +02:00
go.mod Support login to apps requiring Mastodon-Login (like bubbles.town) 2026年06月28日 08:05:16 +02:00
go.sum Support login to apps requiring Mastodon-Login (like bubbles.town) 2026年06月28日 08:05:16 +02:00
healthcheck.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
hooks.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
http.go Support login to apps requiring Mastodon-Login (like bubbles.town) 2026年06月28日 08:05:16 +02:00
httpClient.go Small fixes 2026年05月15日 13:51:34 +02:00
httpClient_test.go Fix test 2026年05月15日 14:02:45 +02:00
httpFs.go Add some missing file closes 2023年12月25日 10:23:35 +01:00
httpFs_test.go Fix leaflet and hlsjs js files not being served 2023年12月20日 15:10:41 +01:00
httpLogs.go Fix missing default logFile config 2021年12月27日 21:47:12 +01:00
httpLogs_test.go Add database-based settings, settings screen and migrate sections to db and allow to configure them 2022年07月16日 21:09:43 +02:00
httpMiddlewares.go Split CSS into public and admin stylesheets 2026年06月05日 15:48:11 +02:00
httpMiddlewares_test.go Initial profile image support 2022年11月27日 15:06:43 +01:00
httpRouters.go Support login to apps requiring Mastodon-Login (like bubbles.town) 2026年06月28日 08:05:16 +02:00
indexnow.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
indexnow_test.go Use cobra for command parsing 2025年01月20日 19:37:53 +01:00
indieAuth_test.go Support login to apps requiring Mastodon-Login (like bubbles.town) 2026年06月28日 08:05:16 +02:00
indieAuthServer_test.go Support login to apps requiring Mastodon-Login (like bubbles.town) 2026年06月28日 08:05:16 +02:00
integration_helpers_test.go Add ntfy integration test 2026年06月09日 21:37:30 +02:00
LICENSE Add aibotblock plugin 2025年01月19日 09:20:01 +01:00
log.go Use cobra for command parsing 2025年01月20日 19:37:53 +01:00
main.go Add command to check for missing optimized images 2026年06月14日 20:50:24 +02:00
markdown.go Auto-resolve media links to fallback variant URLs in markdown 2026年06月03日 11:34:12 +02:00
markdown_test.go Breaking: New media optimization system using imgproxy and responsive images 2026年05月28日 23:33:38 +02:00
matrix.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
media.go No more double h1 2026年05月19日 08:09:46 +02:00
mediaCheckFormats.go Add command to check for missing optimized images 2026年06月14日 20:50:24 +02:00
mediaCheckFormats_test.go Add command to check for missing optimized images 2026年06月14日 20:50:24 +02:00
mediaMigrate.go Fix media migration for images with exif problems 2026年06月14日 16:22:10 +02:00
mediaMigrate_integration_test.go New CLI command to migrate media to the new optimization system 2026年06月02日 21:07:05 +02:00
mediaMigrate_test.go New CLI command to migrate media to the new optimization system 2026年06月02日 21:07:05 +02:00
mediaOptimization.go Increase timeout for imgproxy calls 2026年06月14日 17:46:30 +02:00
mediaOptimization_test.go Increase timeout for imgproxy calls 2026年06月14日 17:46:30 +02:00
mediaOptimizationDatabase.go Breaking: New media optimization system using imgproxy and responsive images 2026年05月28日 23:33:38 +02:00
mediaStorage.go New CLI command to migrate media to the new optimization system 2026年06月02日 21:07:05 +02:00
mediaStorage_test.go Add tests for media storage 2025年12月15日 10:06:29 +01:00
microformats.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
microformats_test.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
micropub.go Support login to apps requiring Mastodon-Login (like bubbles.town) 2026年06月28日 08:05:16 +02:00
micropub_test.go Support login to apps requiring Mastodon-Login (like bubbles.town) 2026年06月28日 08:05:16 +02:00
nodeinfo.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
notifications.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
notifications_test.go Update dependencies, remove conc/pool from direct usage, refactor and cover check and notifications with tests 2025年08月14日 19:03:20 +02:00
ntfy.go Add blogroll header 2024年05月21日 16:42:32 +02:00
ntfy_integration_test.go Add ntfy integration test 2026年06月09日 21:37:30 +02:00
ntfy_test.go Add email option for ntfy 2022年10月03日 20:09:18 +02:00
oauth.go Support login to apps requiring Mastodon-Login (like bubbles.town) 2026年06月28日 08:05:16 +02:00
oauth_test.go Support login to apps requiring Mastodon-Login (like bubbles.town) 2026年06月28日 08:05:16 +02:00
opensearch.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
opensearch_test.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
paths.go Add support for alternative addresses (old addresses when doing a domain migration), ActivityPub domainmove and fix some AP issues on the way 2026年02月04日 20:38:35 +01:00
paths_test.go Fix login with micro.blog iOS app 2022年10月15日 14:19:12 +02:00
persistentCache.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
plugins.go Support login to apps requiring Mastodon-Login (like bubbles.town) 2026年06月28日 08:05:16 +02:00
plugins_test.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
posts.go No more double h1 2026年05月19日 08:09:46 +02:00
posts_test.go Use cobra for command parsing 2025年01月20日 19:37:53 +01:00
postsDb.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
postsDb_test.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
postsDeleter.go Use slog 2023年12月27日 11:37:58 +01:00
postsDeleter_test.go Use cobra for command parsing 2025年01月20日 19:37:53 +01:00
postsFuncs.go Breaking: New media optimization system using imgproxy and responsive images 2026年05月28日 23:33:38 +02:00
postsFuncs_test.go Some refactoring and tests 2023年12月26日 11:39:19 +01:00
postsScheduler.go Add editor option to update posts without setting updated timestamp 2024年12月28日 14:25:12 +01:00
postsScheduler_test.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
pprof.go No more double h1 2026年05月19日 08:09:46 +02:00
privateMode.go Use custom compression middleware 2022年02月18日 16:35:53 +01:00
privateMode_test.go feat: enhanced authentication system with hashed passwords, multiple passkeys, TOTP and app passwords via UI ( #82 ) 2025年12月26日 12:08:41 +01:00
profileImage.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
queue.go Remove prepared statements cache, refactor various things 2024年07月16日 07:35:51 +02:00
queue_test.go Remove prepared statements cache, refactor various things 2024年07月16日 07:35:51 +02:00
reactions.go Reaction settings are now in the UI, customizable reactions, updated dependencies 2026年04月20日 08:28:05 +02:00
reactions_test.go Reaction settings are now in the UI, customizable reactions, updated dependencies 2026年04月20日 08:28:05 +02:00
README.md Improve docs 2026年06月09日 17:48:24 +02:00
regexRedirects.go Big refactoring: Avoid global vars almost everywhere 2021年06月06日 14:39:42 +02:00
regexRedirects_test.go Activate more linters and fix linted problems 2022年02月22日 10:14:48 +01:00
render.go No more double h1 2026年05月19日 08:09:46 +02:00
robotstxt.go Improve robots.txt and aibotblock, especially for alt addresses 2026年03月13日 09:23:02 +01:00
robotstxt_test.go Improve robots.txt and aibotblock, especially for alt addresses 2026年03月13日 09:23:02 +01:00
search.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
search_test.go Fix date based archive routes 2021年11月03日 18:52:41 +01:00
sessions.go Use cobra for command parsing 2025年01月20日 19:37:53 +01:00
settings.go Add webmention blocklist feature and settings 2026年05月02日 14:49:41 +02:00
settings_test.go Migrate blog title and description to settings UI; add deprecation warnings for old config 2026年02月05日 16:39:06 +01:00
settingsDb.go Add webmention blocklist feature and settings 2026年05月02日 14:49:41 +02:00
settingsDb_test.go Migrate blog title and description to settings UI; add deprecation warnings for old config 2026年02月05日 16:39:06 +01:00
share.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
share_test.go Use official mastodon share page 2026年03月03日 20:18:56 +01:00
shortDomain.go Initial profile image support 2022年11月27日 15:06:43 +01:00
shortDomain_test.go Increase coverage for media helpers, short-domain redirects, and plugin execution ( #80 ) 2025年12月19日 11:49:04 +01:00
shortPath.go Refactor shortpath (again) and remove the transaction wrapper from the database 2024年08月31日 13:41:22 +02:00
shortPath_test.go Fix short path 2024年07月22日 21:18:28 +02:00
sitemap.go Add dates to more pages/archives in sitemap 2026年05月03日 12:59:46 +02:00
sitemap_test.go Add dates to more pages/archives in sitemap 2026年05月03日 12:59:46 +02:00
staticFiles.go No more double h1 2026年05月19日 08:09:46 +02:00
taxonomies.go Basic (experimental) plugin support with two plugin types (exec and middleware) 2022年08月09日 17:47:53 +02:00
telegram.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
telegram_test.go Use cobra for command parsing 2025年01月20日 19:37:53 +01:00
templateAssets.go Inline base css 2026年05月06日 19:48:27 +02:00
templateStrings.go Use cobra for command parsing 2025年01月20日 19:37:53 +01:00
tor.go Increase timeout for imgproxy calls 2026年06月14日 17:46:30 +02:00
tts.go Add support for Mistral TTS 2026年05月03日 22:39:51 +02:00
tts_test.go Add support for Mistral TTS 2026年05月03日 22:39:51 +02:00
ui.go Support login to apps requiring Mastodon-Login (like bubbles.town) 2026年06月28日 08:05:16 +02:00
ui_test.go Add webmention blocklist feature and settings 2026年05月02日 14:49:41 +02:00
uiComponents.go Breaking: New media optimization system using imgproxy and responsive images 2026年05月28日 23:33:38 +02:00
uiPluginsHelper.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
updateDeps.sh No more double h1 2026年05月19日 08:09:46 +02:00
utils.go Breaking: New media optimization system using imgproxy and responsive images 2026年05月28日 23:33:38 +02:00
utils_test.go Breaking: New media optimization system using imgproxy and responsive images 2026年05月28日 23:33:38 +02:00
webAuthn.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
webmention.go Add webmention blocklist feature and settings 2026年05月02日 14:49:41 +02:00
webmention_test.go Add webmention blocklist feature and settings 2026年05月02日 14:49:41 +02:00
webmentionAdmin.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
webmentionBlocklist.go Add webmention blocklist feature and settings 2026年05月02日 14:49:41 +02:00
webmentionSending.go Add webmention blocklist feature and settings 2026年05月02日 14:49:41 +02:00
webmentionSending_test.go Add webmention blocklist feature and settings 2026年05月02日 14:49:41 +02:00
webmentionVerification.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00
webmentionVerification_test.go Configure revive linter and fix all lint issues ( #117 ) 2026年03月12日 22:33:02 +01:00

GoBlog

GoBlog is a single-user, multi-blog platform written in Go. One binary, SQLite database, minimal dependencies. IndieWeb (IndieAuth, Micropub, Webmention) and ActivityPub support for Fediverse integration.

Philosophy

  • Opt-in features: most features disabled by default, enable only what you need
  • Markdown-first: write in Markdown with optional YAML front matter
  • No themes: customize through configuration, plugins, and custom CSS
  • Docker-friendly: designed to run in containers with simple volume mounts
  • Full ownership: your content, your database, your server

Quick Start

Create a docker-compose.yml:

services:goblog:container_name:goblogimage:ghcr.io/jlelse/goblog:latestrestart:unless-stoppedvolumes:- ./config:/app/config- ./data:/app/dataports:- "8080:8080"environment:- TZ=Europe/Berlin

Create minimal config at ./config/config.yml:

server:publicAddress:http://localhost:8080

Start:

docker-compose up -d

Build from Source

git clone https://github.com/jlelse/GoBlog.git
cd GoBlog
go build -tags=linux,libsqlite3,sqlite_fts5,gomailnotpl -o GoBlog
mkdir -p config data
echo 'server:
 publicAddress: http://localhost:8080' > config/config.yml
./GoBlog --config ./config/config.yml

First Steps

  1. Check the logs: On first startup, GoBlog generates a random password:
    Generated initial password for first-time setup. username=admin password=AbCdEfGhIjKlMnOpQrSt
    
  2. Open your browser: http://localhost:8080
  3. Log in: /login with username admin and the generated password
  4. Change your password: Go to /settings
  5. Create a post: Go to /editor

Alternatively, set credentials before first run:

./GoBlog --config ./config/config.yml setup --username admin --password "your-secure-password"

Data Storage

All data lives in the data directory:

  • data/db.sqlite: SQLite database
  • data/media/: Uploaded media (served at /m/)
  • data/profileImage: Profile image

Backup the data directory regularly.


Documentation

  • Configuration : YAML configuration, HTTPS, Docker, data storage
  • Settings UI : Blog, user, and security settings configurable via the web UI
  • Features : Writing posts, editor, comments, reactions, search, media, feeds, and more
  • IndieWeb & Fediverse : IndieAuth, Webmention, ActivityPub, Bluesky
  • Plugins : Plugin system, built-in plugins, creating custom plugins
  • CLI Commands : Server, setup, health check, export, follower management
  • Advanced Topics : Hooks, redirects, multiple blogs, performance tuning, troubleshooting
  • Testing : Test suite, integration tests, benchmarks

Key Features

Core

  • Markdown posts with YAML front matter
  • Multiple blogs under one installation
  • Sections, taxonomies, and custom path templates
  • Web editor with live preview and formatting toolbar
  • Media uploads with optional image optimization (imgproxy)
  • Full-text search (SQLite FTS5)
  • RSS, Atom, and JSON feeds
  • XML sitemap and robots.txt

IndieWeb & Fediverse

  • IndieAuth: Use your blog as your identity
  • Micropub: Create/update/delete posts via API
  • Webmention: Send and receive webmentions automatically
  • ActivityPub: Publish to Mastodon, Pleroma, and other Fediverse platforms
  • Bluesky/ATProto: Post links to Bluesky

Optional Features (Opt-in)

Feature Description
Comments Via Webmention or ActivityPub
Reactions Emoji reactions on posts
Search Full-text search (SQLite FTS5)
Photos Gallery of all posts with images
Map Posts with locations/GPX tracks on a map
Blogroll Display blogs you follow via OPML
Statistics Posts per year and monthly chart
Random Post Redirect to a random post
On This Day Posts from this day in previous years
Contact Form SMTP-based contact form
Text-to-Speech Google Cloud TTS or Mistral audio generation
Notifications Ntfy, Telegram, or Matrix push notifications
Short URLs Custom short domain for compact links
Image Optimization Automatic AVIF/JPEG/PNG variants via imgproxy
Tor Hidden Service .onion address
IndexNow Notify search engines of new content
Private Mode Login-only access
Announcement Banner Site-wide banner for announcements

Built-in: RSS, Atom, JSON feeds, XML sitemap, robots.txt, microformats2 markup.


Configuration

Configuration is done via a YAML file (default: ./config/config.yml).

server:publicAddress:http://localhost:8080

All other settings have sensible defaults. See example-config.yml for the full reference and docs/configuration.md for detailed explanations.

Blog title, description, sections, and many other settings are configured via the Settings UI (/settings), not YAML.


Plugins

GoBlog has a runtime plugin system (based on Yaegi). See docs/plugins.md for full details.

Built-in plugins: Custom CSS, Syndication Links, Webrings, AI Summary, AI Image Captions, Snow Animation, AI Bot Block, Image Tooltips, Telegram Bot, MCP Server.


Administration

Quick Reference

Path Purpose
/login, /logout Authentication
/settings User and blog settings
/editor Post editor
/webmention Manage webmentions
/comment Manage comments
/notifications View notifications
/reload Reload router

CLI Commands

./GoBlog --config ./config/config.yml # Start server
./GoBlog --config ./config/config.yml setup --username admin --password "pass" # Setup credentials
./GoBlog --config ./config/config.yml healthcheck # Health check
./GoBlog --config ./config/config.yml check --ignore-403 # Check external links
./GoBlog --config ./config/config.yml export ./exported # Export posts

See docs/cli.md for full reference.


Getting Help


License

MIT License. See LICENSE for details.