As of 2.4.0, we added support for running and developing using docker compose. It should simplify the process of setting up and running the system and improve the developer experience.
git clone https://github.com/honeydipper/honeydipper.git
cd dev/macos # or linux
cat > .env <<EOF
REPO=<...>
BRANCH=<...>
EOF
docker-compose up
The container will try to use your SSH_AUTH_SOCK
to clone remote ssh repo if needed. Or you can use DIPPER_SSH_KEY
environment variable to pass a ssh private key directly into the container. To use a repo on local file system, use REPO_DIR
instead of REPO
. You can also specify DEBUG='*'
or DEBUG='daemon'
in the .env
file to increase the log verbosity.
- Setup a directory as your go work directory and add it to GOPATH. Assuming go 1.13.1 or up is installed, gvm is recommended to manage multiple versions of go. You may want to persist the GOPATH in your bash_profile
mkdir ~/go
export GOPATH=$GOPATH:$PWD/go
export PATH=$PATH:$GOPATH/bin
go get github.com/honeydipper/honeydipper
or
git clone https://github.com/honeydipper/honeydipper.git
- Build
go install -v ./...
- Run tests
make test
To run only the unit tests
make unit-tests
To run only the integration tests
make integration-tests
- Clean up mockgen generated files
make clean
- For pre-commit hooks
curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.15.0
brew install pre-commit
pre-commit install --install-hooks
Run below command to create your local config repo.
git init mytest
cd mytest
cat <<EOF > init.yaml
repos:
- repo: https://github.com/honeydipper/honeydipper-config-essentials.git
drivers:
redisqueue:
connection:
Addr: 127.0.0.1:6379
redispubsub:
connection:
Addr: 127.0.0.1:6379
rules:
- when:
driver: webhook
if_match:
url: /health
do: {}
EOF
git add init.yaml
git commit -m 'init' -a
Before you start your Honeydipper daemon, you need:
- Have a redis server running locally
- If you want to use encrypted configuration, make sure your are authenticated with google and having "Cloud KMS Crypto Encryptor/Decryptor" role. See encryption guide for detail
REPO=/path/to/mytest LOCALREDIS=1 honeydipper
When you use LOCALREDIS=1
environment vairable, Honeydipper daemon will ignore the connection settings from your repo and use localhost instead.
You can also set envrionment DEBUG="*"
to enable verbose debug logging for all parts of daemon and drivers.
Once the daemon is running, you can access the healthcheck url like below
curl -D- http://127.0.0.1:8080/health
You should see a 200
response code. There is no payload in the response.
See configuration guide for detail on how to configure your system.
Since 2.4.0, there is an easier way to start the daemon using Makefile
. Simply put all the needed environment variable in a .env
file at the top level directory, then run make run
.