diff --git a/README.md b/README.md index e69de29bb..e9dd36eba 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,478 @@ +

+ + + + + Virtnet.bond + + +

+ +

+Enterprise-Grade Billing & Service Automation Platform for Hosting Providers πŸš€ +

+ +

+ + CI Status + + + Contributors + + + License + + + Discord + +

+ +

+ Website β€’ + Documentation β€’ + Community β€’ + Issues +

+ +
+ +--- + +## πŸ“– Introduction + +**Virtnet.bond** is a powerful, self-hosted billing and service automation platform built specifically for hosting providers. It provides a centralized solution for managing product catalogs, automating server provisioning, processing payments, and delivering exceptional customer experiences. + +Built on **Laravel**, **Livewire**, and **Filament**, Virtnet.bond offers a modern, reactive single-page application experience with a comprehensive admin panel and customer portal. + +
+ +

+ + + + Dashboard Preview + +

+ +
+ +## ✨ Features + +### πŸŽ›οΈ Admin Panel +

+ + + + Admin Panel + +

+ +- **Filament-Powered Dashboard** - Modern admin interface with real-time statistics +- **Product & Service Management** - Create and manage products, pricing, and configurations +- **Customer Management** - View customer details, services, invoices, and activity +- **Ticket System** - Handle support tickets with attachments and priority levels +- **Announcements** - Publish system-wide or targeted announcements +- **Knowledge Base** - Create documentation and guides for customers + +### πŸ–₯️ Server Integrations +

+ + + + Server Integrations + +

+ +| Server Type | Features | +|-------------|----------| +| **Proxmox** | VM/LXC management, console access, statistics, firewall, snapshots, cloud-init | +| **Pterodactyl** | Game server management, file manager, console, backups | +| **Virtualizor** | VPS management, OS reinstall, network configuration | +| **VirtFusion** | Virtual machine provisioning and management | +| **cPanel** | Web hosting account automation | +| **DirectAdmin** | Web hosting panel integration | +| **Plesk** | Web hosting automation | +| **Convoy** | Container orchestration | +| **Enhance** | Web hosting platform | +| **Froxlor** | Server management panel | + +### πŸ’³ Payment Gateways +

+ + + + Payment Gateways + +

+ +- **Stripe** - Credit cards, Apple Pay, Google Pay, and more +- **PayPal** - PayPal payments and subscriptions +- *Extensible architecture for additional gateways* + +### 🧩 Extensions & Plugins + +| Category | Extensions | +|----------|------------| +| **Communication** | Announcements, Knowledge Base, Contact Page, JivoChat, OpenWidget | +| **Security** | AntiVPN, Authentik SSO, Security Suite, Compliance Tools | +| **Analytics** | Cloudflare Analytics, UptimeLab | +| **Customization** | NavbarManager, Custom Pages, Cookie Banner, Force Theme | +| **Social** | Discord+, Social Base | +| **Billing** | Credits Plus, Onboarding | + +
+ +## πŸ—οΈ Architecture + +``` +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ Virtnet.bond β”‚ +β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ +β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ +β”‚ β”‚ Themes β”‚ β”‚ Extensions β”‚ β”‚ Core Platform β”‚ β”‚ +β”‚ β”‚ (LucentUI) β”‚ β”‚ (Modular) β”‚ β”‚ (Laravel + Livewire) β”‚ β”‚ +β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ +β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ +β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ +β”‚ β”‚ Filament Admin Panel β”‚ β”‚ +β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚ β”‚ +β”‚ β”‚ β”‚Products β”‚ β”‚Services β”‚ β”‚ Tickets β”‚ β”‚ Configuration β”‚β”‚ β”‚ +β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚ β”‚ +β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ +β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ +β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ +β”‚ β”‚ Servers β”‚ β”‚ Gateways β”‚ β”‚ Others β”‚ β”‚ +β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ +β”‚ β”‚ β”‚Proxmox β”‚ β”‚ β”‚ β”‚ Stripe β”‚ β”‚ β”‚ β”‚Announcementsβ”‚ β”‚ β”‚ +β”‚ β”‚ β”‚Pterodac.β”‚ β”‚ β”‚ β”‚ PayPal β”‚ β”‚ β”‚ β”‚KnowledgeBaseβ”‚ β”‚ β”‚ +β”‚ β”‚ β”‚Virtuali.β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ Security β”‚ β”‚ β”‚ +β”‚ β”‚ β”‚VirtFusi.β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Analytics β”‚ β”‚ β”‚ +β”‚ β”‚ β”‚ cPanel β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ +β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ +β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ +``` + +
+ +## πŸš€ Quick Start + +### Prerequisites + +Before installing Virtnet.bond, ensure you have: + +- **PHP** ^8.2 or ^8.3 +- **MySQL/MariaDB** 8.0+ +- **Redis** (recommended for caching/queues) +- **Node.js** 18+ and npm +- **Composer** 2.x + +### Required PHP Extensions + +``` +bcmath, curl, exif, gd, gmp, intl, json, mbstring, pcntl, pdo, pdo_mysql, redis, sockets, xml, zip +``` + +### Installation + +1. **Clone the repository** + +```bash +git clone https://github.com/VirtnetBond/Virtnet.bond.git +cd Virtnet.bond +``` + +2. **Install PHP dependencies** + +```bash +composer install --no-dev --optimize-autoloader +``` + +3. **Install Node.js dependencies and build assets** + +```bash +npm install +npm run build +``` + +4. **Configure environment** + +```bash +cp .env.example .env +php artisan key:generate +``` + +5. **Configure your `.env` file** + +```env +APP_URL=https://your-domain.com +DB_CONNECTION=mysql +DB_HOST=127.0.0.1 +DB_DATABASE=virtnetbond +DB_USERNAME=your_username +DB_PASSWORD=your_password +``` + +6. **Run migrations and seed database** + +```bash +php artisan migrate --seed +``` + +7. **Create storage link** + +```bash +php artisan storage:link +``` + +8. **Set up queue worker** (recommended) + +```bash +php artisan queue:work +``` + +### Docker Installation + +```bash +docker-compose up -d +``` + +
+ +## πŸ“‚ Project Structure + +``` +Virtnet.bond/ +β”œβ”€β”€ app/ +β”‚ β”œβ”€β”€ Admin/ # Filament admin resources +β”‚ β”‚ β”œβ”€β”€ Resources/ # CRUD resources +β”‚ β”‚ β”œβ”€β”€ Pages/ # Custom admin pages +β”‚ β”‚ └── Widgets/ # Dashboard widgets +β”‚ β”œβ”€β”€ Livewire/ # Livewire components +β”‚ β”‚ β”œβ”€β”€ Tickets/ # Ticket management +β”‚ β”‚ β”œβ”€β”€ Services/ # Service management +β”‚ β”‚ └── Products/ # Product browsing +β”‚ β”œβ”€β”€ Models/ # Eloquent models +β”‚ └── Helpers/ # Utility classes +β”œβ”€β”€ extensions/ +β”‚ β”œβ”€β”€ Gateways/ # Payment gateway integrations +β”‚ β”‚ β”œβ”€β”€ PayPal/ +β”‚ β”‚ └── Stripe/ +β”‚ β”œβ”€β”€ Servers/ # Server provisioning integrations +β”‚ β”‚ β”œβ”€β”€ Proxmox/ +β”‚ β”‚ β”œβ”€β”€ Pterodactyl/ +β”‚ β”‚ └── ... +β”‚ └── Others/ # Additional extensions +β”‚ β”œβ”€β”€ Announcements/ +β”‚ β”œβ”€β”€ KnowledgeBase/ +β”‚ └── ... +β”œβ”€β”€ themes/ +β”‚ └── lucentui/ # Default theme +β”‚ β”œβ”€β”€ css/ +β”‚ β”œβ”€β”€ views/ +β”‚ └── vite.config.js +β”œβ”€β”€ resources/ +β”‚ └── views/ # Core Blade templates +β”œβ”€β”€ routes/ +β”‚ β”œβ”€β”€ web.php # Web routes +β”‚ └── api.php # API routes +└── config/ # Configuration files +``` + +
+ +## 🎨 Theming + +Virtnet.bond uses a powerful theming system powered by **LucentUI**. Themes support: + +- **CSS Custom Properties** - Theme tokens for consistent styling +- **Dark/Light Mode** - Automatic theme switching +- **Tailwind CSS** - Utility-first styling +- **Remix Icons** - Comprehensive icon library + +### Creating a Custom Theme + +```bash +# Create a new theme +cp -r themes/lucentui themes/mytheme + +# Update theme.php with your theme details +# Customize CSS and Blade templates +# Build assets +node vite.js mytheme +``` + +
+ +## πŸ”Œ Extension Development + +Extensions are the heart of Virtnet.bond's modularity. Create your own extensions to add: + +- Server integrations +- Payment gateways +- Custom pages and features +- Admin panel additions + +### Extension Structure + +```php +extensions/ +└── YourExtension/ + β”œβ”€β”€ YourExtension.php # Main extension class + β”œβ”€β”€ Livewire/ # Livewire components + β”œβ”€β”€ views/ # Blade templates + β”œβ”€β”€ routes/ # Custom routes + └── migrations/ # Database migrations +``` + +### Basic Extension Class + +```php + 'setting_name', + 'type' => 'text', + 'label' => 'Setting Label', + 'description' => 'Description of the setting', + ], + ]; + } +} +``` + +
+ +## πŸ› οΈ Development + +### Running in Development Mode + +```bash +# Start the development server +php artisan serve + +# Watch for asset changes +npm run dev + +# Or run both simultaneously +composer dev +``` + +### Running Tests + +```bash +php artisan test +``` + +### Code Style + +```bash +# Fix code style issues +./vendor/bin/pint +``` + +### Database Migrations + +```bash +# Create a new migration +php artisan make:migration create_example_table + +# Run migrations +php artisan migrate + +# Rollback migrations +php artisan migrate:rollback +``` + +
+ +## πŸ“Š API Documentation + +Virtnet.bond provides a comprehensive REST API for integration with external systems. + +- **API Documentation**: Available at `/docs/api` when enabled +- **Authentication**: Laravel Passport OAuth2 +- **Rate Limiting**: Configurable per-endpoint limits + +```bash +# Generate API documentation +php artisan scramble:export +``` + +
+ +## 🀝 Contributing + +We welcome contributions from the community! Whether you're fixing bugs, adding features, improving documentation, or spreading the word - we'd love to have you. + +### How to Contribute + +1. **Fork the repository** +2. **Create a feature branch** (`git checkout -b feature/amazing-feature`) +3. **Commit your changes** (`git commit -m 'Add amazing feature'`) +4. **Push to the branch** (`git push origin feature/amazing-feature`) +5. **Open a Pull Request** + +### Contribution Types + +- πŸ› **Bug Reports** - Found an issue? [Create a bug report](https://github.com/VirtnetBond/Virtnet.bond/issues/new?template=bug_report.md) +- ✨ **Feature Requests** - Have an idea? [Submit a feature request](https://github.com/VirtnetBond/Virtnet.bond/issues/new?template=feature_request.md) +- πŸ“– **Documentation** - Help improve our docs +- 🧩 **Extensions** - Build and share extensions + +
+ +## πŸ‘₯ Contributors + + + + + +
+ +## πŸ“œ License + +This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details. + +
+ +## πŸ™ Acknowledgments + +Virtnet.bond is built on the shoulders of giants: + +- [Laravel](https://laravel.com) - The PHP Framework +- [Livewire](https://livewire.laravel.com) - Full-stack framework for Laravel +- [Filament](https://filamentphp.com) - Admin panel framework +- [Tailwind CSS](https://tailwindcss.com) - Utility-first CSS framework +- [Alpine.js](https://alpinejs.dev) - Lightweight JavaScript framework +- [Paymenter](https://paymenter.org) - Original billing platform inspiration + +
+ +--- + +

+ Built with ❀️ by the Virtnet.bond team +

+ +

+ Website β€’ + Docs β€’ + Discord β€’ + Twitter +