The Lexi project has been a major project of mine for a long time. I've put a lot of work into the framework and design behind the Lexi Discord bot, and I've enjoyed the time that everyone has put into this as well. However, as all great things must come to an end, I've decided to begin sunsetting Lexi.
I've decided to do this for a few reasons:
- Lack of assistance from other developers & even the other maintainers
- Lack of interest in the bot at all (it's only in my servers)
- Lack of time & motivation (The framework is amazing, but few features are available)
- Lack of legal support with privacy policies etc
Here's how this is going to work. From now on, I will no longer be providing any feature updates to Lexi. I will still be providing bug fixes and security updates for a limited amount of time, but once Discord stops supporting Lexi's API version, the hosted instance will officially be shut down.
Thank you to everyone who has made this project possible, especially:
- Alcremie, for performing the TypeScript rewrite in ProtoBot 2
- numselli, for helping me find some security issues and for making some contributions
- charmines, for maintaining the project
And finally, thank you, the user, for using Lexi. I hope you enjoyed your time with the bot while it lasted.
Signing off...
Logan (LogN / 0xLogN)
Lexi Core Maintainer
SkyMines Network Owner
Zirco Compiler Engineer
Lexi is now officially feature-frozen. No more feature PRs or changes will be made from this point on,
except in some VERY specific circumstances. Lexi's dev
branch will be shut down soon, and the Dev
bot will soon be stopped.
All Lexi bots have officially been shut down and this repository is about to be archived. Thank you so much for supporting Lexi.
Lexi is a powerful Discord bot for furries and alike! It contains a variety of commands that can be used to make your server more fun and interactive.
Add me to your server! Main Bot, Recommended | Development Bot
You may choose more detailed permissions here:
- Production Lexi -- Recommended. This bot is the stable version.
- Production Lexi, administrator -- Recommended for development. Do not use in real servers.
- Production Lexi, lax permissions -- Recommended. Provides leeway for new and planned features.
- Production Lexi, strict permissions -- Not recommended. Use this if your server needs to be very strict on permissions. Lexi may need to be re-invited regularly.
- Development Lexi -- Recommended for contributors. This bot is more likely to break.
- Development Lexi, administrator -- Recommended. Provides leeway for new and planned features.
- Development Lexi, lax permissions -- Recommended for testing. Provides leeway for new and planned features.
- We do not support a strict version of Dev Lexi. You may set permissions yourself.
Lexi started as a furry bot named "ProtoBot" in it's earliest development phases. I eventually decided to make it more accessible for people outside the fandom (as a lot of people were saying ProtoBot was too specific for them) and then the name Lexi came out of my head.
In pull request #510, ProtoBot 3 was started. Eventually, it got renamed to "Lexi."
The name Lexi is actually the name of one of my protogen fursonas, and a lot of her traits carried into Lexi as a Discord bot.
The following steps will help you get Lexi up and running on your computer.
Lexi supports Linux and macOS 11 or later. Any Windows/OSX bugs will be treated with low priority, and we will not consider adding install/start scripts in Batch any time in the near future. WSL is supported and recommended if you are to host using Windows, and we suggest using PM2 for process management.
Please consider the following before you continue the installation of Lexi.
Lexi's source code is OSS (Open Source Software). As part of the terms in GPL3, I (Logan) have no right to stop you from self-hosting this bot with the applicable credit. I decided to open-source Lexi to allow for contributions from other fandom members, and to further my maintaining experience.
One thing I considered when open-sourcing Lexi was the possibility of people forking off on their own and contributing to their own Lexi fork, instead of Lexi itself. If you have something you'd like to see added to Lexi, please contribute instead of self-hosting. It's better for all of us.
In addition, Lexi relies on a lot of external services to function, and this number is getting greater as more functionality is being added.
Self-hosts of Lexi is not recommended for non-development purposes.
- 0xLogN Lexi Maintainer
Follow the installation steps for Node.js v16
Then install TypeScript: yarn global add typescript
Install build-essential
for your system; it should be available on macOS via the build tools in XCode.
Ensure Git is installed. On Linux, install it with your package manager, the package is probably named git
.
In the destination folder (this can be moved later), run this command:
git clone https://github.com/thetayloredman/Lexi.git
Execute ./install.sh
.
Before you continue, take close note:
One of the questions the installer will ask you is VERY important: It will read as something like "What is your Discord User ID?"
This is one of the most important steps here. Do NOT give ANYONE you do not know very well access to this. They can open a shell on your system and make changes to any file.
Hey, did you read that thing above me? If not, read it. Did you read it? Read it again. This is serious.
Run ./start.sh
.
FOR PRODUCTION ENVIRONMENTS: Run PRODUCTION=1 ./start.sh
With PM2
PM2 is a process manager for Node.js. It is a good alternative to using the normal start scripts.
First, ensure PM2 is installed: yarn global add pm2
Optionally, enable PM2 to automatically start as a daemon: pm2 startup
Then, run pm2 start ecosystem.config.js
(add --env production
if you want to run in production)
If you want daemon startup, run pm2 save
.
Logs will automatically be created and manual maintenance is needed for cleaning these up.
thetayloredman Core Maintainer |
ilikestohack Maintainer |
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!