{"id":19059548,"url":"https://github.com/vaibhavpandeyvpz/larable","last_synced_at":"2026-03-01T22:36:25.110Z","repository":{"id":236746122,"uuid":"768943805","full_name":"vaibhavpandeyvpz/larable","owner":"vaibhavpandeyvpz","description":"Terraform modules and Ansible scripts to orchestrate setup, deployment (and redeployment) of a Laravel project for flat deployments.","archived":false,"fork":false,"pushed_at":"2024-04-28T11:12:35.000Z","size":16,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-21T00:19:53.600Z","etag":null,"topics":["ansible","cloud","devops","digitalocean","google-cloud-platform","laravel","mysql","php","redis","terraform","ubuntu","vps"],"latest_commit_sha":null,"homepage":"https://vaibhavpandey.com/","language":"HCL","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/vaibhavpandeyvpz.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-08T02:45:32.000Z","updated_at":"2024-05-02T14:04:54.000Z","dependencies_parsed_at":"2024-04-28T12:21:43.481Z","dependency_job_id":"1347ed83-b535-42b5-8523-e1d9dff4dc29","html_url":"https://github.com/vaibhavpandeyvpz/larable","commit_stats":null,"previous_names":["vaibhavpandeyvpz/ansible-laravel-playbook"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vaibhavpandeyvpz/larable","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaibhavpandeyvpz%2Flarable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaibhavpandeyvpz%2Flarable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaibhavpandeyvpz%2Flarable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaibhavpandeyvpz%2Flarable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vaibhavpandeyvpz","download_url":"https://codeload.github.com/vaibhavpandeyvpz/larable/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaibhavpandeyvpz%2Flarable/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29987184,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T21:06:37.093Z","status":"ssl_error","status_checked_at":"2026-03-01T21:05:45.052Z","response_time":124,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","cloud","devops","digitalocean","google-cloud-platform","laravel","mysql","php","redis","terraform","ubuntu","vps"],"created_at":"2024-11-09T00:10:30.578Z","updated_at":"2026-03-01T22:36:25.076Z","avatar_url":"https://github.com/vaibhavpandeyvpz.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# larable\n\n[Terraform](https://www.terraform.io/) modules and [Ansible](https://www.ansible.com/) scripts to orchestrate setup, deployment (and redeployment) of a [Laravel](https://laravel.com/) project for flat deployments because not every developer is a DevOps expert but clients still expect them to be. 🥲\nUsing these scripts, you can even deploy multiple [Laravel](https://laravel.com/) projects on the same server, if desired.\n\nThis project contains [Terraform](https://www.terraform.io/) modules for [DigitalOcean](https://www.digitalocean.com/) and [Google Cloud Platform](https://console.cloud.google.com/).\nDepending on the cloud platform of your choice, you can use either of those available providers.\n\nIt configures and manages deployment of a [Laravel](https://laravel.com/) project (with [Nginx](https://www.nginx.com/), [PHP-FPM](https://www.php.net/manual/en/install.fpm.php) 7 or 8, [MySQL](https://www.mysql.com/), [Redis](https://redis.io/), job queue backed by [Supervisor](http://supervisord.org/), task scheduler etc.) on an [Ubuntu](https://ubuntu.com/) VPS with one command.\n\n## Prepare\n\nFirstly, make sure you have [Terraform](https://www.terraform.io/) and [Ansible](https://www.ansible.com/) installed on your workstation.\n\n### DigitalOcean\n\nIf you plan to use [DigitalOcean](https://www.digitalocean.com/) providers, go to [this page](https://cloud.digitalocean.com/account/api/tokens) and create a Personal Access Token.\nIn addition, go to [this page](https://cloud.digitalocean.com/account/api/spaces) and create a Spaces Access Key as well.\n\nTo access the droplet via SSH for running [Ansible](https://www.ansible.com/) scripts, go to [this page](https://cloud.digitalocean.com/account/security) and add your public SSH key.\n\n### Google Cloud Platform\n\nTo use [Google Cloud Platform](https://console.cloud.google.com/), select the relevant project and enable access to following APIs:\n\n- [cloudresourcemanager.googleapis.com](https://console.cloud.google.com/apis/library/cloudresourcemanager.googleapis.com)\n- [compute.googleapis.com](https://console.cloud.google.com/apis/library/compute.googleapis.com)\n- [dns.googleapis.com](https://console.cloud.google.com/apis/library/dns.googleapis.com)\n- [redis.googleapis.com](https://console.cloud.google.com/apis/library/redis.googleapis.com)\n- [sqladmin.googleapis.com](https://console.cloud.google.com/apis/library/sqladmin.googleapis.com)\n\nGo to [this page](https://console.cloud.google.com/iam-admin/serviceaccounts) and create a Service Account with `Basic \u003e Owner` access.\nOnce created, also create a JSON key for newly created Service Account and save it in project folder.\n\nTo access the compute instance via SSH for running [Ansible](https://www.ansible.com/) scripts, go to [this page](https://console.cloud.google.com/compute/metadata?resourceTab=sshkeys) and add your public SSH key.\n\n## Deployment\n\nBegin with installing required [Terraform](https://www.terraform.io/) providers:\n\n```shell\n# For DigitalOcean\nterraform -chdir=terraform/digitalocean init\n\n# For Google Cloud Platform\nterraform -chdir=terraform/google-cloud init\n```\n\nOnce downloaded, deploy the resources using below commands:\n\n```shell\n# For DigitalOcean\nterraform -chdir=terraform/digitalocean apply \\\n   -var=\"do_token=\u003cdigitalocean_pat\u003e\" \\\n   -var=\"do_spaces_access_id=\u003cdigitalocean_spaces_key_id\u003e\" \\\n   -var=\"do_spaces_secret_key=\u003cdigitalocean_spaces_secret_key\u003e\"\n\n# For Google Cloud Platform\nterraform -chdir=terraform/google-cloud apply \\\n   -var=\"gcp_project=\u003cgcp_project_id\u003e\" \\\n   -var=\"gcp_credentials=$(pwd)/\u003cservice_account_key_file\u003e.json\"\n```\n\nYou can now set up required server software e.g., [PHP](https://www.php.net/) etc.\n\n```shell\nansible-playbook -i inventory.ini -u root ansible/setup.yml\n```\n\nYou may want to copy the public SSH key from the output of above command and add to your Git repository's Access Keys for read-only access.\n\nMake a copy of `sites/example.yml` and update your site specific values.\n\n```shell\n# copy example site config\ncp sites/example.yml sites/yoursite.yml\n\n# update values in sites/yoursite.yml\n```\n\nBefore deploying, if you point your configured domain in `sites/yoursite.yml` to your newly created server's IP address, the deployment scripts can also take care of installing a free [Let's Encrypt](https://letsencrypt.org/) SSL certificate automatically.\n\nFinally, deploy your site to newly created server:\n\n```shell\nansible-playbook -i inventory.ini -u root ansible/deploy.yml --extra-vars \"@sites/yoursite.yml\"\n```\n\nIn the future, if you ever wish to update your site with latest changes, you can run below command to automatically pull latest changes from your Git repository:\n\n```shell\nansible-playbook -i inventory.ini -u root ansible/redeploy.yml --extra-vars \"@sites/yoursite.yml\"\n```\n\nSend your love ♥️ by starring the repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaibhavpandeyvpz%2Flarable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvaibhavpandeyvpz%2Flarable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaibhavpandeyvpz%2Flarable/lists"}