|
1 | | -# WIP - LIVCK - Discord Bot for the self-hosted statuspage |
| 1 | +# LIVCK Discord Bot |
2 | 2 |
|
3 | | -The bot can soon be added to your own discord server, it is currently still under development. The bot is intended to provide information about the status of your services and to inform you about news. |
| 3 | +> **Beam your LIVCK statuspage directly into Discord** |
4 | 4 |
|
5 | | -IMPORTANT NOTE: |
6 | | -- Private Page Feature currently not supported (later with api tokens useable) |
7 | | -- Cloudflare Bot Shield / Cloudflare Tunnel not supported (generally some proxies with bot protection not supported) |
8 | | -- Design Layout only in German / Command Output in English (Translation Support coming soon) |
9 | | -- No customizations possible (coming soon) |
| 5 | +Seamlessly integrate your [LIVCK](https://livck.com) statuspage into your Discord server. Display the complete status of all your services in a Discord channel and keep your community instantly informed about incidents, maintenance, and updates - without ever leaving Discord. |
10 | 6 |
|
11 | | -# Sneak Peek |
| 7 | +**Works exclusively with LIVCK statuspages** - the self-hosted statuspage and communication platform. |
12 | 8 |
|
13 | | -## Status |
14 | | - |
15 | | -## News |
16 | | - |
| 9 | +[](https://discord.com/oauth2/authorize?client_id=1315761064520188005) |
| 10 | +[](https://livck.com) |
17 | 11 |
|
18 | | -# TODO |
19 | | -- [ ] Translation Support |
20 | | -- [ ] Custom Config (Emoji, Texts etc.) (config by statuspage -> e.g. statuspage/api/discord/config) |
| 12 | +--- |
| 13 | + |
| 14 | +## 💡 What is LIVCK? |
| 15 | + |
| 16 | +[LIVCK](https://livck.com) is a self-hosted statuspage and communication software that enables transparent, real-time monitoring and communication. Perfect for: |
| 17 | +- **Businesses & SaaS** - Keep customers informed about service availability |
| 18 | +- **Gaming Communities** - Share server status and updates |
| 19 | +- **Development Teams** - Internal service monitoring and incident management |
| 20 | +- **Any Organization** - That values transparent communication with stakeholders |
| 21 | + |
| 22 | +### LIVCK Features: |
| 23 | +- ✅ **Forever Free Plan** - 20 monitors, 5 categories, 1 member |
| 24 | +- 🏠 **Self-Hosted** - Full control over your data (Linux, Windows, macOS) |
| 25 | +- 📊 **Real-time Monitoring** - Track service status and uptime |
| 26 | +- 📢 **Incident Management** - Communicate outages and maintenance |
| 27 | +- 🔔 **Announcements** - Share updates and product changes |
| 28 | + |
| 29 | +This Discord bot extends LIVCK by bringing your entire statuspage directly into Discord, making it even easier to keep your community informed in real-time. |
| 30 | + |
| 31 | +--- |
| 32 | + |
| 33 | +## 📋 Table of Contents |
| 34 | + |
| 35 | +- [What is LIVCK?](#-what-is-livck) |
| 36 | +- [Features](#-features) |
| 37 | +- [Quick Start](#-quick-start) |
| 38 | +- [Step-by-Step Guide](#-step-by-step-guide) |
| 39 | + - [1. Add Bot to Server](#1-add-bot-to-your-server) |
| 40 | + - [2. Subscribe to Statuspage](#2-subscribe-to-a-statuspage) |
| 41 | + - [3. Manage Subscriptions](#3-manage-your-subscriptions) |
| 42 | + - [4. Customize Your Setup](#4-customize-your-setup) |
| 43 | +- [Features in Detail](#-features-in-detail) |
| 44 | +- [Commands](#-commands) |
| 45 | +- [Self-Hosting](#-self-hosting) |
| 46 | +- [Limitations](#-limitations) |
| 47 | +- [Support](#-support) |
| 48 | + |
| 49 | +--- |
| 50 | + |
| 51 | +## ✨ Features |
| 52 | + |
| 53 | +### 📊 **Complete Statuspage Integration** |
| 54 | +- Display your entire LIVCK statuspage in a Discord channel |
| 55 | +- Continuous monitoring with regular status updates |
| 56 | +- Persistent messages (edits instead of spam) |
| 57 | +- All your public services and categories visible at a glance |
| 58 | + |
| 59 | +### 🚨 **Community Notifications** |
| 60 | +Keep your community instantly informed: |
| 61 | +- **Incidents** - Automatic notifications when issues occur |
| 62 | +- **Maintenance Windows** - Advance notice of planned maintenance |
| 63 | +- **Updates** - Real-time status changes posted as threaded replies |
| 64 | +- **Announcements** - Important news delivered directly to Discord |
| 65 | + |
| 66 | +Choose what to display: |
| 67 | +- Status page only |
| 68 | +- Incidents & announcements only |
| 69 | +- Both combined |
| 70 | + |
| 71 | +### 🎨 **Layout Customization** |
| 72 | +Choose how your status page appears in Discord with 4 different layouts: |
| 73 | +- **Detailed** - Full service information with categories (best for comprehensive overview) |
| 74 | +- **Compact** - Condensed view for space-saving |
| 75 | +- **Overview** - Quick status summary |
| 76 | +- **Minimal** - Ultra-compact single-line view |
| 77 | + |
| 78 | +### 🌐 **Multi-Language Support** |
| 79 | +Display your statuspage in your community's language: |
| 80 | +- 🇩🇪 German (Deutsch) |
| 81 | +- 🇬🇧 English |
| 82 | +- 🌍 **More languages coming soon** via [Crowdin](https://crowdin.com) - we're building a community-driven translation platform for this open-source project! |
| 83 | + |
| 84 | +Switch languages anytime - all messages update instantly! |
| 85 | + |
| 86 | +### 🔗 **Custom Links** |
| 87 | +Add custom buttons to your status messages for quick access: |
| 88 | +- Homepage links |
| 89 | +- Documentation portals |
| 90 | +- Support channels |
| 91 | +- Status page link |
| 92 | +- Any custom URL with emoji support |
| 93 | + |
| 94 | +### ⚙️ **Flexible Subscriptions** |
| 95 | +- Multiple status pages per Discord server |
| 96 | +- Different channels for different status pages |
| 97 | +- Choose specific event types per channel |
| 98 | +- Easy management through Discord commands |
| 99 | + |
| 100 | +--- |
| 101 | + |
| 102 | +## 🚀 Quick Start |
| 103 | + |
| 104 | +1. **[Invite the bot](https://discord.com/oauth2/authorize?client_id=1315761064520188005)** to your Discord server |
| 105 | +2. Run `/livck subscribe` in the channel where you want your statuspage |
| 106 | +3. Enter your LIVCK statuspage URL (e.g., `status.livck.com`) |
| 107 | +4. Choose what to display (statuspage, incidents, or both) |
| 108 | +5. Select your preferred language and layout |
| 109 | +6. Done! Your complete statuspage is now live in Discord and updates automatically |
| 110 | + |
| 111 | +--- |
| 112 | + |
| 113 | +## 📖 Step-by-Step Guide |
| 114 | + |
| 115 | +### 1. Add Bot to Your Server |
| 116 | + |
| 117 | +Click the invite link and select your Discord server: |
| 118 | + |
| 119 | +[](https://discord.com/oauth2/authorize?client_id=1315761064520188005) |
| 120 | + |
| 121 | +**Required Permissions:** |
| 122 | +- View Channels |
| 123 | +- Send Messages |
| 124 | +- Embed Links |
| 125 | +- Read Message History |
| 126 | + |
| 127 | +--- |
| 128 | + |
| 129 | +### 2. Subscribe to a Statuspage |
| 130 | + |
| 131 | +Use the `/livck subscribe` command to add a statuspage to your Discord channel. |
| 132 | + |
| 133 | + |
| 134 | + |
| 135 | +**Enter the required information:** |
| 136 | +- **Statuspage URL**: Your LIVCK statuspage (e.g., `status.livck.com` or `https://status.yourdomain.com`) |
| 137 | +- **Event Types**: |
| 138 | + - `All` - Status updates + News/Incidents |
| 139 | + - `Status Only` - Only service status |
| 140 | + - `News Only` - Only incidents and maintenance |
| 141 | +- **Language**: German (🇩🇪) or English (🇬🇧) |
| 142 | +- **Layout**: Choose from Detailed, Compact, Overview, or Minimal |
| 143 | + |
| 144 | + |
| 145 | + |
| 146 | +--- |
| 147 | + |
| 148 | +### 3. Manage Your Subscriptions |
| 149 | + |
| 150 | +#### View All Subscriptions |
| 151 | +Use `/livck list` to see all active subscriptions in your server. |
| 152 | + |
| 153 | +#### Edit a Subscription |
| 154 | +Click the **Edit** button in the list to modify: |
| 155 | +- Language (DE/EN) |
| 156 | +- Layout style |
| 157 | +- Manage custom links |
| 158 | + |
| 159 | +#### Delete a Subscription |
| 160 | +Click the **Delete** button to remove a subscription from a channel. |
| 161 | + |
| 162 | +--- |
| 163 | + |
| 164 | +### 4. Customize Your Setup |
| 165 | + |
| 166 | +#### Add Custom Links |
| 167 | + |
| 168 | +Enhance your status messages with custom buttons: |
| 169 | + |
| 170 | +1. Run `/livck list` and click **Edit** on your subscription |
| 171 | +2. Click **Manage Links** |
| 172 | +3. Click **Add Link** |
| 173 | + |
| 174 | + |
| 175 | + |
| 176 | +**Enter link details:** |
| 177 | +- **Label**: Button text (e.g., "Homepage", "Support") |
| 178 | +- **URL**: Full URL (e.g., `https://livck.com`) |
| 179 | +- **Emoji** (optional): Unicode emoji (e.g., 🏠, 📖) or custom Discord emoji |
| 180 | + |
| 181 | + |
| 182 | + |
| 183 | +**Features:** |
| 184 | +- Up to 25 custom links per subscription |
| 185 | +- Reorder links with Move Up/Down buttons |
| 186 | +- Edit or delete existing links |
| 187 | +- Links appear as buttons below your status message |
| 188 | + |
| 189 | +--- |
| 190 | + |
| 191 | +## 🎯 Features in Detail |
| 192 | + |
| 193 | +### Complete Statuspage in Discord |
| 194 | + |
| 195 | +Your entire LIVCK statuspage is displayed directly in Discord with continuous monitoring: |
| 196 | + |
| 197 | +- **All Public Services**: Every public service from your statuspage visible in Discord |
| 198 | +- **Public Categories**: Organized view matching your statuspage structure |
| 199 | +- **Real-Time Status**: Color-coded indicators showing operational status |
| 200 | +- **Continuous Updates**: Changes on your statuspage appear in Discord automatically |
| 201 | + |
| 202 | +**Note:** Private monitors and categories are not displayed in Discord - only public content is synchronized. |
| 203 | + |
| 204 | +This means your community can check your service status without leaving Discord - perfect for gaming servers, SaaS communities, or any project with a Discord presence. |
| 205 | + |
| 206 | + |
| 207 | + |
| 208 | +### Layout Comparison |
| 209 | + |
| 210 | +| Layout | Best For | Features | |
| 211 | +|--------|----------|----------| |
| 212 | +| **Detailed** | Full information | Categories, all services, detailed status | |
| 213 | +| **Compact** | Space-saving | Condensed view, essential info only | |
| 214 | +| **Overview** | Quick glance | Summary of overall status | |
| 215 | +| **Minimal** | Minimal footprint | Single-line ultra-compact display | |
| 216 | + |
| 217 | +### Keeping Your Community Informed |
| 218 | + |
| 219 | +When incidents, maintenance, or announcements occur on your status page: |
| 220 | + |
| 221 | +1. **Instant Notifications**: Automatically posted to your Discord channel |
| 222 | +2. **Incident Updates**: New updates are posted as threaded replies to keep everything organized |
| 223 | +3. **Automatic Cleanup**: Alerts older than 3 days are automatically archived |
| 224 | +4. **No Spam**: Updates edit existing messages instead of creating duplicates |
| 225 | + |
| 226 | +This ensures your community is always up-to-date without cluttering your Discord channels. |
| 227 | + |
| 228 | +### Language System |
| 229 | + |
| 230 | +Serve international communities by switching between German and English: |
| 231 | +- All status messages instantly update to the new language |
| 232 | +- Perfect for bilingual communities or international projects |
| 233 | +- Complete translation of all status information and UI elements |
| 234 | + |
| 235 | +--- |
| 236 | + |
| 237 | +## 💬 Commands |
| 238 | + |
| 239 | +| Command | Description | |
| 240 | +|---------|-------------| |
| 241 | +| `/livck subscribe` | Subscribe a channel to a LIVCK statuspage | |
| 242 | +| `/livck list` | View all subscriptions and manage them | |
| 243 | +| `/livck unsubscribe` | Remove a subscription (also available via list) | |
| 244 | +| `/ping` | Check bot response time | |
| 245 | + |
| 246 | +--- |
| 247 | + |
| 248 | +## 🏠 Self-Hosting |
| 249 | + |
| 250 | +While we provide a hosted version, you're free to self-host the bot. |
| 251 | + |
| 252 | +### Requirements |
| 253 | + |
| 254 | +- **Node.js** 22.9.0 or higher |
| 255 | +- **MariaDB** / MySQL database |
| 256 | +- **Redis** server |
| 257 | +- **Discord Bot Token** |
| 258 | + |
| 259 | +### Quick Setup |
| 260 | + |
| 261 | +1. **Clone the repository:** |
| 262 | + ```bash |
| 263 | + git clone https://github.com/yourusername/livck-discord-bot.git |
| 264 | + cd livck-discord-bot |
| 265 | + ``` |
| 266 | + |
| 267 | +2. **Install dependencies:** |
| 268 | + ```bash |
| 269 | + npm install |
| 270 | + ``` |
| 271 | + |
| 272 | +3. **Configure environment:** |
| 273 | + ```bash |
| 274 | + cp .env.example .env |
| 275 | + # Edit .env with your credentials |
| 276 | + ``` |
| 277 | + |
| 278 | +4. **Run database migrations:** |
| 279 | + ```bash |
| 280 | + node migrate.js |
| 281 | + ``` |
| 282 | + |
| 283 | +5. **Start the bot:** |
| 284 | + ```bash |
| 285 | + node server.js |
| 286 | + ``` |
| 287 | + |
| 288 | +### Environment Variables |
| 289 | + |
| 290 | +See `.env.example` for all required configuration options: |
| 291 | + |
| 292 | +- `DISCORD_CLIENT_ID`, `DISCORD_CLIENT_SECRET`, `DISCORD_BOT_TOKEN` |
| 293 | +- `DB_HOST`, `DB_DATABASE`, `DB_USERNAME`, `DB_PASSWORD` |
| 294 | +- `REDIS_HOST`, `REDIS_PORT`, `REDIS_PASSWORD` |
| 295 | +- Optional custom emoji IDs for status indicators |
| 296 | + |
| 297 | +--- |
| 298 | + |
| 299 | +## ⚠️ Limitations |
| 300 | + |
| 301 | +### Current Restrictions |
| 302 | + |
| 303 | +- **Private Statuspages**: Not yet supported - planned for future releases |
| 304 | +- **Private Monitors/Categories**: Not displayed in Discord - only public content is synchronized |
| 305 | +- **Cloudflare Protection**: Bot shield and tunnels may block the bot |
| 306 | +- **Proxy Compatibility**: Some proxies with aggressive bot protection not supported |
| 307 | + |
| 308 | +### Workarounds |
| 309 | + |
| 310 | +If your statuspage is behind Cloudflare or similar protection: |
| 311 | +1. Whitelist the bot's IP address |
| 312 | +2. Disable bot protection for the statuspage API endpoints |
| 313 | +3. Use a self-hosted instance with custom IP |
| 314 | + |
| 315 | +--- |
| 316 | + |
| 317 | +## 💡 Support |
| 318 | + |
| 319 | +### Need Help? |
| 320 | + |
| 321 | +- **Discord Community**: [discord.livck.com](https://discord.livck.com) |
| 322 | +- **Email Support**: [support@livck.com](mailto:support@livck.com) |
| 323 | +- **Documentation**: [LIVCK Documentation](https://help.livck.com) |
| 324 | +- **LIVCK Website**: [livck.com](https://livck.com) |
| 325 | + |
| 326 | +### Found a Bug? |
| 327 | + |
| 328 | +Please report bugs via GitHub Issues with: |
| 329 | +- Steps to reproduce |
| 330 | +- Expected vs actual behavior |
| 331 | +- Screenshots if applicable |
| 332 | +- Your statuspage URL (if public) |
| 333 | + |
| 334 | +--- |
| 335 | + |
| 336 | +## 📜 License |
| 337 | + |
| 338 | +This project is licensed under the **MIT License** - see the LICENSE file for details. |
| 339 | + |
| 340 | +Feel free to contribute or fork for your own needs! |
| 341 | + |
| 342 | +--- |
| 343 | + |
| 344 | +## 🙏 Credits |
| 345 | + |
| 346 | +Built with ❤️ for the LIVCK community. |
| 347 | + |
| 348 | +- **LIVCK**: [livck.com](https://livck.com) |
| 349 | +- **Discord.js**: Powerful Discord bot framework |
| 350 | +- **Node.js**: JavaScript runtime |
| 351 | + |
| 352 | +--- |
| 353 | + |
| 354 | +**Ready to get started?** |
| 355 | + |
| 356 | +[](https://discord.com/oauth2/authorize?client_id=1315761064520188005) |
0 commit comments