3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-03-15 05:41:51 +00:00
Zeppelin is a moderation bot for Discord, designed with large servers and reliability in mind.
Find a file
2019-09-29 15:58:39 +03:00
dashboard Remove obsolete import in Plugin.vue 2019-09-29 15:58:39 +03:00
src Fix error when getUrlsInString doesn't match any URLs 2019-09-29 15:57:08 +03:00
.editorconfig Initial commit in new repository 2018-07-01 03:35:51 +03:00
.gitignore Ignore all files ending in .env from git 2019-07-21 14:40:34 +03:00
.nvmrc Add .nvmrc 2019-05-04 11:02:49 +03:00
.prettierrc prettier: enable dangling commas 2019-02-09 13:23:35 +02:00
api.env.example Separate bot and API server .env files. Add example .env files. 2019-07-21 14:37:46 +03:00
babel.config.js Add jest 2019-03-16 15:40:48 +02:00
bot.env.example Separate bot and API server .env files. Add example .env files. 2019-07-21 14:37:46 +03:00
nodemon-api.json Use ts-node/register with node CLI instead of ts-node CLI 2019-09-28 19:34:36 +03:00
nodemon-bot.json Use ts-node/register with node CLI instead of ts-node CLI 2019-09-28 19:34:36 +03:00
ormconfig.js ormconfig: load api or bot .env, whichever exists 2019-07-22 00:10:27 +03:00
package-lock.json Update Knub to 24.1.0 to restore support for async type conversion fns 2019-09-28 19:35:51 +03:00
package.json Update Knub to 24.1.0 to restore support for async type conversion fns 2019-09-28 19:35:51 +03:00
process-api.json Include process file for API, separate bot/api process files 2019-07-22 01:04:31 +03:00
process-bot.json Include process file for API, separate bot/api process files 2019-07-22 01:04:31 +03:00
README.md Update README 2019-07-21 14:40:10 +03:00
tsconfig.json TS: use esnext as target/lib 2019-02-17 22:48:41 +02:00
tslint.json Initial work on new automod 2019-08-18 16:40:15 +03:00
update.sh Load NVM in update script 2019-05-07 22:27:50 +03:00

Development

These instructions are intended for bot development only.

👉 No support is offered for self-hosting the bot! 👈

Running the bot

  1. npm ci
  2. Make a copy of bot.env.example called bot.env, fill in the values
  3. Run the desired start script:
    - npm run start-bot-dev to run the bot with ts-node
    - npm run build followed by npm run start-bot-prod to run the bot compiled
    - npm run watch-bot to run the bot with ts-node and restart on changes
  4. When testing, make sure you have your test server in the allowed_guilds table or the guild's config won't be loaded at all

Running the API server

  1. npm ci
  2. Make a copy of api.env.example called api.env, fill in the values
  3. Run the desired start script:
    - npm run start-api-dev to run the API server with ts-node
    - npm run build followed by npm run start-api-prod to run the API server compiled
    - npm run watch-api to run the API server with ts-node and restart on changes

Running the dashboard

  1. Navigate to dashboard/
  2. npm ci
  3. Make a copy of .env.example called .env, fill in the values
  4. Run the desired start script:
    - npm run build compiled the dashboard's static files in dist/ which can then be served with any web server
    - npm run watch runs Parcel.js's dev server that automatically reloads on changes

Config format example

Configuration is stored in the database in the configs table

# role id: level
levels:
  "12345678": 100 # Example admin
  "98765432": 50 # Example mod

plugins:
  mod_plugin:
    config:
      kick_message: 'You have been kicked'
      can_kick: false
    overrides:
      - level: '>=50'
        config:
          can_kick: true
      - level: '>=100'
        config:
          kick_message: 'You have been kicked by an admin'
  spam:
    config:
      filter_words: ['heck']
    overrides:
      - channel: '1234'
        config:
          +filter_words: ['foo']
      - level: '>=50'
        config:
          -filter_words: ['heck']