Dan's Plugins Community Website is the central hub for the Dan's Plugins Community. It showcases DPC plugins, provides links to documentation and support resources, and acts as the public face of the community at https://dansplugins.com.
This repository holds both halves of the site:
| Path | What it is | Toolchain |
|---|---|---|
| repository root | The Next.js front end (pages/, components/, services/, utils/) |
Node.js 18+ |
dpc-api/ |
The Spring Boot back end serving community data (accounts, likes, factions, the plugin catalogue) | Java 17, Maven (via the bundled ./mvnw) |
Front-end work needs only Node.js. Back-end work also needs Java 17. Running the whole stack locally is easiest with Docker Compose — see Development.
These steps run the front end on its own. Features backed by the API (accounts, likes, the leaderboard) need dpc-api running too; see Development.
- Ensure Node.js (v18 or later) is installed on your machine.
- Clone this repository:
git clone https://github.com/Dans-Plugins/dansplugins-dot-com.git - Install dependencies:
npm install
- Build the project:
npm run build
- Start the server:
npm run start
The site will be available at http://localhost:3000.
npm run dev is the day-to-day development server, and Docker Compose brings up the whole stack including dpc-api. See the Development section below for both.
- User Guide – Getting started and common scenarios
- Configuration Guide – Detailed configuration options
- API Documentation – The
dpc-apiback end: endpoints, configuration and local setup - Resource Hub Design – How the plugin catalogue grows into full resource pages
- Changelog – Release history
You can find the support Discord server here.
Please fill out a bug report here.
npm run lint
If you see no errors, the lint check has passed.
The frontend uses Vitest for unit tests. Run the suite with:
npm test
Test files live in the __tests__/ directory. If all tests pass, the suite has succeeded.
If the change touches dpc-api/:
cd dpc-api && ./mvnw verify
CI runs the front-end checks and this one as separate jobs on every pull request.
npm run dev is the hot-reloading path — edits are picked up without a restart:
npm run dev
On its own it serves the front end only, against whatever NEXT_PUBLIC_API_URL points at.
Docker Compose brings up the site together with dpc-api, its database, and the UserAuth service the API delegates authentication to. The site runs as a production build here, so it does not hot-reload: source is copied into the image, and changes need a rebuild (./up.sh rebuilds).
- Install Docker Desktop.
- Install the site's dependencies on the host:
This step is not optional:
npm install
compose.ymlbind-mounts./node_modulesinto the website container, so on a fresh clone with no hostnode_modulesthe container starts against an empty directory and fails to launch. - Set
JWT_SECRET— the stack will not start without it. Either export it, or put it in a.envfile in the project root (git-ignored):See CONFIG.md for what it does and the other variables available.export JWT_SECRET="your-secret-key-at-least-32-bytes-long"
- Start the stack:
The site will be accessible at
./up.sh
http://localhost:3000and the API athttp://localhost:45345.
./down.sh
| Name | Main Contributions |
|---|---|
| Dans | Project founder and lead developer |
This project is licensed under the MIT License.
You are free to use, modify, and distribute this software, provided that the original copyright and license notice are included.
See the LICENSE file for the full text.
This project is in active development.