132 lines
3.8 KiB
Markdown
132 lines
3.8 KiB
Markdown
# li'l Judd - Competitive Splatoon Bot
|
|
|
|
Welcome to li'l Judd, your go-to bot for enhancing your competitive Splatoon experience! Whether you're looking for match statistics, team coordination, or general Splatoon information, li'l Judd has got you covered.
|
|
|
|
## Features
|
|
|
|
- **Match Statistics:** Track and analyze your Splatoon matches to improve your gameplay.
|
|
- **Team Coordination:** Plan strategies and coordinate with your team more effectively.
|
|
- **General Splatoon Information:** Get information about weapons, maps, and game updates.
|
|
|
|
## Getting Started
|
|
|
|
To get started with li'l Judd, follow the instructions below.
|
|
|
|
### Prerequisites
|
|
|
|
- Node.js and pnpm installed (pnpm is strongly recommended for local development)
|
|
- Docker (optional, for containerized deployment)
|
|
- A Font Awesome subscription (required for the paid version used)
|
|
|
|
### Installation
|
|
|
|
1. Clone the repository:
|
|
|
|
```bash
|
|
git clone https://git.moonleay.net/Websites/liljudd-website.git
|
|
```
|
|
|
|
2. Install dependencies:
|
|
|
|
```bash
|
|
cd lil-judd
|
|
|
|
# Install pnpm if not already installed
|
|
npm i -g pnpm
|
|
|
|
# Add token to authenticate when using installing Font Awesome packages
|
|
echo "@fortawesome:registry=https://npm.fontawesome.com/" > ~/.npmrc
|
|
echo "//npm.fontawesome.com/:_authToken=<YOUR_TOKEN>" >> ~/.npmrc
|
|
|
|
pnpm install
|
|
```
|
|
|
|
3. Set up environment variables:
|
|
|
|
Create a `.env` file in the root directory and add the following variables:
|
|
|
|
```env
|
|
VITE_DISCORD_CLIENT=your_discord_client_id
|
|
VITE_DISCORD_CLIENT_SECRET=your_discord_client_secret
|
|
VITE_DISCORD_BOT_TOKEN=your_discord_bot_token
|
|
VITE_DISCORD_BOT_PERMISSIONS=18977581952080
|
|
|
|
VITE_AUTH_SECRET=your_auth_secret
|
|
|
|
VITE_DATABASE_URL=your_database_url
|
|
```
|
|
|
|
Recieve your discord applications client id & secret, as well as the bot token from the [Applications dashboard](https://discord.com/developers/applications/).
|
|
|
|
How to generate your `VITE_AUTH_SECRET` with [`openssl rand -base64 32`](https://authjs.dev/reference/core#secret).
|
|
|
|
Composite your `VITE_DATABASE_URL` like [`postgres://postgres:adminadmin@0.0.0.0:5432/db`](https://orm.drizzle.team/docs/get-started-postgresql#postgresjs).
|
|
|
|
#### Development
|
|
|
|
Specify `VITE_AUTH_REDIRECT_PROXY_URL` only if necessary, particularly when setting up a reverse proxy to test authentication with callbacks to your development box. [Auth.js Docs Reference](https://authjs.dev/reference/nextjs/#redirectproxyurl)
|
|
|
|
The duplicate `DATABASE_URL` is only needed for Drizzle Studio.
|
|
|
|
```
|
|
VITE_AUTH_REDIRECT_PROXY_URL=your_auth_redirect_proxy_url
|
|
|
|
DATABASE_URL=your_database_url
|
|
```
|
|
|
|
### Usage
|
|
|
|
- **Run development server:**
|
|
|
|
```bash
|
|
pnpm dev
|
|
# Use --host if you have set up a reverse proxy to test auth with callback to your dev box
|
|
pnpm dev --host
|
|
```
|
|
|
|
- **Build for production:**
|
|
|
|
```bash
|
|
pnpm build
|
|
```
|
|
|
|
- **Start production server:**
|
|
|
|
```bash
|
|
pnpm start
|
|
```
|
|
|
|
- **Generate openapi types from specs:**
|
|
|
|
[openapi.json](https://raw.githubusercontent.com/discord/discord-api-spec/main/specs/openapi.json) (from discord-api-spec repo) -> [discord.d.ts](/src/types/discord.d.ts)
|
|
|
|
[liljudd.json](/public/api/specs/liljudd.json) -> [liljudd.d.ts](/src/types/liljudd.d.ts)
|
|
|
|
```bash
|
|
pnpm discord-openapi-gen
|
|
pnpm liljudd-openapi-gen
|
|
```
|
|
|
|
**Drizzle Studio:**
|
|
|
|
Explore the database with ease through the intuitive web-based interface of Drizzle Studio, offering a visual and user-friendly way to interact with the data behind the scenes.
|
|
|
|
```bash
|
|
pnpm drizzle-studio
|
|
```
|
|
|
|
- **Docker Container:**
|
|
|
|
```bash
|
|
docker build --build-arg FONT_AWESOME_TOKEN=<YOUR_TOKEN> -t $image_name .
|
|
```
|
|
|
|
## Contributing
|
|
|
|
If you'd like to contribute to li'l Judd, feel free to open an issue or submit a pull request. Your contributions are highly appreciated!
|
|
|
|
## License
|
|
|
|
This project is licensed under the [GPL v3 License](LICENSE).
|
|
|
|
Happy splatting! 🦑🎮
|