pterodactyl
This commit is contained in:
139
PTERODACTYLL/PTERODACTYL_DEPLOYMENT.md
Normal file
139
PTERODACTYLL/PTERODACTYL_DEPLOYMENT.md
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
# Pterodactyl Panel Deployment Guide
|
||||||
|
|
||||||
|
This guide will help you deploy the OC Bot using Pterodactyl Panel.
|
||||||
|
|
||||||
|
## What is an Egg?
|
||||||
|
|
||||||
|
A Pterodactyl "egg" is a JSON configuration file that defines how your application should be installed, configured, and run within a Pterodactyl Panel server.
|
||||||
|
|
||||||
|
## Installation Steps
|
||||||
|
|
||||||
|
### 1. Import the Egg into Pterodactyl
|
||||||
|
|
||||||
|
1. Log in to your Pterodactyl Panel as an administrator
|
||||||
|
2. Navigate to **Admin Panel** → **Nests & Eggs** → **Nests**
|
||||||
|
3. Click on an existing nest (e.g., "Discord" or create a new one)
|
||||||
|
4. Click **Import Egg**
|
||||||
|
5. Copy the contents of `egg-oc-bot.json` and paste it into the import field
|
||||||
|
6. Click **Import**
|
||||||
|
|
||||||
|
### 2. Create a New Server
|
||||||
|
|
||||||
|
1. Go to **Servers** → **Create New Server**
|
||||||
|
2. Select the nest containing the OC Bot egg
|
||||||
|
3. Select the **OC Bot** egg
|
||||||
|
4. Configure the following settings:
|
||||||
|
|
||||||
|
#### Environment Variables (Required)
|
||||||
|
|
||||||
|
These are configurable in the Pterodactyl Panel:
|
||||||
|
|
||||||
|
- **Discord Bot Token** - Get from [Discord Developer Portal](https://discord.com/developers/applications)
|
||||||
|
- Create a new application
|
||||||
|
- Add a Bot
|
||||||
|
- Enable "Message Content Intent"
|
||||||
|
- Copy the token
|
||||||
|
|
||||||
|
- **Database Host** - MariaDB/MySQL server address
|
||||||
|
- Default: `localhost`
|
||||||
|
- Use container IP if running in Docker: `host.docker.internal` or the service name
|
||||||
|
|
||||||
|
- **Database User** - Database username
|
||||||
|
- Default: `root`
|
||||||
|
|
||||||
|
- **Database Password** - Database password
|
||||||
|
- Leave empty if no password set
|
||||||
|
|
||||||
|
- **Database Name** - Database name
|
||||||
|
- Default: `rp_bot`
|
||||||
|
|
||||||
|
### 3. Database Setup
|
||||||
|
|
||||||
|
Before starting the bot, ensure your MariaDB database is set up:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
CREATE DATABASE rp_bot;
|
||||||
|
```
|
||||||
|
|
||||||
|
The bot will automatically create the necessary tables on first run.
|
||||||
|
|
||||||
|
### 4. Start the Server
|
||||||
|
|
||||||
|
1. Click the **Create Server** button
|
||||||
|
2. Go to your new server's console
|
||||||
|
3. Click **Start** to launch the bot
|
||||||
|
4. You should see "started" in the console when ready
|
||||||
|
|
||||||
|
### 5. Configure Discord
|
||||||
|
|
||||||
|
1. Go to [Discord Developer Portal](https://discord.com/developers/applications)
|
||||||
|
2. Select your application
|
||||||
|
3. Go to **OAuth2** → **URL Generator**
|
||||||
|
4. Select scopes: `bot`
|
||||||
|
5. Select permissions:
|
||||||
|
- Send Messages
|
||||||
|
- Manage Messages
|
||||||
|
- Manage Webhooks
|
||||||
|
- Read Message History
|
||||||
|
- Embed Links
|
||||||
|
6. Copy the generated URL
|
||||||
|
7. Open the URL in your browser and add the bot to your server
|
||||||
|
|
||||||
|
## Environment Variables Explained
|
||||||
|
|
||||||
|
| Variable | Purpose | Example |
|
||||||
|
|----------|---------|---------|
|
||||||
|
| `DISCORD_TOKEN` | Bot authentication token | `MTk4NjIyNDgzNDU4Njc4Ng...` |
|
||||||
|
| `DB_HOST` | Database server address | `localhost` or `mariadb` |
|
||||||
|
| `DB_USER` | Database username | `root` |
|
||||||
|
| `DB_PASSWORD` | Database password | `mypassword` |
|
||||||
|
| `DB_NAME` | Database name | `rp_bot` |
|
||||||
|
| `STARTUP_CMD` | Command to start the bot | `python bot.py` |
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Bot won't start
|
||||||
|
- Check Discord token is correct
|
||||||
|
- Ensure "Message Content Intent" is enabled in Developer Portal
|
||||||
|
- Check logs for database connection errors
|
||||||
|
|
||||||
|
### Database connection error
|
||||||
|
- Verify database is running and accessible
|
||||||
|
- Check credentials are correct
|
||||||
|
- Ensure database exists: `SHOW DATABASES;`
|
||||||
|
|
||||||
|
### Webhook errors
|
||||||
|
- Ensure bot has "Manage Webhooks" permission
|
||||||
|
- Check Discord token has necessary scopes
|
||||||
|
|
||||||
|
## File Structure in Panel
|
||||||
|
|
||||||
|
```
|
||||||
|
server/
|
||||||
|
├── bot.py
|
||||||
|
├── database.py
|
||||||
|
├── requirements.txt
|
||||||
|
├── .env (auto-generated from variables)
|
||||||
|
├── README.md
|
||||||
|
├── SETUP.md
|
||||||
|
└── cogs/
|
||||||
|
├── __init__.py
|
||||||
|
├── oc.py
|
||||||
|
├── help.py
|
||||||
|
├── utils.py
|
||||||
|
└── config.py
|
||||||
|
```
|
||||||
|
|
||||||
|
## Updating the Bot
|
||||||
|
|
||||||
|
1. Upload new files via the file manager
|
||||||
|
2. Restart the server
|
||||||
|
3. Changes take effect immediately
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
For issues or questions, refer to [SETUP.md](SETUP.md) or consult the [Pterodactyl Documentation](https://pterodactyl.io/community/customization/eggs/egg_variables.html).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Coded by Ball Studios 🎨**
|
||||||
96
PTERODACTYLL/egg-oc-bot.json
Normal file
96
PTERODACTYLL/egg-oc-bot.json
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
{
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2026-06-17T00:00:00+00:00",
|
||||||
|
"name": "OC Bot",
|
||||||
|
"author": "Ball Studios",
|
||||||
|
"description": "An Original Character management Discord bot with prefix-based commands",
|
||||||
|
"features": [
|
||||||
|
"eula"
|
||||||
|
],
|
||||||
|
"docker_images": {
|
||||||
|
"ghcr.io/pterodactyl/games:python3.13": "ghcr.io/pterodactyl/games:python3.13"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": "{{STARTUP_CMD}}",
|
||||||
|
"config": {
|
||||||
|
"files": "{}",
|
||||||
|
"startup": "{\n \"done\": \"started\"\n}",
|
||||||
|
"log": {
|
||||||
|
"custom": false,
|
||||||
|
"location": "logs/latest.log"
|
||||||
|
},
|
||||||
|
"stop": "^C"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "#!/bin/bash\nset -e\n\necho \"OC Bot - Installation Starting\"\necho \"Installing Python dependencies...\"\n\npip install --upgrade pip\npip install -r requirements.txt\n\necho \"Installation Complete!\"\necho \"Make sure to configure your .env file with:\"\necho \" - DISCORD_TOKEN\"\necho \" - DB_HOST\"\necho \" - DB_USER\"\necho \" - DB_PASSWORD\"\necho \" - DB_NAME\"\n",
|
||||||
|
"container": "ghcr.io/pterodactyl/games:python3.13",
|
||||||
|
"entrypoint": "bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "Discord Bot Token",
|
||||||
|
"description": "Your Discord bot token from the Developer Portal (https://discord.com/developers/applications)",
|
||||||
|
"env_variable": "DISCORD_TOKEN",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": false,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:255",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Database Host",
|
||||||
|
"description": "MariaDB/MySQL database hostname (default: localhost)",
|
||||||
|
"env_variable": "DB_HOST",
|
||||||
|
"default_value": "localhost",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:255",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Database User",
|
||||||
|
"description": "MariaDB/MySQL database username",
|
||||||
|
"env_variable": "DB_USER",
|
||||||
|
"default_value": "root",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:255",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Database Password",
|
||||||
|
"description": "MariaDB/MySQL database password",
|
||||||
|
"env_variable": "DB_PASSWORD",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": false,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "string|max:255",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Database Name",
|
||||||
|
"description": "MariaDB/MySQL database name",
|
||||||
|
"env_variable": "DB_NAME",
|
||||||
|
"default_value": "rp_bot",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:255",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Startup Command",
|
||||||
|
"description": "Command to start the bot",
|
||||||
|
"env_variable": "STARTUP_CMD",
|
||||||
|
"default_value": "python bot.py",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": false,
|
||||||
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user