IndiSpark's Monorepo Fork Guide:
Welcome to IndiSpark's Monorepo Fork Guide!
Our two main projects are Brave Bot and our website. We use uv to manage the Python Versions installed, the packages used and more. Please ensure you install uv before forking our monorepo.
Download / Cloning Guide:
Git Clone Links:
Clone with SSH: Click Here
git@gitlab.com:indispark/indispark.gitlab.io.git
Clone with HTTPS: Click Here
https://gitlab.com/indispark/indispark.gitlab.io.git
Warning
Cloning our repository is not reccomended unless you are a expirenced developer. We also do not garuntee our repository to be stable 24/7.
Download a specific Version:
You can also download a specific version of our monorepo. Click Here
Brave Bot Fork Guide:
Once you have downloaded the latest version of our monorepo from GitLab, please do the following:
- Apply the following file changes:
- Create a DB file named
maindb.sqlite. - Rename
example.ymltoconfig.yml. - Create an
.envfile and follow our Token Storage Guide. Click Here
- Create a DB file named
- You now need to setup and configure your
config.yml.- The following ID Fields are required:
Server IDOwner ID- There is also other optional ID Fields. Either set them to
Falseor leave them empty. Do NOT delete them.Logs Channel IDRules Channel IDMain Source Code Project ID
- You also must set the
Policy URL,Bot NameandSupport Server Invite URLfields in yourconfig.yml.- We by default send users to our Docs (this website). Manual Intervention Required if you wish to use your own.
- Configure Overrides. Learn More
- The Fork Override should be kept as
True. This is so the respective creidts are given. - If you have enabled the
Error Tracking Override(Using the Sentry SDK) you will need to update your.envto have your Sentry DSN. Example.envwith DSN and Bot Toke - If you plan on enabling the
Topia Override. Please ensure you enable theSetup Database Boot Mode Overridefor first boot. This is so your Database is set-up and configured correctly. - We do pre-enable and pre-disable certain overrides upon forking.
- The Fork Override should be kept as
- Emoji IDs.
- All of the Emoji fields are pre-filled with emoji IDs from the IndiSpark Server. All emoji fields are required.
- Add Custom Tips.
- In the
Custom Tipslist field, you can add custom tips that you wanna add alongside the baseline tips that are written intips.py(In the utils Folder).
- In the
- The following ID Fields are required:
- Deploy your bot.
- If your using a VPS please follow the steps below:
- Using FileZilla connect to your server (use Port Number
22). - Under the root directory, create a folder named
brave. - Transfer the following files and folders into the
bravefolder. (You can overwrite files but not folders)main.pyconfig.ymlutils(folder)cogs(folder)components(folder)assets(folder)pyproject.toml.python-version.envmaindb.sqliteuv.lockDockerfile(required if deploying via docker)docker-compose.yml(required if deploying via docker)
- Now using Putty, access your server's command line (Use Port Number
22and "SSH" as your Connection Type). - Install uv. (REQUIRED)
- Deploy your bot using Docker or PM2.
- If you are deploying via docker do:
docker compose up -d - If you are deploying via PM2 do:
uv syncpm2 start "uv run python main.py" --name discord-bot
- If you are deploying via docker do:
- Using FileZilla connect to your server (use Port Number
- If you are running the bot from a IDE for testing purposes please do:
uv syncuv run main.py
- If your using a VPS please follow the steps below:
Brave Bot Configuration Information:
- Topia System Configuration:
- The Topia System is always pre-configured when you first fork it. But here is what you can change in your
config.ymlfile:- Pro & None Pro VAT Rates.
- Pro & None Pro Tax Rates.
- Multipliers for Pro and None Pro Users.
- Earning Ranges. (Pro & None Pro)
- Winning Amount Ranges. (Pro & None Pro)
- Daily Earning Ranges. (Pro & None Pro)
- Pro Battle Saving. (Pro Only and is used solely as a percent)
- Tax Refund Range.
- Government Benfit Range.
- Stocks (Gain or Lose) Range. (Apart of a Pro Only Feature unless the Pro System is disabled)
- Bong Game Per Round Coin Range.
- Farm Revenue Range. (Apart of a Pro Only Feature unless the Pro System is disabled)
- Divison Number for Profile Level
- There is also Topia Overrides that you can configure. This is so you can enable or disable certains parts of your Topia System. Learn More
- The Topia System is always pre-configured when you first fork it. But here is what you can change in your
- You can also set the following fields:
- Support Server Rules.
/help's Extra: "Rules" allows the Bot Owner to send a embed of their Rules. You need to have given a Channel ID for theRules Channel IDfield for this to work.
- Donate URl.
- Give a Donate/Pay linl to allow users to donate/support your bot's development.
- Open Positions.
- In a YAML multistring, list the positions you are looking for. Requires the
Application Overrideto be enabled/set toTrue.
- In a YAML multistring, list the positions you are looking for. Requires the
- Disallow
/nukein certain servers.- Set the
Nuke Command Restrictions OverridetoTrue(enabled). - Add the servers (server-ids), that you do not want
/nuketo work in, into theNo Nuke Command Serverslist field.
- Set the
- Support Server Rules.
Note
You do not need to update the version field when first starting out.
Failure
Your Discord App/Bot will not boot/run if your configuration is done incorrectly. If you require assitance please open a ticket in our support server. (Linked in the footer)
Example env Files:
Example .env File with just a Bot Token:
Warning
If you intend on enabling Sentry Error Tracking, please look at the example below instead.
Note
If the Production Mode Override is disabled (set to False) the the code will load the .env file and will look for Testing Token instead.
Example .env File with a DSN, Testing Token and a Bot Token:
Token = # Your Bot's/App's Token Here.
DSN = # Your Project's DSN Here.
Testing_Token = # Your Testing Bot's/App's Token Here.
Website Fork Guide:
Once you have downloaded/cloned our monorepo and ensured you have installed uv. Please follow the steps below on how to fork & deploy our website.
Info
If you wish to use our Docs to inform your Users how your bot works. Then you are more than welcome to. Please follow our Issue Creation Guide.
Danger
- The Configuration File.
mkdocs.yml - The Homepage File.
index.md - The License file.
LICENSE.md - The GitLab CI/CD Yaml File.
.gitlab-ci.yml(Only needed if you are using GitLab CI/CD for deployment)
Info
- The Homepage is
index.md. Please update it where needed. - Each section of the Docs is in a seperate folder.
- Certain sections have their own index pages. Please note not every section has an index page.
Tip
- Heavy modification is needed if you wish to remove all "signs" that IndiSpark wrote it or etc. Please note thought that under the license you are required to creidt the respective authors.
- You can also remove certains areas of the website. Please note that you will need to update your
mkdocs.ymlupon such changes.
Website Deployment for Testing:
Run the following command in your IDE's Terminal:
Website Public Deployment:
- Update your
mkdocs.yml:- Remove/comment out the
docs_dirline. - Update your
custom_dirline to:overrides.
- Remove/comment out the
- Using FileZilla connect to your server (use Port Number
22). - Inside your root directory transfer the website folder.
- Inside your website folder, transfer the following files:
mkdocs.ymluv.lockpyproject.yml
- Now use Putty to access your server's command line (Use Port Number
22and "SSH" as your Connection Type). - Install uv.
- Install & deploy:
uv run --only-group docs mkdocs build
uv run --only-group docs mkdocs build # This will build and deploy a mainline version of your website.
Website Deployment Guide GitLab CI/CD:
Note
The GitLab CI/CD file also contains a stage for checking Brave Bot's code. You only need the docsupdate stage.
Warning
The docsupdate stage is setup work with Pipline Schedules. Click Here to Learn More
No modifications required unless you want your docs to update upon every commit. Click Here
Archived Projects:
Thread Bot:
Warning
Nextcord has since released new versions which include breaking changes. IndiSpark has also moved away from using the Nextcord Library. It is now using Pycord.
Warning
Thread Bot uses logic that we do not reccomend using.
- Download the
thread botfolder as a zip folder from the Community Archive Folder. - Unzip it.
- Modify the code for your uses and etc.
- Deploy it.
Ultimate Ban Bot:
Ulitmate Ban Bot (UBB) is an old bot that was made by us. It is now open source and avaliable for anyone to use. It is only avaliable via the monorepo and is therefore license under this website's license (GPL 3.0).
Warning
Nextcord has since released new versions which include breaking changes. IndiSpark has also moved away from using the Nextcord Library. It is now using Pycord.
- Download the
ubb.pyfile from the Community Archive Folder. - Modify the code for your uses and etc.
- Deploy it.