Skip to content

超简单社区构建软件 / Easy forum software for building friendly communities.

License

Notifications You must be signed in to change notification settings

leancodebox/GooseForum

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,273 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Image

GooseForum

🚀 Modern Go + Vue 3 + TailwindCSS Forum System

GitHub release Go version Vue version License GitHub stars

🌐 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)

  1. Download the pre-compiled version for your system from GitHub Releases
  2. 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
  1. 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

Development Tools

  • 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

  1. Use reverse proxy (Nginx/Apache)
  2. Configure HTTPS certificates
  3. Set up scheduled backups
  4. 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

  1. Fork this project
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Create a Pull Request

📄 License

This project is open source under the MIT License.

📚 Related Documentation

🙏 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

About

超简单社区构建软件 / Easy forum software for building friendly communities.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published