{"id":13545345,"url":"https://github.com/msztorc/laravel-starter","last_synced_at":"2026-01-23T01:18:56.089Z","repository":{"id":166478119,"uuid":"210935130","full_name":"msztorc/laravel-starter","owner":"msztorc","description":"Laravel starter - Ansible Provisioner not only for Vagrant","archived":false,"fork":false,"pushed_at":"2020-04-16T20:05:42.000Z","size":79,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-03T12:32:14.073Z","etag":null,"topics":["ansible","laravel","provisioning","vagrant"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/msztorc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-09-25T20:31:26.000Z","updated_at":"2020-09-29T22:43:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"e6f2cd68-8bf1-4f98-9fb6-7f219c1743ac","html_url":"https://github.com/msztorc/laravel-starter","commit_stats":null,"previous_names":["msztorc/laravel-starter"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msztorc%2Flaravel-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msztorc%2Flaravel-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msztorc%2Flaravel-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msztorc%2Flaravel-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/msztorc","download_url":"https://codeload.github.com/msztorc/laravel-starter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246841630,"owners_count":20842623,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","laravel","provisioning","vagrant"],"created_at":"2024-08-01T11:01:01.236Z","updated_at":"2026-01-23T01:18:56.074Z","avatar_url":"https://github.com/msztorc.png","language":null,"funding_links":[],"categories":["Others"],"sub_categories":[],"readme":"# Laravel Starter\r\n\r\n[![Build Status](https://travis-ci.org/msztorc/laravel-starter.svg?branch=master)](https://travis-ci.org/msztorc/laravel-starter)\r\n[![License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](https://www.opensource.org/licenses/MIT)\r\n\r\n[![Laravel-Starter](laravel-starter.png)](https://github.com/msztorc/laravel-starter)\r\n\r\nQuick and easy server provisioning for Laravel using Ansible + Vagrant auto provisioning for local environments.\r\n\r\n**Default environment setup**\r\n\r\n- ubuntu 18.04 (bionic64)\r\n- laravel:latest\r\n- php 7.4\r\n- mysql 5.7\r\n- nginx\r\n\r\n#### Provisioning methods\r\n\r\n- Vagrant deployment with Ansible local provisioning\r\n- Ansible provisioning (remote environments)\r\n\r\n\r\n### Quick start\r\n\r\nClone this repo\r\n\r\n```bash\r\ngit clone https://github.com/msztorc/laravel-starter.git\r\n```\r\n\r\n```bash\r\ncd laravel-starter\r\n```\r\n\r\nAdjust your config settings like project name, passwords, etc... - see below for more details.\r\n\r\n**Provisioning variables**\r\n\r\n[provisioning/group_vars/all](provisioning/group_vars/all)\r\n\r\n```yaml\r\nweb_root: /var/www/my-project # project path\r\nweb_host: laravel.host        # project domain\r\ndb_root_pass: p4ssvv0rD       # database root password\r\napp_db_name: my-project       # application database name\r\napp_db_user: my-project       # application database user\r\napp_db_pass: p4ssvv0rD        # application database user password\r\n```\r\n\r\n**Inventory**\r\n\r\n[provisioning/hosts](provisioning/hosts)\r\n\r\n```ini\r\n[local]\r\nlocalhost\tansible_connection=local\r\n\r\n[vagrant]\r\n10.10.10.10 ansible_connection=local ansible_ssh_user=vagrant ansible_ssh_private_key_file=/vagrant/.vagrant/machines/default/virtualbox/private_key\r\n\r\n[sandbox]\r\nX.X.X.X ansible_ssh_user=root\r\n\r\n[all:vars]\r\nansible_python_interpreter=/usr/bin/python3\r\n```\r\n\r\n\r\n#### Vagrant deployment with Ansible local provisioning\r\n\r\nVagrant configurations are stored in [Vagrantfile](Vagrantfile)\r\n\r\nBox default config\r\n\r\n__IP \u0026 hostname__\r\n\r\n```ruby\r\n    config.vm.network \"private_network\", ip: \"10.10.10.10\"\r\n    config.vm.hostname = \"laravel.host\"\r\n```\r\n\r\n__Resources (default: memory - 2GB, vCPUs - 2)__\r\n\r\n```ruby\r\n   config.vm.provider \"virtualbox\" do |vb|\r\n     vb.memory = 2048\r\n     vb.cpus = 2\r\n   end\r\n```\r\n\r\n__Set synced folder__ (local, destination)\r\n\r\n```ruby\r\n  # config.vm.synced_folder \"../data\", \"/vagrant_data\"\r\n```\r\n\r\nIf you want to set synced folder mapping local project to box webroot, you have to uncomment this line:\r\n\r\n```ruby\r\nconfig.vm.synced_folder \"../GIT/my-project\", \"/var/www/my-project\"\r\n```\r\n\r\n\r\nRun your VM using Vagrant with Ansible auto-provisioning\r\n\r\n```bash\r\nvagrant up\r\n```\r\n\r\n\r\n**Note**\r\nRemember to run `vagrant reload` every time when Vagrantfile has been updated\r\n\r\nOther useful vagrant commands\r\n\r\nCheck status of all machines\r\n\r\n``vagrant global-status``\r\n\r\nHalt vagrant box (run in box directory)\r\n\r\n``vagrant halt``\r\n\r\nUp vagrant box (run in box directory)\r\n\r\n``vagrant up``\r\n\r\n**Note**\r\nRemember to run `vagrant reload` and `vagrant provision` every time when any provisioning configs were updated\r\n\r\n### Xdebug\r\n\r\nTo integrate Xdebug with PhpStorm perform following steps:\r\n\r\n1. Make sure you have ``php7.4-xdebug`` extension installed in within the vagrant box.\r\n2. Append following configuration to the ``/etc/php/7.4/php.ini`` file:\r\n```\r\n[xdebug]\r\nzend_extension=/usr/lib/php/20170718/xdebug.so\r\nxdebug.remote_enable=1\r\nxdebug.remote_port=9000\r\nxdebug.profiler_enable=1\r\nxdebug.remote_host=10.10.10.10\r\n```\r\n3. Execute command: ``sudo service php7.4-fpm restart``.\r\n4. Install ``Xdebug helper`` extension for Chrome (or some kind of equivalent for your browser).\r\n5. In PhpStorm:\r\n * Press \u003ckbd\u003eCtrl+Shift+A\u003c/kbd\u003e and search ``Web Server Debug Validation``. \r\n * Choose ``Local Web Server or Shared Folder``.\r\n * Determine ``Path to create validation script`` like so: ``/\u003cpath\u003e/\u003cto\u003e/\u003cproject\u003e/my-project/public``\r\n * Determine ``Url to validation script`` like so: ``http://laravel.host``.\r\n * After clicking ``Validate`` button you should receive some information with green ticks. If not - you probably messed up with previous settings.\r\n6. Navigate to: ``Languages \u0026 Frameworks \u003e PHP \u003e Servers`` and map your local and remote paths. It should be something like: ``my-project -\u003e /var/www/my-project``.\r\n7. Press ``Start Listening for PHP Debug Connections`` button. It should be placed on top right side with phone icon.\r\n8. Place breakpoint somewhere in your code that will be executed in the next request e.g. ``index.php``.\r\n9. In the browser:\r\n * Make sure you have enabled ``Debug`` option in previously installed browser extension.\r\n * Refresh application's page.\r\n10. In PhpStorm ``Debug`` panel should appear. You can toggle it using \u003ckbd\u003eAlt+5\u003c/kbd\u003e.\r\n11. Enjoy :metal:\r\n\r\n\r\n\r\n#### Ansible provisioning\r\n\r\nAdjust `staging` section in inventory file [provisioning/hosts](provisioning/hosts) and set IP for remote server\r\n\r\n```ini\r\n[staging]\r\nX.X.X.X ansible_ssh_user=root\r\n```\r\n\r\n```bash\r\ncd provisioning\r\nansible-playbook -i hosts --limit staging playbook.yml\r\n```\r\n\r\nor using user and password\r\n\r\n```bash\r\nansible-playbook -i hosts --limit staging playbook.yml -u root -k\r\n```\r\n\r\n`-u` \u003cREMOTE_USER\u003e, `--user` \u003cREMOTE_USER\u003e\r\n\r\n`-k`, `--ask-pass`\r\nask for connection password\r\n\r\n\r\nif you want to enable debugging just add to `ansible-playbook` command verbose option `-v` (`-vvv` for more, `-vvvv` to enable connection debugging)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsztorc%2Flaravel-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmsztorc%2Flaravel-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsztorc%2Flaravel-starter/lists"}