README.md

June 18, 2026 Β· View on GitHub

GooseForum

πŸš€ Modern Go + Vue 3 Forum System

GitHub release pkg.go.dev Go Report Card Mentioned in Awesome Go Go version TailwindCSS License GitHub stars

δΈ­ζ–‡ | English

GooseForum interface preview

Quick Start

Download and Run

Download the latest prebuilt binary from GitHub Releases, then start it:

tar -zxvf GooseForum_Linux_x86_64.tar.gz
chmod +x ./GooseForum
./GooseForum serve

Open http://localhost:5234. The first registered user automatically becomes the administrator.

Build from Source

Requirements:

  • Go 1.26+
  • Node.js 18+
  • pnpm
git clone https://github.com/leancodebox/GooseForum.git
cd GooseForum

cd resource && pnpm install && pnpm build && cd ..
go mod tidy
go build -ldflags="-w -s" .

./GooseForum serve

Configuration

GooseForum creates config.toml on first startup. The default database is SQLite.

[app]
env = "production"

[server]
port = 5234
url = "http://localhost"

[db.default]
connection = "sqlite"
path = "./storage/database/sqlite.db"

See configuration documentation for MySQL, mail, backup, security, and site settings.

Admin Commands

./GooseForum set-user-admin <userId>
./GooseForum set-user-email <userId> <email>
./GooseForum set-user-password <userId> <password>

What Is GooseForum?

GooseForum is a technical community platform built with Go, Gin, GORM, Vue 3, TypeScript, Vite, and TailwindCSS. It ships as a single executable, supports SQLite/MySQL, and provides a payload-driven SPA experience with server-rendered fallback pages for SEO and no-js access.

Live demo: gooseforum.online

Features

  • Markdown topics, replies, categories, notifications, chat, drafts, and user profiles.
  • Role and permission management with a full admin console.
  • Responsive public UI for desktop and mobile.
  • Theme workbench for light/dark theme preview and publishing.
  • SQLite by default, optional MySQL, scheduled backups.
  • Payload-driven navigation with no-js GoHTML templates.
  • Brand customization for logo, text, footer, and site assets.

Development

# Backend with hot reload
air

# Public site and admin console
cd resource && pnpm dev

The admin console is served by the same Vue app under /admin; it does not require a separate frontend service.

Project Structure

GooseForum/
β”œβ”€β”€ app/                    # Backend code
β”‚   β”œβ”€β”€ console/            # CLI commands
β”‚   β”œβ”€β”€ http/               # Controllers, middleware, routes
β”‚   β”œβ”€β”€ models/             # GORM models
β”‚   └── service/            # Business services
β”œβ”€β”€ resource/               # Vue 3 frontend, templates, static assets
β”‚   β”œβ”€β”€ src/site/           # Public site
β”‚   β”œβ”€β”€ src/admin/          # Admin console
β”‚   β”œβ”€β”€ src/runtime/        # Payload runtime and shared browser helpers
β”‚   └── templates/          # GoHTML fallback templates
β”œβ”€β”€ docs/                   # Documentation
β”œβ”€β”€ main.go
└── config.toml

Deployment Notes

For production, place GooseForum behind a reverse proxy such as Nginx or Caddy, enable HTTPS, and configure database backups.

Minimal container image:

FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY GooseForum .
CMD ["./GooseForum", "serve"]

Documentation

License

MIT License. See LICENSE.