3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-03-14 21:31:50 +00:00
Zeppelin is a moderation bot for Discord, designed with large servers and reliability in mind.
Find a file
2019-11-02 22:11:26 +02:00
backend Reorganize project. Add folder for shared code between backend/dashboard. Switch from jest to ava for tests. 2019-11-02 22:11:26 +02:00
dashboard Reorganize project. Add folder for shared code between backend/dashboard. Switch from jest to ava for tests. 2019-11-02 22:11:26 +02:00
shared Reorganize project. Add folder for shared code between backend/dashboard. Switch from jest to ava for tests. 2019-11-02 22:11:26 +02:00
.editorconfig Initial commit in new repository 2018-07-01 03:35:51 +03:00
.gitignore Reorganize project. Add folder for shared code between backend/dashboard. Switch from jest to ava for tests. 2019-11-02 22:11:26 +02:00
.nvmrc Use Node.js 12 2019-10-11 02:45:11 +03:00
.prettierrc prettier: enable dangling commas 2019-02-09 13:23:35 +02:00
package-lock.json Reorganize project. Add folder for shared code between backend/dashboard. Switch from jest to ava for tests. 2019-11-02 22:11:26 +02:00
package.json Reorganize project. Add folder for shared code between backend/dashboard. Switch from jest to ava for tests. 2019-11-02 22:11:26 +02:00
process-api.json Reorganize project. Add folder for shared code between backend/dashboard. Switch from jest to ava for tests. 2019-11-02 22:11:26 +02:00
process-bot.json Reorganize project. Add folder for shared code between backend/dashboard. Switch from jest to ava for tests. 2019-11-02 22:11:26 +02:00
README.md Update README 2019-07-21 14:40:10 +03:00
tslint.json Reorganize project. Add folder for shared code between backend/dashboard. Switch from jest to ava for tests. 2019-11-02 22:11:26 +02: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']