Coder Social home page Coder Social logo

henryvoorburg / symfony-boilerplate Goto Github PK

View Code? Open in Web Editor NEW

This project forked from thecodingmachine/symfony-boilerplate

0.0 0.0 0.0 6.96 MB

An example of an application built with Symfony 5, GraphQL and Nuxt.js

Home Page: https://thecodingmachine.github.io/symfony-boilerplate

Shell 0.13% JavaScript 8.64% Ruby 0.70% PHP 50.62% CSS 8.82% Makefile 0.61% Vue 13.96% Dockerfile 0.41% SCSS 15.31% Twig 0.79%

symfony-boilerplate's Introduction

Symfony Boilerplate

Symfony Boilerplate

Documentation


This is a template of a README. Adapt it according to the comments and your needs.


Symfony Boilerplate

Replace this title and the following description with your project name and description.

A web application built with Nuxt.js 2, Symfony 5.4 (LTS), and GraphQL 5.

Setup

Prerequisites

Linux

Install the latest version of Docker and Docker Compose.

macOS

Consider installing Vagrant and VirtualBox.

Indeed, Docker currently has substantial performance issues on macOS, and using Vagrant allows us to have an almost Linux-like experience regarding performances.

Windows

Consider using a Linux-like terminal to run the Makefile commands. Vagrant might also be a solution regarding performances.

If not possible, you may also directly run the commands specified in the Makefile. For instance, instead of running make up, run docker-compose up -d.

Hosts

Update your hosts file with the following entries:

127.0.0.1   traefik.symfony-boilerplate.localhost
127.0.0.1   symfony-boilerplate.localhost
127.0.0.1   api.symfony-boilerplate.localhost
127.0.0.1   phpmyadmin.symfony-boilerplate.localhost
127.0.0.1   minio.symfony-boilerplate.localhost
127.0.0.1   mailhog.symfony-boilerplate.localhost

Update the domain with the one used in your project.

On Linux and macOS, run sudo nano /etc/hosts to edit it.

On Windows, edit the file C:\Windows\System32\drivers\etc\hosts with administrative privileges.

First start

Copy the file .env.dist to a file named .env. For instance:

cp .env.dist .env

Edit the .env.dist by updating the default values of DOMAIN, MYSQL_DATABASE and APP_SECRET environment variables.


Vagrant user

"Comment" the STARTUP_COMMAND_3 and STARTUP_COMMAND_4 environment variables from the api service in the docker-compose.yml file.

Next, run:

docker-compose up webapp api

📣  This command start the webapp and api service. While booting, these services install the JavaScript and PHP dependencies. We cannot do that directly in the Vagrant VM as yarn and composer install fail miserably the first time.

Once the services have installed the dependencies, you may stop them with:

CTRL+C
docker-compose down

Don't forget to uncomment the previous environments variables from the api service in the docker-compose.yml file.

Next, check there is no application running on port 80 (like Apache or another virtual machine).

If OK, run make vagrant, then vagrant up, and finally vagrant ssh to connect to the virtual machine. From here, you'll be able to run all the next commands like Linux users!

Update the variable VAGRANT_PROJECT_NAME from the .env and .env.dist files with your project name. Only use alphanumeric characters (no spaces, distinguish words with _ or -).


Next, make sure there is no application running on port 80 (Vagrant users can skip this check).

Good? You may now start all the Docker containers with the following commands:

make up

It may take some time as each container will also set up itself, such as installing dependencies (PHP, JavaScript, etc.), compiling sources (JavaScript), or running migrations to set up the database structure.

📣  In some cases, the api service will try to run the migrations before the mysql service is ready. If so, restart the api service with docker-compose up -d api.

The containers will be ready faster next time you run this command as the first run is doing most of the setup.

Once everything is ready, the following endpoints should be available:

Update the domain with the one used in your project.

You may now enter the api service and load the development data:

make api
php bin/console app:fixtures:dev
exit

Last but not least, start the message consumer with:

make consume

What's next?

Configuring Git

Git should ignore globally some folders like those generated by your IDE and Vagrant.

If not already done, you should tell Git where to find your global .gitignore file.

For instance, on Linux/macOS/Windows git bash:

git config --global core.excludesfile '~/.gitignore'

Windows cmd:

git config --global core.excludesfile "%USERPROFILE%\.gitignore"

Windows PowerShell:

git config --global core.excludesfile "$Env:USERPROFILE\.gitignore"

Then create the global .gitignore file according to the location specified previously.

You may now edit it, according to your environment, with:

# IDE
.idea
.vscode
# MacOS
.DS_Store
# Vagrant
.vagrant

Documentations

Make sure you have read the following documentations:

Day-to-day guidelines

In-depth explanations

How to stop the stack?

As simple as the make up command, run make down to stop the entire Docker Compose stack.

If you're a Vagrant user, you may also stop the virtual machine with vagrant halt.

If you're not going to work on the project for a while, you may also destroy the virtual machine using vagrant destroy.

How to view the logs of the Docker containers?

All aggregated logs:

docker-compose logs -f

Logs of one service:

docker-compose logs -f SERVICE_NAME

For instance, if you want the logs of the api service:

docker-compose logs -f api

symfony-boilerplate's People

Contributors

gulien avatar jeremydolle avatar moufmouf avatar mrbig00 avatar homersimpsons avatar mistraloz avatar dredwardpcb avatar patrick-mota avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.