Introduction

Setup Feedier BX in Local

Install with Docker (Approx. 20 Minutes)

Prerequisites

  • Clone the repository from Bitbucket
  • Copy the environment file:
    cp .env.example .env

Install Dependencies

Run the following command to install Composer dependencies using Docker:

docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v "$(pwd):/var/www/html" \
    -w /var/www/html \
    laravelsail/php83-composer:latest \
    composer install --ignore-platform-reqs

Start the Application

  1. Start the containers:
    ./vendor/bin/sail up -d
  2. Generate a secure Laravel key:
    ./vendor/bin/sail artisan key:generate
  3. Create and migrate the database:
    ./vendor/bin/sail artisan migrate
  4. Install NPM dependencies:
    ./vendor/bin/sail npm install
  5. Start the Vite watcher for frontend assets:
    ./vendor/bin/sail npm run dev

Services

Mailpit

Mailpit is a local email testing tool, similar to Mailtrap but free and local.

Redis

Redis is an in-memory data store used for caching and message brokering.

  • Host: 127.0.0.1
  • User: (leave blank)
  • Password: Check .env${REDIS_PASSWORD}
  • Port: Check .env${FORWARD_REDIS_PORT}
  • Documentation: https://redis.io/documentation

MySQL

MySQL is the relational database used for storing application data.

  • Host: 127.0.0.1
  • User: Check .env${DB_USERNAME}
  • Password: Check .env${DB_PASSWORD}
  • Database: Check .env${DB_DATABASE}
  • Port: Check .env${FORWARD_DB_PORT}
  • Documentation: https://dev.mysql.com/doc/

Selenium

Selenium is a browser automation tool used for capturing screenshot of our application.

Keycloak

Keycloak is an open-source identity and access management system for Single Sign-On (SSO) authentication.

MinIO

MinIO is an S3-compatible object storage service for storing files and assets.

  • API URL: http://localhost:9500
  • Console URL: http://localhost:8900
  • Default Credentials:
    • User: sail
    • Password: password
  • Documentation: https://min.io/docs

Access the Container via SSH

For running Composer, NPM, Artisan, etc., execute:

./vendor/bin/sail shell

Create an Alias for Convenience

echo "alias sail='./vendor/bin/sail'" >> ~/.bashrc && source ~/.bashrc

Now, you can use sail as a shortcut.

Do not run npm, composer, or artisan commands outside the Sail environment. Always use:

sail {npm, composer, artisan...}

Synchronize Your Feedback with Elasticsearch

  1. Run the following command:
    ./vendor/bin/sail artisan scout:update
  2. Then, process the pending jobs on Horizon:
    ./vendor/bin/sail php artisan horizon

Configure PHPStorm for Development

Follow these steps in order to ensure your pull requests pass pipeline checks:

  1. Use Docker's PHP
  2. Use Docker's Node
  3. Install ESLint
  4. Install Laravel Pint

This setup ensures a consistent development environment across all team members.

Previous
Getting Started