Skip to content

leancodebox/GooseForum

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,273 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

 
 
 

Contributors