morfeditorial / machinima-app
The official Telegram Mini App for the Machinima platform.
Package info
github.com/morfeditorial/machinima-app
Type:project
pkg:composer/morfeditorial/machinima-app
Requires
- php: >=8.4
- ext-ctype: *
- ext-iconv: *
- doctrine/doctrine-bundle: ^3.3.1
- doctrine/doctrine-migrations-bundle: ^4.0
- doctrine/orm: ^3.6
- morfeditorial/machinima-bot: dev-main
- morfeditorial/machinima-core: dev-main
- morfeditorial/machinima-telegram-adapter: dev-main
- morfeditorial/telegram-bot-bundle: dev-main
- symfony/console: 8.1.*
- symfony/dotenv: 8.1.*
- symfony/flex: ^2
- symfony/framework-bundle: 8.1.*
- symfony/runtime: 8.1.*
- symfony/yaml: 8.1.*
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.95.17
- symfony/maker-bundle: ^1.67
Conflicts
This package is auto-updated.
Last update: 2026-08-02 12:04:05 UTC
README
machinima-app
Host application for the Machinima platform.
Architecture · Run profiles · Tech stack · Installation · Contributing
This is the host skeleton application for the Machinima platform. It functions seamlessly as both a regular website and an interactive Telegram Mini App. Its unique architecture ensures that the core system remains completely independent and modular.
Architecture
This repository (machinima-app) acts merely as a thin skeleton and configuration host. It contains almost no PHP code of its own. Its primary responsibility is to wire together external, modular components using Symfony configuration and environment profiles:
morfeditorial/machinima-core— the foundational bundle that provides the domain models, business logic, controllers, and base UI templates. The core itself is completely platform-agnostic.- Platform Adapters — separate composer packages that provide integration with external platforms (like Telegram). They implement the contracts exposed by the core bundle to register identity providers and zero-click login capabilities.
Currently, the primary adapter wired into this host is machinima-telegram-adapter.
Run profiles
The application supports several profiles (config/profiles/) that enable a different set of bundles and configuration via APP_PROFILE:
core-only— core only, no platform adapter.telegram-webapp— core + Telegram Mini App adapter (zero-click login, UI hints).telegram-bot— core + Telegram bot (notifications, commands).
Tech stack
As a host application, this repository defines the infrastructure and runtime environment:
- Runtime: PHP 8.4+, Symfony 8.1
- Database: PostgreSQL (via Doctrine)
- Real-time: Mercure Hub
- Asynchronous Processing: Symfony Messenger
Installation
composer install
Copy .env.example to .env.local and fill in the values:
cp .env.example .env.local
Main environment variables:
| Variable | Purpose |
|---|---|
APP_PROFILE |
core-only / telegram-webapp / telegram-bot |
DATABASE_URL |
PostgreSQL connection string |
TELEGRAM_BOT_TOKEN |
bot token (needed by the Telegram adapter and for verifying Mini App initData) |
MERCURE_URL / MERCURE_PUBLIC_URL / MERCURE_JWT_SECRET |
Mercure hub for real-time updates |
MESSENGER_TRANSPORT_DSN |
transport for asynchronous messages |
Bring up infrastructure (PostgreSQL, Mercure) via Docker Compose:
docker compose up -d
Database migrations:
php bin/console doctrine:migrations:migrate
Local run via Symfony CLI:
symfony server:start -d
Project structure
machinima-app/
+-- config/
| \-- profiles/ # configuration per run profile
+-- migrations/ # Doctrine migrations
+-- src/
| \-- Kernel.php # Symfony Kernel
\-- public/ # Entry point
Contributing
Contributions are welcome and appreciated! Here's how you can contribute:
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Please make sure to update tests as appropriate and adhere to the existing coding style.
License
This project is licensed under the CSSM Unlimited License v2.0 (CSSM-ULv2). See the LICENSE file for details.