UniSoul is a modern Telegram bot built with Laravel 12 and PHP 8.2, designed as a spiritual guide with confession flows, configuration menus, and an admin panel powered by Filament.
β οΈ Project status: Testing / Demo-ready
-
Bot Demo (User Flow):
https://youtu.be/zdwysA-RAVQ -
Admin Panel & Management Demo:
https://youtu.be/hal26y43olA
You can interact with the live demo bot directly on Telegram:
π https://t.me/unis1oul_bot
This demo showcases:
- Main menu navigation
- User configuration flows
- Confession and message handling
- Real production bot behavior
- Telegram bot with structured conversational flows
- User configuration (language, notifications, gender, etc.)
- Confession and message storage
- Filament admin panel for moderation and statistics
- Docker-first setup with Laravel Sail
- Prepared for polling and webhook modes
- Laravel 12 & PHP 8.2 compatible architecture
- Backend: Laravel 12, PHP 8.2
- Bot Framework: Nutgram
- Admin Panel: Filament
- Database: MySQL
- Infrastructure: Docker, Laravel Sail
- Cache / Queue Ready: Redis (optional)
| Confession Actions | Contact & Chat Form |
|---|---|
![]() |
![]() |
| Main menu and confession flow | User contact and chat interaction |
Click to view demo
unisoul.mp4
| Bot Buttons Management | Confessions Management |
|---|---|
![]() |
![]() |
| Configure bot keyboards and actions | Moderate and review user confessions |
- Docker
- Docker Compose
Copy .env.example to .env and configure:
APP_ENV=local
TELEGRAM_BOT_TOKEN=YOUR_BOT_TOKEN
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=sail
DB_PASSWORD=passworddocker compose up -d
docker compose exec bot.backend composer install
docker compose exec bot.backend php artisan migrate./vendor/bin/sail up -d
./vendor/bin/sail downConfigured via supervisord:
docker/8.4/supervisord.conf(local)docker/production/supervisord.conf(production)
Run manually if needed:
./vendor/bin/sail artisan nutgram:runPrepared but disabled by default.
Enable webhook after deployment:
php artisan nutgram:hook:set https://yourdomain.com/api/telegram/webhookCheck status:
php artisan nutgram:hook:infoRemove webhook:
php artisan nutgram:hook:removeWebhook endpoint:
POST /api/telegram/webhook
(CSRF excluded)
./vendor/bin/sail artisan testIncludes feature tests for webhook handling and database persistence.
URL: http://localhost:8050/management
| Password | |
|---|---|
| default@admin.test | password |
| test@admin.test | password |
Resources:
- Users
- Confessions
- Bot Buttons
- Statistics
Create new admin:
./vendor/bin/sail artisan make:filament-userThe bot supports a minimal, command-driven interaction model. All user actions are handled via explicit Telegram commands or free-text input.
| Command | Purpose |
|---|---|
/start |
Initialize user session and show main menu |
/help |
Display help and available commands |
/settings |
Open user settings menu |
| Action / Input | Bot Behavior | Persistence Layer |
|---|---|---|
/start |
Initialize user, show main menu | UserConfig, UserMessage |
/help |
Show help text and command list | β |
/settings |
Show current user configuration | UserConfig |
| Change language | Update language preference | UserConfig |
| Toggle notifications | Enable / disable notifications | UserConfig |
| Free text message | Acknowledge or route based on state | UserMessage |
/startis idempotent β safe to call multiple times/helpis stateless β does not modify user data/settingsoperates only on existing users (created via/start)- Free text messages are handled based on the current user state, not blindly echoed
All Telegram interaction logic is centralized in:
app/Services/TelegramBotService.php
This service is responsible for:
- Command routing
- State resolution
- Message dispatch
- Persistence coordination (
UserConfig,UserMessage)
- Updated middleware signatures
- Modern
Http\Kernel.php - Webhook route using controller array syntax
- CSRF exclusion for Telegram webhook
- Strong typing for PHP 8.2
- Service-based bot architecture
MIT License
This project is suitable as:
- Portfolio demo
- SaaS Telegram bot base
- Client-ready bot foundation
For customization or integration β open an issue or contact the author.



