π Language / θ―θ¨
π¨π³ δΈζ | πΊπΈ English
π Project Overview
GooseForum is a modern technical community platform built with Go + Vue 3 + TailwindCSS technology stack. It provides simple deployment and rich community features, designed as a lightweight forum system specifically for technical developers.
π Live Demo: GooseForum
β¨ Core Features
π― User System
- User Registration/Login - Email activation support
- Permission Management - Role-based access control system
- User Center - Profile management, avatar upload
- Points System - Check-in, posting, reply point rewards
- Admin Panel - Complete backend management functionality
π Content Management
- Article Publishing - Markdown editor support
- Comment System - Multi-level comment replies
- Article Categories - Flexible category management
- Tag System - Article tagging management
- Content Moderation - Admin content review functionality
π Technical Features
- Single File Deployment - Single executable file after compilation
- SQLite Support - Default SQLite, MySQL support
- Auto Backup - Scheduled database backup
- Responsive Design - Perfect mobile support
- Theme Switching - Light/dark theme support
- SEO Friendly - Complete SEO optimization
π Quick Start
Method 1: Download Pre-compiled Version (Recommended)
- Download the pre-compiled version for your system from GitHub Releases
- Extract and start:
# Extract the downloaded file
tar -zxvf GooseForum_Linux_x86_64.tar.gz
# Grant execute permission
chmod +x ./GooseForum
# Start service
./GooseForum serve
Quick Build with GoReleaser
# Install GoReleaser
go install github.com/goreleaser/goreleaser@latest
# Build for all platforms
goreleaser build --snapshot --clean
# Build for current platform
goreleaser build --snapshot --clean --single-target
- Visit
http://localhost:5234 to start using
π‘ Tip: After first startup, the first registered account will automatically become an administrator
Method 2: Build from Source
Requirements
- Go 1.23+
- Node.js 18+
- npm or yarn
Build Steps
# Clone project
git clone https://github.com/leancodebox/GooseForum.git
cd GooseForum
# Build frontend resources
cd resource
npm install
npm run build
cd ..
# Build backend
go mod tidy
go build -ldflags="-w -s" .
# Start service
./GooseForum serve
π§ Configuration
GooseForum will automatically create a config.toml configuration file on startup. Main configuration items:
[server]
port = 5234 # Service port
url = "http://localhost" # Site URL
[db.default]
connection = "sqlite" # Database type (sqlite/mysql)
path = "./storage/database/sqlite.db" # SQLite database path
π Detailed Configuration: Configuration Documentation
π Technical Architecture
Backend Tech Stack
- Go 1.23+ - Main development language
- Gin - Web framework
- GORM - ORM framework
- SQLite/MySQL - Database support
- JWT - Authentication
- Viper - Configuration management
- Cobra - Command line tool
Frontend Tech Stack
- Vue 3 - Frontend framework (Composition API)
- Vite - Build tool
- TailwindCSS 4 - CSS framework
- DaisyUI - UI component library
- TypeScript - Type support
- Pinia - State management
- Vue Router - Route management
- Air - Hot reload development
- GoReleaser - Automated build and release
- Vitest - Frontend testing
π Project Structure
GooseForum/
βββ app/ # Backend application code
β βββ bundles/ # Utility packages
β βββ console/ # Command line tools
β βββ http/ # HTTP controllers and routes
β βββ models/ # Data models
β βββ service/ # Business services
βββ resource/ # Frontend resources
β βββ src/ # Vue source code
β βββ static/ # Static assets
β βββ templates/ # Go templates
βββ docs/ # Project documentation
βββ main.go # Program entry point
βββ config.toml # Configuration file
π‘ Admin Features
User Management
# Reset admin password
./GooseForum user:manage
# Set user email
./GooseForum user:set-email
Data Backup
- Automatic scheduled SQLite database backup
- Configurable backup frequency and retention count
- Backup files stored in
./storage/databasebackup/ directory
π Development Mode
# Install Air hot reload tool
go install github.com/cosmtrek/air@latest
# Start development mode
air
# Frontend development mode
cd resource
npm run dev
π¦ Deployment Recommendations
Production Environment Deployment
- Use reverse proxy (Nginx/Apache)
- Configure HTTPS certificates
- Set up scheduled backups
- Monitor log files
Docker Deployment
# Dockerfile example
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY GooseForum .
CMD ["./GooseForum", "serve"]
π€ Contributing
- Fork this project
- Create a feature branch (
git checkout -b feature/AmazingFeature)
- Commit your changes (
git commit -m 'Add some AmazingFeature')
- Push to the branch (
git push origin feature/AmazingFeature)
- Create a Pull Request
π License
This project is open source under the MIT License.
π Acknowledgments
Thanks to all developers who have contributed to the GooseForum project!
If this project helps you, please give us a βοΈ
Made with β€οΈ by LeanCodeBox