This guide is self-contained: follow it from top to bottom to get a working development installation with Docker Compose.
- Docker
- Docker Compose
- Node.js and npm on your host machine (Node >= 24, npm >= 11 — see
package.jsonengines), for compiling the front-end assets
git clone https://github.com/scify/Crowdsourcing-Platform.git
cd Crowdsourcing-PlatformRun these commands on your host machine, from the project root:
sudo chown -R `whoami`:www-data storage
chmod 775 storage
find storage -type f -exec chmod 664 {} \;
find storage -type d -exec chmod 775 {} \;cp .env.example .envSet the database credentials in .env (the db host is the Docker Compose service):
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=crowdsourcing_db_docker
DB_USERNAME=root
DB_PASSWORD=rootdocker compose up --build- Application: http://localhost:89
- PHPMyAdmin: http://localhost:8081
Enter the database container and create the database:
docker exec -it crowdsourcing_platform_db bash
mysql -u root -pCREATE DATABASE IF NOT EXISTS crowdsourcing_db_docker;All the remaining PHP commands run inside the server container:
docker exec -it crowdsourcing_platform_server bashThen:
composer install
composer dump-autoloadphp artisan key:generateChoose one of the two options.
Option 1 — import an existing MySQL dump. Inside the db container, with the dump file in the current directory:
mysql -u root -p crowdsourcing_db_docker < dump.sqlOption 2 — run the migrations and seed the database. Inside the server container:
php artisan migrate
php artisan db:seedOn your host machine:
npm install
npm run dev # development mode with live changes
npm run build # one-off development build
npm run prod # production buildUploaded images are stored at storage/app/public. Link that directory to
public/storage (inside the server container):
php artisan storage:linkphp artisan config:cacheRe-run this command every time you change the .env file.
- Check the container logs:
docker compose logs - Review the Laravel logs at
storage/logs/laravel.log - Verify that the
.envdatabase credentials match step 3
For development guidelines (tests, linting, debugging), see development.md.