π Language / θ―θ¨
π¨π³ δΈζ | πΊπΈ English
π Project Overview
GooseForum is a modern technical community platform built with Go + Alpine.js + TailwindCSS. It provides simple deployment and rich community features, designed as a lightweight forum system for technical developers.
π Live Demo: GooseForum
β¨ Core Features
π― User System
- User Registration/Login - Email activation support
- Permission Management - Role-based access control
- User Center - Profile management, avatar upload
- Points System - Check-in, posting, reply rewards
- Admin Panel - Complete backend management
π Content Management
- Article Publishing - Markdown editor with preview
- Comment System - Multi-level replies
- Article Categories - Flexible category management
- Real-time Notifications - WebSocket-powered notifications
- Chat System - Real-time messaging
π Technical Features
- Single File Deployment - Single executable after compilation
- SQLite/MySQL Support - Default SQLite, MySQL optional
- Auto Backup - Scheduled database backup
- Responsive Design - Perfect mobile support
- Brand Customization - Custom logo/text/image support
- SEO Friendly - Complete SEO optimization
π Quick Start
Method 1: Download Pre-compiled Version (Recommended)
- Download pre-compiled version from GitHub Releases
- Extract and start:
# Extract
tar -zxvf GooseForum_Linux_x86_64.tar.gz
# Grant permission
chmod +x ./GooseForum
# Start service
./GooseForum serve
Build with GoReleaser
# Install GoReleaser
go install github.com/goreleaser/goreleaser@latest
# Build all platforms
goreleaser build --snapshot --clean
# Build current platform
goreleaser build --snapshot --clean --single-target
- Visit
http://localhost:5234
π‘ Tip: First registered account becomes administrator
Method 2: Build from Source
Requirements
- Go 1.24+
- Node.js 18+
- npm or pnpm
Build Steps
# Clone project
git clone https://github.com/leancodebox/GooseForum.git
cd GooseForum
# Build frontend
cd resource && pnpm install && pnpm build && cd ..
# Build backend
go mod tidy
go build -ldflags="-w -s" .
# Start service
./GooseForum serve
Development Mode
# Start all services (backend + frontend + admin)
./dev.sh
# Or run individually:
air # Backend with hot reload
cd resource && pnpm dev # Vue frontend
cd admin && pnpm dev # React admin panel
π§ Configuration
GooseForum auto-creates config.toml on first startup:
[server]
port = 5234 # Service port
url = "http://localhost" # Site URL
[db.default]
connection = "sqlite" # Database type (sqlite/mysql)
path = "./storage/database/sqlite.db"
π Detailed Configuration: Configuration Documentation
π Technical Architecture
Backend Tech Stack
- Go 1.24+ - Main language
- Gin - Web framework
- GORM - ORM
- SQLite/MySQL - Database
- JWT - Authentication
- Cobra - CLI
Frontend Tech Stack
- Alpine.js - Lightweight JS framework
- TailwindCSS 4 - CSS framework
- GoHTML - Server-side templates
- Vite - Build tool
Admin Panel Tech Stack
- React 19 - UI framework
- TypeScript - Type safety
- shadcn-admin - Admin template
- TanStack Query/Router - Data fetching & routing
- Radix UI - Component library
π Project Structure
GooseForum/
βββ app/ # Backend code
β βββ bundles/ # Utilities (JWT, cache, events)
β βββ console/ # CLI commands
β βββ http/ # Controllers, middleware, routes
β βββ models/ # GORM models
β βββ service/ # Business services
βββ resource/ # Frontend resources
β βββ src/ # Alpine.js source
β βββ static/ # Static assets
β βββ templates/ # GoHTML templates
βββ admin/ # React admin panel
βββ docs/ # Documentation
βββ main.go # Entry point
βββ config.toml # Configuration
π‘ Admin Features
# Reset admin password
./GooseForum user:manage
# Set user email
./GooseForum user:set-email <email>
Admin Panel Features
- User Management - Search, filter, ban, delete users
- Site Settings - General, brand, footer, mail, security, posting
- Category Management - Create, edit, delete categories
- Sponsorship Management - Sponsor tiers and user sponsors
- Dashboard - Traffic stats, daily analytics
Data Backup
- Automatic scheduled SQLite backup
- Configurable frequency and retention
- Backup in
./storage/databasebackup/
π¦ Deployment
Production
- Use reverse proxy (Nginx/Apache)
- Configure HTTPS
- Set up scheduled backups
- Monitor logs
Docker
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY GooseForum .
CMD ["./GooseForum", "serve"]
π€ Contributing
- Fork this project
- Create feature branch (
git checkout -b feature/AmazingFeature)
- Commit changes (
git commit -m 'Add AmazingFeature')
- Push branch (
git push origin feature/AmazingFeature)
- Create Pull Request
π License
MIT License - see LICENSE
π Acknowledgments
Thanks to all contributors!
If this project helps you, please give us a βοΈ
Made with β€οΈ by LeanCodeBox