MusicAll is a platform where people can share videos, articles, and courses, search for musicians or bands to collaborate with, and chat directly with them.
This project uses:
- PHP 8.4
- Symfony 7.4
- MariaDB version 10.11
- Node 20
- Vue.js 3
Before you begin, ensure you have the following installed:
- Docker & Docker Compose (Installation Guide)
- Git
- (Optional) Node 20+ via NVM for local asset development
For experienced developers, here's the condensed setup:
# Add to /etc/hosts
echo "10.200.200.7 musicall.local musicall.test" | sudo tee -a /etc/hosts
# Start services
docker compose up -d
# Install dependencies
docker compose run --rm php-cli composer install
docker compose run --rm node npm ci
# Setup database with fixtures
docker compose run --rm php-cli bin/console foundry:load-fixtures app
# Fix storage permissions
chmod 775 -R public/images/ public/media/
# Build assets
docker compose run --rm node npm run dev
# Visit https://musicall.localThese instructions will get you a copy of the project up and running on your local machine for development.
Start Docker services:
docker compose up -dThis will pull and build all required images to run MusicAll.
If you need to rebuild images (after an update, for instance):
docker compose up --buildAdd musicall.local and musicall.test to your /etc/hosts:
10.200.200.7 musicall.local musicall.testInstall PHP dependencies:
docker compose run --rm php-cli composer installInstall JavaScript dependencies:
docker compose run --rm node npm ci
# or locally if you have Node installed:
npm ciOption A: Load Fixtures (Recommended for Development)
This will create the database schema and populate it with random data. It will erase all previous data.
docker compose run --rm php-cli bin/console foundry:load-fixtures appRun this every time before working on a merge request or when you want to start from scratch.
Option B: Run Migrations
If you want to populate the database yourself, run migrations instead:
docker compose run --rm php-cli bin/console doctrine:migration:migrateConfigure permissions for file storage:
chmod 775 -R public/images/ public/media/If you encounter permission issues, adjust ownership:
sudo chown -R $USER:www-data public/images/ public/media/Development Mode (auto-rebuild on changes):
docker compose run --rm node npm run dev
# or locally:
npm run devProduction Build:
docker compose run --rm node npm run build
# or locally:
npm run buildYou can now access the application at: https://musicall.local
Learn how to use the application
Reset database with fresh fixtures:
docker compose run --rm php-cli bin/console foundry:load-fixtures appRun pending migrations:
docker compose run --rm php-cli bin/console doctrine:migration:migrateCreate a new migration:
docker compose run --rm php-cli bin/console doctrine:migrations:diffYou can run asset commands either through Docker or locally (if you have Node installed via NVM).
Watch mode (recommended during development):
docker compose run --rm node npm run dev
# or locally:
npm run devProduction build:
docker compose run --rm node npm run build
# or locally:
npm run builddocker compose run --rm php-cli bin/phpunitdocker compose run --rm php-cli bin/phpunit --coverage-html coverage/Then open coverage/index.html in your browser.
docker compose run --rm php-cli bin/phpunit tests/Unit
docker compose run --rm php-cli bin/phpunit tests/FunctionalWe welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests to ensure nothing breaks
- Commit your changes following Conventional Commits
- Push to your branch
- Open a Pull Request