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
- 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
- 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
- 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
- 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# 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:5234to start using
💡 Tip: After first startup, the first registered account will automatically become an administrator
- Go 1.23+
- Node.js 18+
- npm or yarn
# 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 serveGooseForum 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
- 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
- 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
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
# Reset admin password
./GooseForum user:manage
# Set user email
./GooseForum user:set-email- Automatic scheduled SQLite database backup
- Configurable backup frequency and retention count
- Backup files stored in
./storage/databasebackup/directory
# Install Air hot reload tool
go install github.com/cosmtrek/air@latest
# Start development mode
air
# Frontend development mode
cd resource
npm run dev- Use reverse proxy (Nginx/Apache)
- Configure HTTPS certificates
- Set up scheduled backups
- Monitor log files
# Dockerfile example
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY GooseForum .
CMD ["./GooseForum", "serve"]- 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
This project is open source under the MIT License.
- Configuration Documentation - Detailed configuration options
Thanks to all developers who have contributed to the GooseForum project!
If this project helps you, please give us a ⭐️
Made with ❤️ by LeanCodeBox