{"id":14968580,"url":"https://github.com/geerlingguy/drupal-for-kubernetes","last_synced_at":"2025-04-09T22:17:02.951Z","repository":{"id":37587527,"uuid":"169930255","full_name":"geerlingguy/drupal-for-kubernetes","owner":"geerlingguy","description":"Drupal Example Site for Kubernetes","archived":false,"fork":false,"pushed_at":"2024-08-20T03:13:44.000Z","size":1264,"stargazers_count":169,"open_issues_count":7,"forks_count":54,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-09T22:16:57.324Z","etag":null,"topics":["container","docker","drupal","drupal-8","kubernetes"],"latest_commit_sha":null,"homepage":"http://www.pidramble.com","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/geerlingguy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","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},"funding":{"github":"geerlingguy","patreon":"geerlingguy"}},"created_at":"2019-02-10T00:54:05.000Z","updated_at":"2025-04-09T09:33:55.000Z","dependencies_parsed_at":"2024-08-20T06:27:26.214Z","dependency_job_id":"513a9a60-2a67-4aad-9bc5-9302cc246002","html_url":"https://github.com/geerlingguy/drupal-for-kubernetes","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geerlingguy%2Fdrupal-for-kubernetes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geerlingguy%2Fdrupal-for-kubernetes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geerlingguy%2Fdrupal-for-kubernetes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geerlingguy%2Fdrupal-for-kubernetes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geerlingguy","download_url":"https://codeload.github.com/geerlingguy/drupal-for-kubernetes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248119288,"owners_count":21050755,"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":["container","docker","drupal","drupal-8","kubernetes"],"created_at":"2024-09-24T13:40:10.385Z","updated_at":"2025-04-09T22:17:02.932Z","avatar_url":"https://github.com/geerlingguy.png","language":"PHP","funding_links":["https://github.com/sponsors/geerlingguy","https://patreon.com/geerlingguy"],"categories":[],"sub_categories":[],"readme":"# Drupal Example Site for Kubernetes\n\n[![CI](https://github.com/geerlingguy/drupal-for-kubernetes/workflows/CI/badge.svg?event=push)](https://github.com/geerlingguy/drupal-for-kubernetes/actions?query=workflow%3ACI)\n\nThe purpose of this Drupal codebase is to demonstrate a Drupal project and configuration set up for deployment into Kubernetes or an otherwise scalable containerized environment.\n\nThe project is used in tandem with the [Raspberry Pi Dramble](http://www.pidramble.com), an open source Kubernetes cluster tailor made for Drupal meant to run on a cluster of Raspberry Pis.\n\n## Documentation\n\nPlease read through the [project documentation](docs/README.md) for details about how this project was created, how it's structured for easy development and deployment into production container environments, and how you can create your _own_ Drupal project like it.\n\n## Local setup\n\n  1. Build the site's docker image from the Dockerfile:\n\n     ```\n     docker build -t geerlingguy/drupal-for-kubernetes .\n     ```\n\n  1. Run the local development environment:\n\n     ```\n     docker compose up -d\n     ```\n\n     (Wait for the environment to come up—you can monitor the logs with `docker compose logs -f`).\n\n  1. Once the container is running, install Dependencies and install Drupal. You can either access http://localhost/ and install using the UI, or install via Drush:\n\n     ```\n     # Install dependencies.\n     docker compose exec drupal composer install\n\n     # Install Drupal.\n     docker compose exec drupal bash -c 'drush site:install minimal --db-url=\"mysql://drupal:$DRUPAL_DATABASE_PASSWORD@$DRUPAL_DATABASE_HOST/drupal\" --site-name=\"Drupal Example Site for Kubernetes\" --existing-config -y'\n     ```\n\n  1. Visit http://localhost/ in your browser, and login as `admin` using the password Drush printed in the 'Installation complete' message.\n\n\u003e Note: If you have PHP and Composer installed on your host computer, you can run the `composer install` command there instead of through the Docker container for a bit of a speedup. Also note that if you're using Docker for Mac or Windows, it can take a couple minutes after `composer install` completes for all the filesystem changes to be present inside the Docker container!\n\n### Managing Configuration\n\nAfter making any configuration changes on the website, you can export the configuration to disk so it can be preserved in the codebase and deployed to the production site:\n\n    docker compose exec drupal bash -c 'drush config:export -y'\n\nFor more on the way this project's configuration changes are handled, and the general site development process, see the [project documentation](docs/README.md).\n\n### Exporting Content\n\nAfter making any content changes on the website, you can export the changes to disk so it is preserved in the codebase and installable on the production site:\n\n    docker compose exec drupal bash -c 'drush dcer --folder=modules/custom/pidramble_default_content/content/ node 1'\n\nFor more on the way this project's content changes are handled, see the [pidramble_default_content README](web/modules/custom/pidramble_default_content/README.md).\n\n### Upgrading Core (and Contrib)\n\n  1. Set up the site like normal, make sure it's installed.\n  2. Run `docker compose exec drupal composer update` (to update everything).\n  3. Run `docker compose exec drupal bash -c 'drush updb -y'`\n  4. Run `docker compose exec drupal bash -c 'drush config:export -y'`\n  5. Commit any changes and push them.\n\n## License\n\nMIT license.\n\n## Author Information\n\nCreated in 2019 by [Jeff Geerling](https://www.jeffgeerling.com/), author of [Ansible for DevOps](https://www.ansiblefordevops.com/) and [Ansible for Kubernetes](https://www.ansibleforkubernetes.com).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeerlingguy%2Fdrupal-for-kubernetes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeerlingguy%2Fdrupal-for-kubernetes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeerlingguy%2Fdrupal-for-kubernetes/lists"}