{"id":31235454,"url":"https://github.com/angelluzk/laravel-docker-pgsql-tailwind-boilerplate","last_synced_at":"2026-04-07T21:31:05.824Z","repository":{"id":315338669,"uuid":"1059050745","full_name":"angelluzk/laravel-docker-pgsql-tailwind-boilerplate","owner":"angelluzk","description":"Um boilerplate completo e didático para acelerar o desenvolvimento de aplicações web com um ambiente containerizado pronto para produção usando Laravel, Docker, PostgreSQL e TailwindCSS.","archived":false,"fork":false,"pushed_at":"2025-09-18T02:45:07.000Z","size":120,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-18T03:41:14.441Z","etag":null,"topics":["boilerplate","containerization","dev-environment","didactic-repository","docker","docker-compose","full-stack","laravel","laravel-12","learning-laravel","nginx","php","php-8","postgres","postgresql","starter-kit","tailwindcss","template","tutorial","web-development"],"latest_commit_sha":null,"homepage":"","language":"Blade","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/angelluzk.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-17T23:38:25.000Z","updated_at":"2025-09-18T02:45:10.000Z","dependencies_parsed_at":"2025-09-18T03:41:16.171Z","dependency_job_id":"7ddb52df-67c8-4789-b1d3-53803fe63c47","html_url":"https://github.com/angelluzk/laravel-docker-pgsql-tailwind-boilerplate","commit_stats":null,"previous_names":["angelluzk/laravel-docker-pgsql-tailwind-boilerplate"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/angelluzk/laravel-docker-pgsql-tailwind-boilerplate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angelluzk%2Flaravel-docker-pgsql-tailwind-boilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angelluzk%2Flaravel-docker-pgsql-tailwind-boilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angelluzk%2Flaravel-docker-pgsql-tailwind-boilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angelluzk%2Flaravel-docker-pgsql-tailwind-boilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/angelluzk","download_url":"https://codeload.github.com/angelluzk/laravel-docker-pgsql-tailwind-boilerplate/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angelluzk%2Flaravel-docker-pgsql-tailwind-boilerplate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31530640,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["boilerplate","containerization","dev-environment","didactic-repository","docker","docker-compose","full-stack","laravel","laravel-12","learning-laravel","nginx","php","php-8","postgres","postgresql","starter-kit","tailwindcss","template","tutorial","web-development"],"created_at":"2025-09-22T14:28:27.799Z","updated_at":"2026-04-07T21:31:05.811Z","avatar_url":"https://github.com/angelluzk.png","language":"Blade","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Boilerplate e Tutorial: Laravel, Docker, PostgreSQL \u0026 TailwindCSS\n\n![Status](https://img.shields.io/badge/status-conclu%C3%ADdo-brightgreen?style=for-the-badge)\n\n![Laravel](https://img.shields.io/badge/Laravel-12-FF2D20?style=for-the-badge\u0026logo=laravel)\n![PHP](https://img.shields.io/badge/PHP-8.2-777BB4?style=for-the-badge\u0026logo=php)\n![Docker](https://img.shields.io/badge/Docker-24-2496ED?style=for-the-badge\u0026logo=docker)\n![PostgreSQL](https://img.shields.io/badge/PostgreSQL-17-336791?style=for-the-badge\u0026logo=postgresql)\n![TailwindCSS](https://img.shields.io/badge/TailwindCSS-3-06B6D4?style=for-the-badge\u0026logo=tailwindcss)\n![Nginx](https://img.shields.io/badge/Nginx-1.25-009639?style=for-the-badge\u0026logo=nginx)\n\n## 📋 Índice\n\n- [🎯Sobre o Projeto](#-sobre-o-projeto)\n- [🚀Para que Serve esta Stack?](#-para-que-serve-esta-stack)\n- [🛠️Tecnologias Utilizadas](#-tecnologias-utilizadas)\n- [✅ Pré-requisitos na Sua Máquina](#-pré-requisitos-na-sua-máquina)\n- [🏁 Guia de Instalação Completo](#-guia-de-instalação-completo)\n- [🐳 Comandos Úteis do Dia a Dia](#-comandos-úteis-do-dia-a-dia)\n- [💡 Acessando o Banco de Dados](#-acessando-o-banco-de-dados)\n- [⚡ Otimização de Performance](#-otimização-de-performance)\n- [✍️ Autor e Motivação](#️-autor-e-motivação)\n- [📄 Licença](#-licença)\n- [🙏 Agradecimentos](#-agradecimentos)\n\n## 🎯 Sobre o Projeto\n\nEste repositório é um **template inicial (`boilerplate`) e um tutorial completo** para criar um ambiente de desenvolvimento robusto e moderno com a stack Laravel, Docker, PostgreSQL e TailwindCSS.\n\nO objetivo principal é ser um recurso didático e prático, projetado para que até mesmo um desenvolvedor iniciante possa configurar um ambiente de desenvolvimento profissional sem erros. Todos os passos foram testados e refinados para prevenir problemas comuns de configuração, como permissões de arquivos, dependências ausentes e inconsistências de ambiente.\n\nEste projeto serve tanto como um guia de aprendizado quanto como uma base sólida e confiável para iniciar novos projetos.\n\n## 🚀 Para que Serve esta Stack?\n\nEsta combinação de tecnologias é extremamente poderosa e adequada para uma vasta gama de projetos web, tais como:\n\n* **Sistemas SaaS (Software as a Service):** Aplicações complexas com painéis administrativos, gerenciamento de usuários e assinaturas.\n* **APIs RESTful ou GraphQL:** Para servir dados a aplicativos mobile ou front-ends modernos (React, Vue, etc.).\n* **Plataformas de E-commerce:** Lojas virtuais customizadas que exigem um banco de dados relacional robusto como o PostgreSQL.\n* **Sistemas de Gerenciamento de Conteúdo (CMS):** Portais, blogs e plataformas de cursos com áreas administrativas complexas.\n* **Ferramentas Internas para Empresas:** CRMs, ERPs e dashboards de BI para gerenciamento de operações.\n\n## 🛠️ Tecnologias Utilizadas\n\nEste ambiente utiliza as seguintes tecnologias, a maioria delas rodando de forma isolada dentro de containers Docker:\n\n* **[Laravel 12](https://laravel.com/):** O framework PHP que serve como base para a aplicação.\n* **[Docker](https://www.docker.com/):** Orquestra todos os nossos serviços em containers isolados.\n* **[PostgreSQL 17](https://www.postgresql.org/):** Nosso banco de dados relacional, rodando em seu próprio container.\n* **[TailwindCSS](https://tailwindcss.com/):** Framework CSS para o front-end, gerenciado pelo Node.js.\n* **[Nginx](https://www.nginx.com/):** Servidor web que recebe as requisições e as direciona para a aplicação PHP.\n* **[PHP 8.2](https://www.php.net/):** A linguagem de programação, rodando dentro do container da aplicação.\n* **[Node.js 20](https://nodejs.org/):** Usado para gerenciar e compilar os assets de front-end, também dentro do container da aplicação.\n* **[Composer](https://getcomposer.org/):** Gerenciador de dependências para o PHP, utilizado dentro do container.\n\n## ✅ Pré-requisitos na Sua Máquina\n\nA grande vantagem de usar Docker é que você **não precisa** instalar PHP, Node.js, PostgreSQL ou Composer na sua máquina! O Docker cuida de tudo isso para você. Os únicos pré-requisitos reais na sua máquina são:\n\n1.  **[Git](https://git-scm.com/downloads)**\n    * Necessário para clonar este repositório.\n\n2.  **[Docker Desktop](https://www.docker.com/products/docker-desktop/)**\n    * A ferramenta principal que gerencia tudo. Ela já inclui o **Docker Engine** e o **Docker Compose**.\n    * \u003e **IMPORTANTE:** Certifique-se de que o **Docker Desktop esteja em execução** antes de iniciar o processo de instalação.\n\n3.  **Um Editor de Código (Fortemente Recomendado)**\n    * Recomendamos o **[Visual Studio Code](https://code.visualstudio.com/)** com a extensão **[WSL](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl)** (Para uma melhor performance no Windows).\n\n---\n\n## 🏁 Guia de Instalação Completo\n\nSiga estes passos para ter o ambiente 100% funcional.\n\n#### 1. Clonar o Repositório\n\nPrimeiro, clone este repositório para a sua máquina local.\n\n```bash\ngit clone [https://github.com/seu-usuario/seu-repositorio.git](https://github.com/seu-usuario/seu-repositorio.git)\ncd seu-repositorio\n```\n\n#### 2. Configurar Variáveis de Ambiente\n\nO projeto precisa de um arquivo `.env` com as \"senhas\" e configurações da aplicação.\n\n```bash\n# Copie o arquivo de exemplo para criar o seu\ncp src/.env.example src/.env\n```\n\nO arquivo `src/.env` já vem pré-configurado para se conectar ao banco de dados Docker. Nenhuma alteração é necessária para o ambiente de desenvolvimento.\n\n#### 3. Subir os Containers Docker\n\nEste comando vai construir as imagens (se for a primeira vez) e iniciar todos os serviços (`app`, `nginx`, `db`).\n\n```bash\ndocker-compose up -d --build\n```\n\n#### 4. Instalar Dependências do Laravel (Composer)\n\nCom os containers no ar, vamos instalar as dependências do PHP com o Composer.\n\n```bash\ndocker-compose exec app composer install\n```\n\n#### 5. Gerar a Chave da Aplicação\n\nO Laravel precisa de uma chave de encriptação única para segurança.\n\n```bash\ndocker-compose exec app php artisan key:generate\n```\n\n#### 6. Ajustar Permissões (Passo Crucial)\n\nPara evitar erros de \"Permission Denied\", precisamos garantir que o Laravel possa escrever em suas pastas de `storage` e `cache`.\n\n```bash\ndocker-compose exec app chown -R www-data:www-data /var/www/storage\ndocker-compose exec app chown -R www-data:www-data /var/www/bootstrap/cache\n```\n\n#### 7. Rodar as Migrations\n\nEste comando cria as tabelas do banco de dados (como a de usuários).\n\n```bash\ndocker-compose exec app php artisan migrate\n```\n\n#### 8. Instalar o Laravel Breeze (TailwindCSS)\n\nPrimeiro, baixamos o pacote com o Composer. Depois, rodamos o comando de instalação.\n\n```bash\n# 1. Baixar o pacote\ndocker-compose exec app composer require laravel/breeze --dev\n\n# 2. Instalar (siga as instruções, pressionando Enter para os padrões)\ndocker-compose exec app php artisan breeze:install\n```\n\n#### 9. Instalar Dependências e Compilar o Front-end\n\nFinalmente, instalamos os pacotes NPM e compilamos os arquivos CSS e JS.\n\n```bash\n# 1. Instalar pacotes NPM\ndocker-compose exec app npm install\n\n# 2. Compilar assets para produção\ndocker-compose exec app npm run build\n```\n\n🎉 **PRONTO!** Sua aplicação está no ar. Acesse **[http://localhost:8000](http://localhost:8000)** no seu navegador.\n\n---\n\n## 🐳 Comandos Úteis do Dia a Dia\n\n* **Ligar o ambiente:** `docker-compose up -d`\n* **Desligar o ambiente:** `docker-compose down`\n* **Executar qualquer comando Artisan:** `docker-compose exec app php artisan \u003ccomando\u003e`\n* **Acessar o terminal do container da aplicação:** `docker-compose exec app bash`\n* **Rodar os testes:** `docker-compose exec app php artisan test`\n* **Ver os logs de um container em tempo real:** `docker-compose logs -f app`\n\n## 💡 Acessando o Banco de Dados\n\nSeu banco de dados PostgreSQL está acessível a partir da sua máquina (host) através da porta `5432`. Você pode usar uma ferramenta gráfica como **DBeaver**, **DataGrip** ou **pgAdmin** com as seguintes credenciais:\n\n* **Host:** `localhost`\n* **Porta:** `5432`\n* **Banco de Dados:** `laravel_db`\n* **Usuário:** `sail`\n* **Senha:** `password`\n\n## ⚡ Otimização de Performance\n\nÉ comum notar uma lentidão no carregamento das páginas ao usar Docker no Windows ou macOS devido à sincronização de arquivos. Para melhorar a performance, você pode:\n\n1.  **Usar os Caches do Laravel:** Reduz a leitura de arquivos a cada requisição.\n    * **Ligar:** `docker-compose exec app php artisan optimize`\n    * **Desligar:** `docker-compose exec app php artisan optimize:clear`\n\n2.  **Habilitar o OPcache do PHP:** Este repositório já inclui um arquivo de configuração (`.docker/php/custom.ini`) que habilita o OPcache, uma extensão do PHP que melhora drasticamente a performance guardando scripts pré-compilados na memória.\n\n\u003ch4 align=\"right\"\u003e\n\n[Voltar para o Índice](#-índice)\n\n\u003c/h4\u003e\n\n### ✍️ Autor e Motivação\n\n\u003cimg src=\"https://github.com/angelluzk.png\" width=\"100px;\" alt=\"Foto de Angel Luz\"/\u003e\n\n\u003e Desenvolvido com 💛 por **Angel Luz**.\n\nSe quiser conversar, colaborar ou oferecer uma oportunidade:\n\n📬 E-mail: [contatoangelluz@gmail.com](mailto:contatoangelluz@gmail.com)  \n🐙 GitHub: [@angelluzk](https://github.com/angelluzk)  \n💼 LinkedIn: [linkedin.com/in/angelitaluz](https://www.linkedin.com/in/angelitaluz/)  \n🗂️Website / Portfólio: [meu_portfolio/](https://angelluzk.github.io/meu_portfolio/)  \n\nA motivação para este projeto nasceu do desejo de solidificar o conhecimento nesta stack moderna e, ao mesmo tempo, criar um recurso didático que pudesse ajudar outros desenvolvedores. A jornada para construir este boilerplate envolveu a solução de diversos problemas reais de configuração, e o resultado é este guia, que busca ser o mais claro e à prova de falhas possível.\n\nEspero que este repositório seja tão útil para você em seus projetos quanto foi gratificante para mim construí-lo.\n\n## 📄 Licença\n\nEste projeto está sob a licença MIT.\n\n## 🙏 Agradecimentos\n\nEste projeto foi construído sobre o trabalho incrível de comunidades e indivíduos talentosos. Agradecimentos especiais a:\n\n* Taylor Otwell e todos os contribuidores do ecossistema Laravel.\n* À equipe do Docker por transformar o desenvolvimento de software.\n* À comunidade global do PostgreSQL.\n* À equipe do Tailwind Labs por revolucionar o CSS.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fangelluzk%2Flaravel-docker-pgsql-tailwind-boilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fangelluzk%2Flaravel-docker-pgsql-tailwind-boilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fangelluzk%2Flaravel-docker-pgsql-tailwind-boilerplate/lists"}