Skip to content
This repository has been archived by the owner on Jul 31, 2022. It is now read-only.

πŸ”¨ δ»ι‡Ž β€” Cute, advanced discord moderation bot made in Kord. Make your server cute and automated with utilities for you and your server moderators! β˜† ~('β–½^δΊΊ)

License

NinoDiscord/Nino

Repository files navigation

πŸ”¨ Nino

Cute, advanced discord moderation bot made in Eris. Make your server cute and automated with utilities for you and your server moderators *:ο½₯゚✧*:ο½₯゚✧
GitHub Workflow Status GitHub License Noelware Server

Features

  • Auto Moderation: Prevents raids, spam, ads, and much more!
  • Advanced warning system and automated punishments: Automically punish who commit offenses!
  • Simplicity: Simplicity is key to any discord bot, and Nino makes sure of it! All commands are tailored to be simple yet powerful.

...and much more!

Support

Need support related to Nino or any microservices under the organization? Join in the Noelware Discord server in #support under the Nino category:

discord embed owo

Contributing

View our contributing guidelines and code of conduct before contributing.

Self-hosting

Before attempting to self-host Nino, we didn't plan for users to be able to self-host their own instance of Nino. Most builds are usually buggy and untested as of late, we do have a "stable" branch but it can be buggy sometimes! If you want to use cutting edge features that are most likely not finished, view the edge branch for more details. The "stable" branch is master, so anything that should be stable will be added to the upstream.

We will not provide support on how to self-host Nino, use at your own risk! If you do not want to bother hosting it, you can always invite the public instance which will be the same experience if you hosted it or not.

Prerequisites

Before running your own instance of Nino, you will need the following tools:

  • Timeouts Service (Used for mutes and such or it'll not work!)
  • Node.js (Latest is always used in development, but LTS is recommended)
  • PostgreSQL (12 is used in development but anything above 10 should fairly work!)
  • Redis (6.2 is used in development but above v5 should work)

If you're moving from v0 to v1, you will need your MongoDB instance before to port the database and Rei installed on your system.

There is tools that are optional but are mostly recommended in some cases:

  • Sentry - Useful to find out where errors are in a pretty UI
  • Docker - If you're a masochist and want to run a private instance with Docker
  • Git - Useful for fetching new updates easily.

Setting up

There are 2 ways to setup Nino: using Docker or just doing shit yourself. Doing it yourself can very tedious of how much Nino uses from v0 to v1 since Nino utilizes microservices! β˜†β™¬β—‹β™©β—β™ͺβœ§β™©((ヽ( ᐛ )οΎ‰))β™©βœ§β™ͺβ—β™©β—‹β™¬β˜†

Docker

# 1. Clone the repository
$ git clone https://github.com/NinoDiscord/Nino.git && cd Nino

# 2. Create a image
$ docker build -t nino:latest --no-cache .

# 3. Run the image
$ docker run -d \
  --volume './config.yml:/opt/Nino/config.yml:ro' \ # read-only
  nino:latest

# OPTIONAL: Use docker-compose.yml to run the services
$ docker-compose up -d

Normal

# 1. Clone the repository
$ git clone https://github.com/NinoDiscord/Nino.git && cd Nino

# 2. Install the dependencies
$ npm install

# 3. Build the project
$ npm run build

# 4. Run the project
$ npm start

Migrating from v0.x -> v1.x

If you used v0.x in the past, this is the process on how to migrate:

  • Run rei convert ... to convert the documents into JSON, this process should take a while if there is a lot of cases or warnings.
  • Run node scripts/migrate.js <directory>, where <directory> is the directory Rei converted your database to.

Example config.yml file

  • Replace <discord token> with your Discord bot's token
  • Replace <username> with your PostgreSQL database username
  • Replace <password> with your PostgreSQL database password
  • Replace <host> (under database) with your PostgreSQL database host, if running locally, just use localhost or database if on Docker
  • Replace <port> with your PostgreSQL database port it's running, if running locally, set it to 5432
  • Replace <host> (under redis) with your Redis connection host, if running locally, just use localhost or redis if on Docker
  • Replace <auth> with the authenication token you set in the timeouts relay service.
environment: development
token: <discord token>

prefixes:
  - !

database:
  url: postgres://<username>:<password>@<host>:<port>/<database>

redis:
  host: <host>
  port: 6379

timeouts:
  port: 4025
  auth: <auth>

Maintainers

  • Ice#4710 (DevOps, Developer) (GitHub)
  • Rodentman87#8787 (Frontend Developer) (GitHub)
  • August#5820 (Project Lead, Developer) (GitHub)

Hackweek Participants

About

πŸ”¨ δ»ι‡Ž β€” Cute, advanced discord moderation bot made in Kord. Make your server cute and automated with utilities for you and your server moderators! β˜† ~('β–½^δΊΊ)

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project