Profile
Back to NewsBack
GitHub Trending 6 min
Reader Mode
KunMoe/kun-galgame-forum: ๐Ÿณ The CUTEST visualnovel / galgame forum! Built with Nuxt4, GO Fiber and PostgreSQL. Kun Visual Novel forum 6th generation! ๅผ€ๆบ, ๅ…่ดน, ้›ถ้—จๆง›, ๆœ€ๅ…ˆ่ฟ›็š„ Galgame ่ฎบๅ›็คพๅŒบ!

KunMoe/kun-galgame-forum: ๐Ÿณ The CUTEST visualnovel / galgame forum! Built with Nuxt4, GO Fiber and PostgreSQL. Kun Visual Novel forum 6th generation! ๅผ€ๆบ, ๅ…่ดน, ้›ถ้—จๆง›, ๆœ€ๅ…ˆ่ฟ›็š„ Galgame ่ฎบๅ›็คพๅŒบ!

5 hours ago

!kun-galgame-forum

English | ๆ—ฅๆœฌ่ชž | ็ฎ€ไฝ“ไธญๆ–‡ | ็น้ซ”ไธญๆ–‡

Contact us: Telegram | Discord

The image is sourced from the game Ark Order and features the character KUN (้ฒฒ).

AI-assisted development: Since version 5.1.0, this project has used LLM-assisted development tools, including Codex and Claude Code. All code through version 5.0.70 was written entirely by hand. The last fully hand-written revision is v5.0.70 (commit b4ad59e).

้ฒฒ Galgame ่ฎบๅ› (KUN Galgame Forum)

Website Introduction

้ฒฒ Galgame is a community of people who love visual novels and Galgames. Its public sites include:

For more information, visit About ้ฒฒ Galgame.

Features

  • Visual novel catalog โ€” Community submissions and review backed by the shared Catalog registry, with VNDB references, multilingual metadata, ratings, tags, engines, companies, and release information
  • Resource sharing โ€” Game patches, translations, voice packs, and other resources with provider tracking plus platform and language filters
  • Discussion forum โ€” Topics, replies, nested comments, polls, reactions, upvotes, favorites, drafts, and moderation workflows
  • Collaborative editing โ€” Git-style proposals, review, revision history, reverts, and contributor credits through the Catalog editing engine
  • Private messaging and chat โ€” Direct messages, contacts, read state, reactions, and recall support
  • Moemoepoint โ€” An ecosystem-wide contribution score whose authoritative balance and ledger are owned by OAuth
  • Rich content editing โ€” The shared KUN editor, built on Milkdown and CodeMirror, with KaTeX, syntax highlighting, mentions, and image uploads
  • Personalized appearance โ€” Light and dark modes, configurable transparency, fonts, background images, and content-rating preferences
  • Search and discovery โ€” Site-wide search across topics, replies, comments, users, and visual novels, plus rankings, activity feeds, release calendars, collections, and recommendations
  • SEO and feeds โ€” Nuxt SSR, Schema.org metadata, chunked sitemaps, canonical redirects, and RSS feeds for topics and visual novels

Architecture

This repository is a pnpm workspace monorepo containing a Go API and a Nuxt frontend. It is a downstream application of nextmoe-infra, the identity and shared-service hub for the KUN ecosystem.

| Package | Responsibility | | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | apps/api | Go Fiber v3 BFF and REST API โ€” owns forum data and interactions, enriches responses, talks to shared services, and runs scheduled synchronization jobs | | apps/web | Nuxt 4 SSR frontend โ€” Vue pages, components, Pinia state, validation, SEO, and browser interaction; Nitro serves feeds, sitemap data, content-image handling, and legacy redirects |

The forum owns topics, replies, messages, resources, ratings, quizzes, collections, toolsets, local counters, and its PostgreSQL schema. Shared capabilities remain single-sourced in infra:

| Capability | Source of truth | | ----------------------------------------------- | --------------------------------------------------------------------------------------------- | | Identity and user profile | OAuth; numeric user IDs stay identical across services | | Browser authentication | An opaque kungal_session cookie backed by Redis; OAuth tokens never live in browser storage | | Moemoepoint balance and ledger | OAuth; the forum keeps only a cached local view where required | | Visual novel metadata, claims, and edit history | Catalog; newly submitted works adopt the registry-issued work ID as their forum gid | | Avatars and content images | The content-addressed image_service | | Galgame and resource comment threads | The shared Community service | | Reports and enforcement | The shared Trust service | | Toolset archives | The shared Artifact service |

The retired Galgame Wiki family is not a contract for new work. Some compatibility reads and notification surfaces remain temporarily while the catalog cutover finishes, but new submission, claim, review, and editing flows target Catalog.

Tech Stack

| Layer | Technology | | -------------------- | ---------------------------------------------------------------------------------------------------------------------- | | Frontend | Nuxt 4 + Vue 3 SSR (Nitro node-server) | | UI | @kungal/ui-nuxt and @kungal/ui-vue | | Editor | @kungal/editor-nuxt, Milkdown, and CodeMirror | | Styling | Tailwind CSS 4 | | State management | Pinia with persisted state | | Backend API | Go 1.26 + Fiber v3 | | Database | PostgreSQL through GORM, with explicit raw-SQL migrations and no AutoMigrate | | Cache and sessions | Redis | | Search | PostgreSQL for forum content; the shared Catalog service for visual novels and taxonomy | | Authentication | OAuth-backed BFF session with a 90-day sliding lifetime | | Shared services | Catalog, Community, Trust, Image, Artifact, and OAuth clients | | Scheduler | robfig/cron for daily maintenance and Catalog event synchronization | | Validation and tests | Zod, Vitest, Vue Test Utils, and Go tests | | Deployment | Docker images published to GHCR and deployed with Dokploy; legacy PM2 scripts remain available | | Analytics | Umami |

Project Structure

โ”œโ”€โ”€ apps/
โ”‚   โ”œโ”€โ”€ api/                 # Go Fiber v3 BFF / REST API
โ”‚   โ”‚   โ”œโ”€โ”€ cmd/             # server, migrate, and one-off maintenance tools
โ”‚   โ”‚   โ”œโ”€โ”€ internal/        # domain handlers, services, repositories, and models
โ”‚   โ”‚   โ”œโ”€โ”€ migrations/      # explicit .up.sql / .down.sql migrations
โ”‚   โ”‚   โ””โ”€โ”€ pkg/             # shared clients, config, errors, permissions, and utilities
โ”‚   โ””โ”€โ”€ web/                 # Nuxt 4 SSR frontend
โ”‚       โ”œโ”€โ”€ app/             # pages, components, composables, Pinia stores, and styles
โ”‚       โ”œโ”€โ”€ server/          # Nitro feeds, sitemap source, middleware, and redirects
โ”‚       โ””โ”€โ”€ shared/          # shared TypeScript types and utilities
โ”œโ”€โ”€ docker/                  # Dockerfiles, environment examples, and deployment notes
โ”œโ”€โ”€ docker-compose*.yml      # local integration and production stacks
โ”œโ”€โ”€ scripts/                 # legacy PM2 lifecycle scripts
โ””โ”€โ”€ docs/                    # project docs and generated read-only contract mirrors

Getting Started

Prerequisites: Node.js 24+ with Corepack, Go 1.26+, PostgreSQL, and Redis. Full local functionality also requires the OAuth, Catalog, Image, Artifact, Community, and Trust services from nextmoe-infra.

Start the local shared platform first:

cd /path/to/nextmoe-infra
docker compose -f docker-compose.dev.yml --profile full up -d

Optional: refresh the local databases with real-shaped, desensitized data.

./scripts/refresh-dev-db.sh

Then configure and start the forum:

corepack enable
pnpm install

cp apps/api/.env.example apps/api/.env cp apps/web/.env.example apps/web/.env

Applies this repository's routine local migrations.

pnpm migrate

API: http://127.0.0.1:2334, Web: http://127.0.0.1:2333

pnpm dev

The checked-in environment examples target the local infra stack. See the infra development-environment guide for service profiles, database refreshes, and local credentials. Cross-repository identity migrations have additional ordering requirements documented in docs/migration/user/README.md.

To run the forum in containers after the infra network is available:

docker compose run --rm migrate
docker compose up -d kungal-api web

See docker/README.md for the complete container and deployment runbook.

Scripts

| Command | Description | | ---------------------------------------------------------------- | -------------------------------------------------------- | | pnpm dev | Run API and Web together | | pnpm dev:web / pnpm dev:api | Run one application | | pnpm build | Build the Go API, then the Nuxt frontend | | pnpm lint / pnpm lint:fix | Check or fix frontend ESLint issues | | pnpm typecheck | Run the frontend vue-tsc check | | pnpm -F web test | Run frontend Vitest tests | | pnpm test:api | Run Go tests | | pnpm vet | Run go vet | | pnpm format | Format both applications with Prettier and gofmt | | pnpm migrate / pnpm migrate:down | Apply or roll back this repository's database migrations | | pnpm prod:deploy / prod:start / prod:stop / prod:restart | Run the legacy PM2 lifecycle scripts | | pnpm prod:logs | Follow legacy PM2 logs |

Development Boundaries

  • Contract mirrors under docs/oauth/, docs/image_service/, and docs/artifact/ are generated and read-only. Change their sources in nextmoe-infra, then synchronize them through kungal-docs.
  • Database schema changes require a numbered migration in apps/api/migrations/; the API never runs GORM AutoMigrate at startup.
  • Frontend work should use KunUI components before introducing local replacements. KunUI itself is an upstream package and is not modified in this repository.
  • Keep frontend and backend response shapes aligned. The Go API returns a stable { code, message, data } envelope.

Join / Contact Us

License

This project is licensed under the AGPL-3.0 license.

Chat with me