All Projects → druidfi → stonehenge

druidfi / stonehenge

Licence: MIT license
Multi-project local development environment & toolset on Docker

Programming Languages

HTML
75241 projects
Makefile
30231 projects
shell
77523 projects
Dockerfile
14818 projects
powershell
5483 projects
HCL
1544 projects

Projects that are alternatives of or similar to stonehenge

docker-lemp-stack
Simple Docker LEPM stack
Stars: ✭ 58 (+23.4%)
Mutual labels:  traefik, portainer
docker-compose-collection
These docker-compose allow you to deploy multiple services easily and quickly. You can use them with Portainer directly or via docker-compose commands.
Stars: ✭ 37 (-21.28%)
Mutual labels:  traefik, portainer
docker-box
A lightweight docker application platform for single servers.
Stars: ✭ 62 (+31.91%)
Mutual labels:  traefik, portainer
Saltbox
Ansible-based solution for rapidly deploying a Docker containerized cloud media server.
Stars: ✭ 117 (+148.94%)
Mutual labels:  traefik, portainer
nomad-box
Nomad Box - Simple Terraform-powered setup to Azure of clustered Consul, Nomad and Traefik Load Balancer that runs Docker/GoLang/Java workloads. NOTE: Only suitable in dev environments at the moment until I learn more Terraform, Consul, Nomad, Vault :P
Stars: ✭ 18 (-61.7%)
Mutual labels:  traefik
dotfiles
My dotfiles for Mac / Linux boxes and WSL
Stars: ✭ 35 (-25.53%)
Mutual labels:  wsl2
template-cluster-k3s
My highly opinionated template for deploying a single Kubernetes (k3s) cluster with Ansible and Terraform backed by Flux, SOPS, GitHub Actions, Renovate and more!
Stars: ✭ 861 (+1731.91%)
Mutual labels:  traefik
wsl-debian-boxes
Scripts to create multiple personalized WSL machines fast.
Stars: ✭ 22 (-53.19%)
Mutual labels:  wsl2
addon-portainer
Portainer - Home Assistant Community Add-ons
Stars: ✭ 83 (+76.6%)
Mutual labels:  portainer
cloudflared
Cloudflare Tunnel Instructions and Template for Unraid
Stars: ✭ 129 (+174.47%)
Mutual labels:  traefik
WSL2setup
Install WSL2 and handle dependencies
Stars: ✭ 55 (+17.02%)
Mutual labels:  wsl2
plugin-rewritebody
No description or website provided.
Stars: ✭ 33 (-29.79%)
Mutual labels:  traefik
jack
Run multiple apps on one server with Docker and Traefik.
Stars: ✭ 28 (-40.43%)
Mutual labels:  traefik
dotfiles
Dotbot managed dotfiles for a polyglot dev using WSL. Includes PowerShell stuff for Windows Installation
Stars: ✭ 14 (-70.21%)
Mutual labels:  wsl2
beyondauth
a traefik / nginx companion to create an identity aware proxy like beyondcorp
Stars: ✭ 26 (-44.68%)
Mutual labels:  traefik
idfx
Tool for flash/monitor ESP-IDF and ESP8266_SDK apps on the WSL2 ⚡
Stars: ✭ 71 (+51.06%)
Mutual labels:  wsl2
docker-wyze-bridge
RTMP/RTSP/LL-HLS bridge for Wyze cams in a docker container
Stars: ✭ 1,146 (+2338.3%)
Mutual labels:  portainer
k8s-deployer
Deploy Kubernetes service and store retrieved information in the Consul K/V store
Stars: ✭ 23 (-51.06%)
Mutual labels:  traefik
traefik-ondemand-service
Traefik ondemand service for the traefik ondemand plugin
Stars: ✭ 35 (-25.53%)
Mutual labels:  traefik
blogr-pve
Puppet provisioning of HA failover/cluster environment implemented in Proxmox Virtual Environment and Linux boxes.
Stars: ✭ 28 (-40.43%)
Mutual labels:  traefik

Stonehenge

Stonehenge logo

Local development environment toolset on Docker supporting multiple projects.

Tests

What does it do?

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.

Requirements for Stonehenge

  • Latest macOS, Ubuntu LTS or Windows 10/11 with WSL2 - Read more
  • Make
  • Docker 20.10+
  • Docker Compose
  • No other services listening port 80 or 443

Requirements for a project

  • docker-compose.yml file(s) - see examples how to use Stonehenge

Stonehenge building blocks

Setup

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.

Oneliner

sh -c "$(curl -fsSL https://raw.githubusercontent.com/druidfi/stonehenge/4.x/install.sh)"

Or manually with Git

git clone -b 4.x https://github.com/druidfi/stonehenge.git ~/stonehenge
cd ~/stonehenge
make up

Using custom domain

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.

Stop or shutdown Stonehenge

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 alias

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

SSH keys

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

Examples

Supported operating systems

  • macOS Monterey 12 (Intel and M1)
  • macOS Big Sur 11 (Intel and M1)
  • Ubuntu 22.04 LTS
  • Ubuntu 20.04 LTS
  • Windows 10/11 + WSL2 (Debian or Ubuntu LTS)

Also tested with at some point:

  • Arch Linux
  • Ubuntu 18.04 LTS

Fork and modify

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 to 127.0.0.1
  • IMPORTANT! Let us know! <3

Debug

Use following command to see what data is detected:

make debug

TODO

  • Support for Debian and RHEL
  • More examples
  • Shell detection and autocreate the alias

References

License

The files in this archive are released under the MIT license. You can find a copy of this license in LICENSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].