Skip to content

wXwcoder/go-react-admin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

12 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Go React Admin

ไธ€ไธชไฝฟ็”จGo๏ผˆGin, GORM๏ผ‰ๅ’ŒReactๆž„ๅปบ็š„็ฎก็†ๅŽๅฐ็ณป็ปŸใ€‚

้กน็›ฎ็ฎ€ไป‹

Go React Adminๆ˜ฏไธ€ไธชๅŸบไบŽๅ‰ๅŽ็ซฏๅˆ†็ฆปๆžถๆž„็š„็ŽฐไปฃๅŒ–็ฎก็†็ณป็ปŸ๏ผŒไธ“ไธบ้œ€่ฆๅฟซ้€Ÿๆž„ๅปบไผไธš็บงๅŽๅฐๅบ”็”จ็š„ๅผ€ๅ‘่€…่ฎพ่ฎกใ€‚ๅŽ็ซฏ้‡‡็”จGolang Ginๆก†ๆžถ๏ผŒๅ‰็ซฏ้‡‡็”จReactๆก†ๆžถ๏ผŒๆ•ฐๆฎๅบ“ไฝฟ็”จMySQLใ€‚็ณป็ปŸๆ”ฏๆŒๅคš็งŸๆˆทๆžถๆž„๏ผŒ้…็ฝฎ้‡‡็”จ็Žฏๅขƒๅ˜้‡๏ผˆ.envๆ–‡ไปถ๏ผ‰ๆ ผๅผใ€‚

ไธป่ฆๅŠŸ่ƒฝๅŒ…ๆ‹ฌๆƒ้™็ฎก็†ใ€็”จๆˆท็ฎก็†ใ€่ง’่‰ฒ็ฎก็†ใ€่œๅ•็ฎก็†ใ€API็ฎก็†ใ€ๆ—ฅๅฟ—็ฎก็†็ญ‰๏ผŒ้€‚็”จไบŽๅ„็งไผไธš็บงๅบ”็”จๅœบๆ™ฏใ€‚

ๅœจ็บฟไฝ“้ชŒ

Go React Admin ๅœจ็บฟไฝ“้ชŒ http://hantukeji.net:13000/

ๆต‹่ฏ•่ดฆๅท๏ผš

  • ็”จๆˆทๅ๏ผšadmin
  • ๅฏ†็ ๏ผš123456

้ข„่งˆๅ›พ

็ณป็ปŸ้ข„่งˆๅ›พ

ๅŠŸ่ƒฝ็‰นๆ€ง

  • ๆƒ้™็ฎก็†: ๅŸบไบŽJWTๅฎž็Žฐ็ป†็ฒ’ๅบฆๆƒ้™ๆŽงๅˆถ
  • ็”จๆˆท็ฎก็†: ๆ”ฏๆŒ็”จๆˆทไฟกๆฏ็š„ๅขžๅˆ ๆ”นๆŸฅๅ’Œ็Šถๆ€็ฎก็†
  • ่ง’่‰ฒ็ฎก็†: ๅฏไปฅไธบ่ง’่‰ฒๅˆ†้…ไธๅŒ็š„APIๆƒ้™ๅ’Œ่œๅ•ๆƒ้™
  • ่œๅ•็ฎก็†: ๅฎž็Žฐ็”จๆˆทๅŠจๆ€่œๅ•้…็ฝฎๅ’ŒไธๅŒ่ง’่‰ฒไธๅŒ่œๅ•ๅฑ•็คบ
  • API็ฎก็†: ๆ”ฏๆŒAPIๆŽฅๅฃ็š„ๅขžๅˆ ๆ”นๆŸฅๅ’Œๅˆ†็ป„็ฎก็†
  • ๆ—ฅๅฟ—็ฎก็†: ่ฎฐๅฝ•็”จๆˆท็™ปๅฝ•ไฟกๆฏๅ’Œๆ“ไฝœ่กŒไธบ
  • ๅคš็งŸๆˆทๆ”ฏๆŒ: ๅฎž็Žฐ็งŸๆˆทๆ•ฐๆฎ้š”็ฆปๅ’Œ็งŸๆˆท็บงๅˆซ็š„ๆƒ้™ๆŽงๅˆถ
  • ๅ“ๅบ”ๅผ่ฎพ่ฎก: ้€‚้…ไธๅŒ่ฎพๅค‡ๅฑๅน•ๅฐบๅฏธ

ๆŠ€ๆœฏๆžถๆž„

ๅŽ็ซฏๆŠ€ๆœฏๆ ˆ

  • ็ผ–็จ‹่ฏญ่จ€: Golang
  • Webๆก†ๆžถ: Gin
  • ORMๆก†ๆžถ: GORM
  • ่ฎค่ฏๆœบๅˆถ: JWT
  • ้…็ฝฎ็ฎก็†: ็Žฏๅขƒๅ˜้‡ (.envๆ–‡ไปถ)
  • ๆ—ฅๅฟ—ๆก†ๆžถ: Zap
  • ็ผ“ๅญ˜: Redis
  • ๆ•ฐๆฎๅบ“: MySQL (8.0+)

ๅ‰็ซฏๆŠ€ๆœฏๆ ˆ

  • ๆก†ๆžถ: React 18+
  • ่ทฏ็”ฑ: React Router v6
  • ๆž„ๅปบๅทฅๅ…ท: React Scripts

้กน็›ฎ็ป“ๆž„

go-react-admin/
โ”œโ”€โ”€ server/          # ๅŽ็ซฏGoๆœๅŠก
โ”‚   โ”œโ”€โ”€ api/         # APIๅค„็†ๅ‡ฝๆ•ฐ
โ”‚   โ”œโ”€โ”€ config/      # ้…็ฝฎๆ–‡ไปถ
โ”‚   โ”œโ”€โ”€ global/      # ๅ…จๅฑ€ๅ˜้‡
โ”‚   โ”œโ”€โ”€ initialize/  # ๅˆๅง‹ๅŒ–ๅ‡ฝๆ•ฐ
โ”‚   โ”œโ”€โ”€ middleware/  # ไธญ้—ดไปถ
โ”‚   โ”œโ”€โ”€ model/       # ๆ•ฐๆฎๆจกๅž‹
โ”‚   โ”œโ”€โ”€ router/      # ่ทฏ็”ฑๅฎšไน‰
โ”‚   โ”œโ”€โ”€ utils/       # ๅทฅๅ…ทๅ‡ฝๆ•ฐ
โ”‚   โ”œโ”€โ”€ main.go      # ไธป็จ‹ๅบๅ…ฅๅฃ
โ”‚   โ””โ”€โ”€ go.mod       # Goๆจกๅ—ๅฎšไน‰
โ””โ”€โ”€ web/             # ๅ‰็ซฏReactๅบ”็”จ
    โ”œโ”€โ”€ public/      # ้™ๆ€่ต„ๆบ
    โ””โ”€โ”€ src/         # ๆบไปฃ็ 
        โ”œโ”€โ”€ assets/  # ้™ๆ€่ต„ๆบ
        โ”œโ”€โ”€ components/ # ็ป„ไปถ
        โ”œโ”€โ”€ pages/   # ้กต้ข
        โ”œโ”€โ”€ routes/  # ่ทฏ็”ฑ้…็ฝฎ
        โ”œโ”€โ”€ store/   # ็Šถๆ€็ฎก็†
        โ””โ”€โ”€ utils/   # ๅทฅๅ…ทๅ‡ฝๆ•ฐ

็ณป็ปŸๆžถๆž„ๅ›พ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    Client (React Frontend)                  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚ HTTPS/API
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                      Load Balancer                          โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
        โ”‚                     โ”‚                     โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Web Server 1  โ”‚   โ”‚  Web Server 2  โ”‚   โ”‚  Web Server N  โ”‚
โ”‚  (Gin Backend) โ”‚   โ”‚  (Gin Backend) โ”‚   โ”‚  (Gin Backend) โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
        โ”‚                     โ”‚                     โ”‚
        โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚     Redis         โ”‚
                    โ”‚  (Session/Cache)  โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚     MySQL         โ”‚
                    โ”‚  (Multi-tenant)   โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๅฟซ้€Ÿๅผ€ๅง‹

ๅŽ็ซฏ

# ่ฟ›ๅ…ฅๅŽ็ซฏ็›ฎๅฝ•
cd server

# ๅฎ‰่ฃ…ไพ่ต–
go mod tidy

# ่ฟ่กŒๆœๅŠก
go run main.go

ๅ‰็ซฏ

# ่ฟ›ๅ…ฅๅ‰็ซฏ็›ฎๅฝ•
cd web

# ๅฎ‰่ฃ…ไพ่ต–
npm install

# ๅฏๅŠจๅผ€ๅ‘ๆœๅŠกๅ™จ
npm start

็ฎก็†ๅ‘˜่ดฆๅท

  • ่ดฆๅท๏ผšadmin
  • ๅฏ†็ ๏ผš123456

ๅŠŸ่ƒฝ็‰นๆ€งๅฎŒๆˆๆƒ…ๅ†ต

  • ็”จๆˆท่ฎค่ฏ (JWT)
  • ็”จๆˆท็ฎก็†
  • ่ง’่‰ฒ็ฎก็†
  • ่œๅ•็ฎก็†
  • API็ฎก็†
  • ๆ—ฅๅฟ—็ฎก็†
  • ๅคš็งŸๆˆทๆ”ฏๆŒ
  • ๆƒ้™ๆŽงๅˆถ
  • ๆ•ฐๆฎ็ปŸ่ฎก
  • ็ณป็ปŸ้…็ฝฎ

้ƒจ็ฝฒ

้กน็›ฎๆ”ฏๆŒ Docker ๅฎนๅ™จๅŒ–้ƒจ็ฝฒ๏ผŒๆไพ› Docker Compose ้…็ฝฎๆ–‡ไปถ๏ผŒๅฏไธ€้”ฎๅฏๅŠจๆ‰€ๆœ‰ไพ่ต–ๆœๅŠกใ€‚

# ไฝฟ็”จ Docker Compose ๅฏๅŠจ
docker-compose up -d

้กน็›ฎ่ง„ๅˆ’

้กน็›ฎๅผ€ๅ‘ๅˆ†ไธบๅ››ไธช้˜ถๆฎต๏ผš

  1. ๅŸบ็ก€ๆก†ๆžถๆญๅปบ: ๅˆๅง‹ๅŒ–้กน็›ฎ็ป“ๆž„๏ผŒ้›†ๆˆๅŸบ็ก€ๆŠ€ๆœฏๆ ˆ
  2. ๆ ธๅฟƒๅŠŸ่ƒฝๅผ€ๅ‘: ๅฎž็Žฐ่ฎค่ฏๆŽˆๆƒใ€็”จๆˆทใ€่ง’่‰ฒใ€่œๅ•ใ€APIใ€ๆ—ฅๅฟ—็ญ‰ๆ ธๅฟƒๆจกๅ—
  3. ็ณป็ปŸๅฎŒๅ–„: ๆ€ง่ƒฝไผ˜ๅŒ–ใ€ๅฎ‰ๅ…จๅŠ ๅ›บใ€ๅฎŒๅ–„ๆต‹่ฏ•
  4. ้ƒจ็ฝฒไธŽๆ–‡ๆกฃ: ็ผ–ๅ†™้ƒจ็ฝฒๆ–‡ๆกฃ๏ผŒๅฎŒๅ–„ๅ„็ฑปๆ‰‹ๅ†Œ

่ดก็Œฎ

ๆฌข่ฟŽๆไบค Issue ๅ’Œ Pull Request ๆฅๅธฎๅŠฉๆ”น่ฟ›้กน็›ฎใ€‚

่ฎธๅฏ่ฏ

MIT License