Local development environment toolset on Docker supporting multiple projects.
Stonehenge aims to solve the basic problem for web developers: How to do development on local environment as easily as possible.
Stonehenge provides you a shared development environment for multiple projects. It will handle the routing and local domains for your projects as well as SSL certificates for those domains out of the box.
- Latest macOS, Ubuntu LTS or Windows 10/11 with WSL2 - Read more
- Make
- OrbStack 1.0.0+, Docker 20.10+ or Colima 0.5.0+
- Docker Compose V2
- No other services listening port 80 or 443
compose.yaml
file(s) - see examples how to use Stonehenge
- Traefik in traefik.docker.so to handle all traffic to containers
- mkcert generated wildcard SSL certificate
- Mailpit in mailpit.docker.so to catch emails
Note: in some systems setup will prompt once for your password as it will setup DNS.
If on Windows, check these general install instructions if you don't have WSL2 yet.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/druidfi/stonehenge/5.x/install.sh)"
git clone -b 5.x https://github.com/druidfi/stonehenge.git ~/stonehenge
cd ~/stonehenge
make up
You can also use custom domain instead of docker.so
:
make up DOCKER_DOMAIN=docker.druid.fi
Or alternatively change DOCKER_DOMAIN value in .env
file.
Note: Stonehenge will be started on boot by default if not stopped before.
To stop Stonehenge:
make stop
Or totally to stop and remove Stonehenge:
make down
Add this line to your shell (bash, zsh, fish):
alias stonehenge='make -C ~/stonehenge'
Now you can run make targets from anywhere with the alias:
stonehenge up
By default, Stonehenge tries to add key from ~/.ssh/id_ed25519
and ~/.ssh/id_rsa
.
You can add additional SSH keys with:
make addkey KEY=/path/to/mykey
You can change https
, http
and smtp
ports by using ENV variables:
HTTPS_PORT=8443 HTTP_PORT=8080 SMTP_PORT=25 make up
- macOS Sequoia 15 Beta (M1/M2/M3/M4)
- macOS Sonoma 14 (M1/M2/M3/M4)
- macOS Ventura 13 (Intel and M1)
- macOS Monterey 12 (Intel and M1)
- Ubuntu 22.04 LTS
- Ubuntu 20.04 LTS
- Windows 10/11 + WSL2 (Debian or Ubuntu LTS)
- Fedora Asahi Remix 39 (M1/M2/M3/M4)
To brand the toolset for your organization:
- Fork this repository
- Modify
.env
file e.g. like follows:COMPOSE_PROJECT_NAME=company
DOCKER_DOMAIN=docker.company.com
PREFIX=company
- Point your
docker.company.com
and*.docker.company.com
to127.0.0.1
- IMPORTANT! Let us know! <3
Use following command to see what data is detected:
make debug
- Support for Debian and RHEL
- More examples
- Shell detection and autocreate the alias
- https://github.com/axllent/mailpit
- https://github.com/FiloSottile/mkcert
- https://traefik.io/
The files in this archive are released under the MIT license. You can find a copy of this license in LICENSE.