{"id":20807092,"url":"https://github.com/druidfi/stonehenge","last_synced_at":"2025-07-04T16:32:01.684Z","repository":{"id":40346919,"uuid":"135850921","full_name":"druidfi/stonehenge","owner":"druidfi","description":"Multi-project local development environment \u0026 toolset on Docker","archived":false,"fork":false,"pushed_at":"2025-06-21T10:04:03.000Z","size":955,"stargazers_count":71,"open_issues_count":5,"forks_count":7,"subscribers_count":9,"default_branch":"5.x","last_synced_at":"2025-06-21T11:19:11.529Z","etag":null,"topics":["asahi","colima","docker","docker-compose","mailpit","orbstack","traefik","wsl2"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/druidfi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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,"zenodo":null}},"created_at":"2018-06-02T20:43:24.000Z","updated_at":"2025-06-21T10:04:05.000Z","dependencies_parsed_at":"2023-12-22T06:28:36.833Z","dependency_job_id":"5d6372d9-732a-42b1-9279-2763d88a5549","html_url":"https://github.com/druidfi/stonehenge","commit_stats":{"total_commits":593,"total_committers":4,"mean_commits":148.25,"dds":0.04890387858347389,"last_synced_commit":"211c55a3a67e397ccb5591cde90147853b3e4def"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/druidfi/stonehenge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/druidfi%2Fstonehenge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/druidfi%2Fstonehenge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/druidfi%2Fstonehenge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/druidfi%2Fstonehenge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/druidfi","download_url":"https://codeload.github.com/druidfi/stonehenge/tar.gz/refs/heads/5.x","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/druidfi%2Fstonehenge/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263577236,"owners_count":23483129,"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":["asahi","colima","docker","docker-compose","mailpit","orbstack","traefik","wsl2"],"created_at":"2024-11-17T19:30:56.452Z","updated_at":"2025-07-04T16:32:01.661Z","avatar_url":"https://github.com/druidfi.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Stonehenge\n\n![Stonehenge logo](https://github.com/druidfi/stonehenge/raw/5.x/logos/stonehenge_logo_wide.svg)\n\nLocal development environment toolset on Docker supporting multiple projects.\n\n![Tests](https://github.com/druidfi/stonehenge/workflows/Tests/badge.svg)\n\n## What does it do?\n\nStonehenge aims to solve the basic problem for web developers: How to do development on local environment as easily as\npossible.\n\nStonehenge provides you a shared development environment for multiple projects. It will handle the routing and local\ndomains for your projects as well as SSL certificates for those domains out of the box.\n\n## Requirements for Stonehenge\n\n- Latest macOS, Ubuntu LTS or Windows 10/11 with WSL2 - [Read more](#supported-operating-systems)\n- Make\n- OrbStack 1.0.0+, Docker 20.10+ or Colima 0.5.0+\n- Docker Compose V2\n- No other services listening port 80 or 443\n\n## Requirements for a project\n\n- `compose.yaml` file(s) - see [examples](#examples) how to use Stonehenge\n\n## Stonehenge building blocks\n\n- [Traefik](https://traefik.io/traefik/) in [traefik.docker.so](https://traefik.docker.so) to handle all traffic to containers\n- [mkcert](https://github.com/FiloSottile/mkcert) generated wildcard SSL certificate\n- [Mailpit](https://github.com/axllent/mailpit) in [mailpit.docker.so](https://mailpit.docker.so) to catch emails\n\n## Setup\n\nNote: in some systems setup will prompt once for your password as it will setup DNS.\n\nIf on Windows, check these [general install instructions](https://github.com/druidfi/stonehenge/blob/5.x/WSL2.md) if you don't have WSL2 yet.\n\n### Oneliner\n\n```console\nsh -c \"$(curl -fsSL https://raw.githubusercontent.com/druidfi/stonehenge/5.x/install.sh)\"\n```\n\n### Or manually with Git\n\n```console\ngit clone -b 5.x https://github.com/druidfi/stonehenge.git ~/stonehenge\ncd ~/stonehenge\nmake up\n```\n\n### Using custom domain\n\nYou can also use custom domain instead of `docker.so`:\n\n```console\nmake up DOCKER_DOMAIN=docker.druid.fi\n```\n\nOr alternatively change DOCKER_DOMAIN value in `.env` file.\n\n## Stop or shutdown Stonehenge\n\nNote: Stonehenge will be started on boot by default if not stopped before.\n\nTo stop Stonehenge:\n\n```console\nmake stop\n```\n\nOr totally to stop and remove Stonehenge:\n\n```console\nmake down\n```\n\n## Add alias\n\nAdd this line to your shell (bash, zsh, fish):\n\n```console\nalias stonehenge='make -C ~/stonehenge'\n```\n\nNow you can run make targets from anywhere with the alias:\n\n```console\nstonehenge up\n```\n\n## SSH keys\n\nBy default, Stonehenge tries to add key from `~/.ssh/id_ed25519` and `~/.ssh/id_rsa`.\n\nYou can add additional SSH keys with:\n\n```console\nmake addkey KEY=/path/to/mykey\n```\n\n## Using custom ports\n\nYou can change `https`, `http` and `smtp` ports by using ENV variables:\n\n```console\nHTTPS_PORT=8443 HTTP_PORT=8080 SMTP_PORT=25 make up\n```\n\n## Examples\n\n- [API Platform](https://github.com/druidfi/api-platform/pull/4/files)\n- [Drupal 10](https://github.com/druidfi/stonehenge/tree/5.x/examples/drupal)\n- [FrankenPHP with Drupal](https://github.com/druidfi/frankenphp-drupal/pull/1/files)\n- [Ghost 5](https://github.com/druidfi/stonehenge/tree/5.x/examples/ghost)\n- [Hugo](https://github.com/druidfi/stonehenge/tree/5.x/examples/hugo)\n- [Laravel 11](https://github.com/druidfi/stonehenge/tree/5.x/examples/laravel)\n- [Symfony 7](https://github.com/druidfi/stonehenge/tree/5.x/examples/symfony)\n- [Wordpress](https://github.com/druidfi/stonehenge/tree/5.x/examples/wordpress)\n\n## Supported operating systems\n\n- macOS Sequoia 15 (M1/M2/M3/M4)\n- macOS Sonoma 14 (M1/M2/M3/M4)\n- macOS Ventura 13 (Intel and M1)\n- macOS Monterey 12 (Intel and M1)\n- Ubuntu 22.04 LTS\n- Ubuntu 20.04 LTS\n- [Windows 10/11 + WSL2](https://github.com/druidfi/stonehenge/blob/5.x/WSL2.md) (Debian or Ubuntu LTS)\n- [Fedora Asahi Remix 39](https://asahilinux.org/fedora/) (M1/M2/M3/M4)\n\n## Fork and modify\n\nTo brand the toolset for your organization:\n\n- Fork this repository\n- Modify `.env` file e.g. like follows:\n  - `COMPOSE_PROJECT_NAME=company`\n  - `DOCKER_DOMAIN=docker.company.com`\n  - `PREFIX=company`\n- Point your `docker.company.com` and `*.docker.company.com` to `127.0.0.1`\n- IMPORTANT! Let us know! \u003c3\n\n## Debug\n\nUse following command to see what data is detected:\n\n```console\nmake debug\n```\n\n## TODO\n\n- Support for Debian and RHEL\n- More examples\n- Shell detection and autocreate the alias\n\n## References\n\n- [https://github.com/axllent/mailpit](https://github.com/axllent/mailpit)\n- [https://github.com/FiloSottile/mkcert](https://github.com/FiloSottile/mkcert)\n- [https://traefik.io/](https://traefik.io/)\n\n## License\n\nThe files in this archive are released under the MIT license. You can find a copy of this license in [LICENSE](https://github.com/druidfi/stonehenge/raw/5.x/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdruidfi%2Fstonehenge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdruidfi%2Fstonehenge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdruidfi%2Fstonehenge/lists"}