Skip to content

wolfstar-project/wolfstar.rocks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,458 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
WolfStar Logo

WolfStar.rocks

The official web dashboard for WolfStar, a powerful multi-purpose Discord bot.

Official Site · Blog · WolfStar Invite Link · Support Server · Feedback

Netlify deploy status badge GitHub latest release badge GitHub release date badge
Discord community badge Codecov coverage badge GitHub contributors badge
GitHub forks badge GitHub stars badge GitHub issues badge GitHub license badge
PRs welcome badge Codspeed badge

Share WolfStar Repository

Pioneering the new age of server moderation management. Built for you, the Super Admin.

Table of contents

Table of Contents


👋🏻 Welcome to WolfStar.rocks

WolfStar.rocks is the official web dashboard for WolfStar, a powerful multi-purpose Discord bot for moderation and community management.

✨ Features

  • Modern Web Interface: Built with Nuxt 4 and modern web technologies for a smooth user experience.
  • Guild Management: Manage your Discord server's settings, roles, and permissions through an intuitive web interface.
  • Real-time Updates: Live updates for guild data and bot status.
  • Responsive Design: Works seamlessly on desktop, tablet, and mobile devices.
  • OAuth Integration: Secure Discord authentication and authorization.
  • Multi-language Support: Support for multiple languages (coming soon).
  • Dashboard Analytics: View server statistics and bot usage metrics.

🚀 Self-Hosting WolfStar.rocks Requirements

  • Node.js: WolfStar.rocks is built on Node.js, so you will need to have Node.js (v24+) installed.
  • WolfStar Bot: You need a running instance of WolfStar bot to connect this dashboard to.
  • Discord Bot Application: A Discord bot application with proper OAuth2 configuration.
  • PostgreSQL: PostgreSQL database (shared with WolfStar bot instance).

🛳 Self-Hosting WolfStar.rocks

Quick Setup

  1. Clone the repository

    git clone https://github.com/wolfstar-project/wolfstar.rocks.git
    cd wolfstar.rocks
  2. Install dependencies

    pnpm install
  3. Environment Configuration

    • Duplicate .env.example and rename it to .env.
    • Fill in all required environment variables.
    • Configure Discord OAuth2 settings in your Discord Developer Portal.
  4. Database Setup

    • Ensure your WolfStar bot database is accessible.
    • Run database migrations if needed.
  5. Start the development server

    pnpm dev

Environment Variables

  1. Duplicate .env.example and rename it to .env.
  2. Fill in all required environment variables.
  3. Configure Discord OAuth2 settings in your Discord Developer Portal.

Discord OAuth2 Configuration

  1. Go to the Discord Developer Portal.
  2. Select your bot application.
  3. Navigate to the OAuth2 tab.
  4. Add redirect URLs:
    • http://localhost:3000/oauth/callback
    • http://localhost:3000/oauth/guild
  5. Save your changes.

Available Scripts

  • pnpm dev - Start development server.
  • pnpm dev:pwa - Start development server with PWA support.
  • pnpm build - Build for production.
  • pnpm preview - Preview production build.
  • pnpm lint - Run Oxlint & Oxfmt.
  • pnpm lint:fix - Run Oxlint & Oxfmt and fix issues.
  • pnpm prisma:migrate:dev - Create and apply a new migration in development.
  • pnpm prisma:migrate:dev:create - Create a new migration in development.
  • pnpm prisma:migrate:diff - Check for schema drift between migrations and schema (exits with error if differences found).
  • pnpm prisma:migrate:deploy - Apply all pending migrations to the database.
  • pnpm prisma:migrate:status - Check the status of migrations.
  • pnpm prisma:migrate:resolve - Mark a migration as applied or rolled back.
  • pnpm prisma:push - Push the Prisma schema to the database without generating a migration.
  • pnpm prisma:seed - Seed the database with initial data.
  • pnpm prisma:studio - Open Prisma Studio for database management.
  • pnpm prisma:generate - Generate Prisma client.
  • pnpm prisma:generate:watch - Watch for changes and regenerate Prisma client.
  • pnpm generate-pwa-icons - Generate PWA icons and assets.
  • pnpm test - Run all tests.
  • pnpm test:unit - Run unit tests.
  • pnpm test:nuxt - Run Nuxt environment tests.
  • pnpm test:browser - Run browser tests with Playwright.
  • pnpm test:bench - Run performance benchmarks.
  • pnpm typecheck - Run TypeScript checks.

Testing & Benchmarks

Running Tests

  • pnpm test - Run all tests with Vitest
  • pnpm test:unit - Run unit tests only (Node.js environment)
  • pnpm test:nuxt - Run Nuxt component tests (Nuxt environment with browser)
  • pnpm test:browser - Run full browser E2E tests with Playwright
  • pnpm test:bench - Run performance benchmarks

Performance Benchmarks

WolfStar.rocks uses CodSpeed for continuous performance tracking. Benchmarks automatically run in CI on every commit and PR, with results visible on the CodSpeed dashboard.

Currently Benchmarked:

  • shared/utils/comparators.ts
    • Functions: differenceArray, differenceMap
    • Benchmark: test/unit/shared/utils/comparators.bench.ts
  • server/utils/guildNameToAcronym.ts
    • Function: guildNameToAcronym
    • Benchmark: test/unit/server/utils/guild-name-to-acronym.bench.ts

Adding New Benchmarks:

  1. Create a .bench.ts file under test/unit/ mirroring the path of the code you're benchmarking (e.g., for shared/utils/myUtil.ts, create test/unit/shared/utils/myUtil.bench.ts)
  2. Import the utility and Vitest's bench() function:
    import { bench, describe } from "vitest";
    import { myUtility } from "../../../../shared/utils/myUtility";
  3. Write benchmarks with descriptive names:
    describe("myUtility benchmarks", () => {
      bench("small dataset (10 items)", () => {
        myUtility(smallData);
      });
      bench("large dataset (1000 items)", () => {
        myUtility(largeData);
      });
    });
  4. Run locally: pnpm test:bench
  5. CI will automatically track performance when you open a PR

Development Guidelines

  • Follow the existing code style and conventions.
  • Write clear, descriptive commit messages.
  • Add tests for new features.
  • Update documentation as needed.
  • Ensure all CI checks pass.

Development Tools

  • Nuxt 4 - Vue.js framework
  • TypeScript - Type safety
  • Oxlint - Code linting
  • Oxfmt - Code formatting
  • Prisma - Database ORM
  • Tailwind CSS - Utility-first CSS framework
  • DaisyUI - Tailwind CSS component library
  • NuxtUI - Components

AI Development Assistant

  • Custom GitHub Copilot Agent - Specialized WolfStar development agent with Context7 MCP integration (see .github/agents/wolfstar-dev-agent.md).
  • Autonomous Problem-Solving - Beast Mode with iterative refinement.
  • Real-time Documentation - Up-to-date library docs via Context7.
  • Quality First - Integrated Oxlint, Sentry, and testing workflows.

⌨️ Local Development

Refer to CONTRIBUTING.md for detailed setup instructions.

💻 Online Development

Click any of the buttons below to start a new development environment to demo or contribute to the codebase without having to install anything on your machine:

Open in VS Code Open in GitHub1s Open in GitHub Codespaces Open in StackBlitz Edit in Codesandbox Open in Codeanywhere Open in Gitpod

🤝 Contributing

Thank you to all the people who already contributed to WolfStar.rocks! Please make sure to read the Contributing Guide before making a pull request.

Project contributors

❤️ Sponsor

If you like WolfStar and want to support the project, consider making a donation. Every contribution helps to maintain and improve the bot.

Support on Ko-fi Support on Patreon Sponsor on GitHub

Thank you for your support!


Back to top


📝 License

Copyright © 2024 WolfStar.
This project is Apache 2.0 licensed.

About

Official website for Wolfstar

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors