diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 67bf20a697a5b88415e370516d8be36ee5411ddf..59c4b2abaa0f85f4a21ce2c17286863acee8f435 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,15 +1,14 @@
+image: registry.hedenstroem.com/gitlab/gitlab-builder-erlang:19.1
+
+variables:
+  IMAGE_NAME: "${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}"
+
 cache:
   paths:
     - .rebar3
 
 before_script:
-  - export GOROOT=${GO_HOME}
-  - export GOPATH=${CI_PROJECT_DIR}/_build/go
-  - export PATH=${ERL_HOME}/bin:${GOPATH}/bin:${GOROOT}/bin:$PATH
-  - export DOCKER_HOST="tcp://127.0.0.1:2375"
-  - mkdir -p ${GOPATH}
-  - socat tcp-listen:2375,reuseaddr,bind=127.0.0.1,fork unix-connect:/var/run/docker.sock &
-  - sleep 2
+  - export PATH=${ERL_HOME}/bin:$PATH
 
 stages:
   - test
@@ -20,10 +19,7 @@ stages:
 test:
   stage: test
   script:
-    - rebar3 update
-    - git pull origin master
-    - docker pull hedenstroem/consul:latest
-    - FORMAT="compact" ERL_AFLAGS="-args_file config/test-vm.args -config config/test-sys.config" rebar3 as test do eunit --cover --application=consul_proxy --dir=apps/consul_proxy/test, cover --verbose
+    - rebar3 test
     - coverage.escript _build/test/cover/eunit.coverdata
 
 build:
@@ -33,48 +29,31 @@ build:
     - production
   script:
     - rebar3 edoc
-    - rebar3 as production do tar
-    - relinfo.escript -vsn _build/production/rel/consul_proxy/releases/RELEASES > _build/VERSION
+    - rebar3 as prod do tar
+    - relinfo.escript -vsn _build/prod/rel/${CI_PROJECT_NAME}/releases/RELEASES > _build/VERSION
   artifacts:
     paths:
       - _build/edoc
+      - _build/prod/rel/${CI_PROJECT_NAME}/Dockerfile
+      - _build/prod/rel/${CI_PROJECT_NAME}/${CI_PROJECT_NAME}-*.tar.gz
       - _build/VERSION
-      - _build/production/rel/consul_proxy/consul_proxy-*.tar.gz
-
-scripts:
-  stage: build
-  only:
-    - master
-    - production
-  script:
-    - make genpasswd
-    - make consul-backup
-  artifacts:
-    paths:
-      - _build/consul-backup
-      - _build/genpasswd
 
-aws_s3:
+upload to aws:
   stage: deploy
   only:
     - production
   script:
-    - aws s3 cp _build/consul-backup s3://s3.erlang.ninja/consul_proxy/extras/consul-backup
-    - aws s3 cp _build/genpasswd s3://s3.erlang.ninja/consul_proxy/extras/genpasswd
-    - aws s3 cp _build/edoc s3://s3.erlang.ninja/consul_proxy/$(cat _build/VERSION)/ --recursive
-    - aws s3 cp _build/production/rel/consul_proxy/consul_proxy-$(cat _build/VERSION).tar.gz s3://s3.erlang.ninja/consul_proxy/
+    - aws s3 cp _build/edoc s3://s3.erlang.ninja/${CI_PROJECT_NAME}/$(cat _build/VERSION)/ --recursive
+    - aws s3 cp _build/prod/rel/${CI_PROJECT_NAME}/${CI_PROJECT_NAME}-$(cat _build/VERSION).tar.gz s3://s3.erlang.ninja/${CI_PROJECT_NAME}/
 
 docker:
   stage: deploy
   only:
     - production
   script:
-    - export REL_VSN=$(cat _build/VERSION)
-    - envsubst '$REL_VSN' < apps/consul_proxy/priv/Dockerfile > _build/production/Dockerfile
-    - docker build -t ${DOCKER_HUB_REPO} -f _build/production/Dockerfile _build/production
-    - docker tag ${DOCKER_HUB_REPO} ${DOCKER_HUB_REPO}:${REL_VSN}
-    - docker login --username=${DOCKER_HUB_USERNAME} --password=${DOCKER_HUB_PASSWORD}
-    - docker push ${DOCKER_HUB_REPO}
+    - docker build -t ${IMAGE_NAME}:$(cat _build/VERSION) _build/prod/rel/${CI_PROJECT_NAME}
+    - docker login -u gitlab-ci-token -p ${CI_BUILD_TOKEN} ${CI_REGISTRY}
+    - docker push ${IMAGE_NAME}:$(cat _build/VERSION)
 
 trigger:
   stage: trigger
diff --git a/test/.gitignore b/test/.gitignore
deleted file mode 100644
index cdec5c9133b711fbc9b649f2f12f52ec2b4e16f4..0000000000000000000000000000000000000000
--- a/test/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-acme
diff --git a/test/consul/consul.json b/test/consul/consul.json
deleted file mode 100644
index e2a462f90ae968e5db5c2e9258f9a1aa1ee2a545..0000000000000000000000000000000000000000
--- a/test/consul/consul.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "data_dir": "/data",
-  "ui_dir": "/ui",
-  "client_addr": "0.0.0.0",
-  "recursors": ["8.8.8.8", "8.8.4.4"],
-  "disable_update_check": true,
-  "server" : true,
-  "rejoin_after_leave" :  true,
-  "bootstrap_expect" : 1
-}
diff --git a/test/defaults.consul b/test/defaults.consul
deleted file mode 100644
index a6d317f8a8806afa46420de2f3dab9ab75b77e26..0000000000000000000000000000000000000000
--- a/test/defaults.consul
+++ /dev/null
@@ -1,11 +0,0 @@
-consul_proxy/domains/test.service.docker:ewogICJTZXJ2aWNlTmFtZSIgOiAidGVzdCIKfQ==
-consul_proxy/domains/consul.service.docker:ewogICJTZXJ2aWNlTmFtZSIgOiAiY29uc3VsIgp9
-consul_proxy/domains/rewrite-example:ewogICJTZXJ2aWNlTmFtZSIgOiAiJDxzZXJ2aWNlPiIsCiAgIkFsaWFzZXMiIDogWwogICAgIig/PHNlcnZpY2U+LiopLXJld3JpdGVbLl1zZXJ2aWNlWy5dZG9ja2VyIgogIF0sCiAgIlJld3JpdGUiIDogWwogICAgWyJeL2FwaS8oLiopJCIsIi9pbmZvLnBocD9hcGk9JDEiXQogIF0KfQ==
-consul_proxy/scripts/resolver-example.erl:UmVxdWVzdCA9IHByb3BsaXN0czpnZXRfdmFsdWUocmVxdWVzdCwgUHJvcHMsIFtdKSwKTWV0YSA9IHByb3BsaXN0czpnZXRfdmFsdWUobWV0YSwgUmVxdWVzdCwgW10pLApDYXB0dXJlID0gcHJvcGxpc3RzOmdldF92YWx1ZShob3N0X2NhcHR1cmUsIE1ldGEsIFtdKSwKcHJvcGxpc3RzOmdldF92YWx1ZSg8PCJzZXJ2aWNlIj4+LCBDYXB0dXJlKS4=
-consul_proxy/watchers/nodes:WwogICAgImh0dHA6Ly9sb2dzdGFzaDo4MDgwL3dhdGNoL25vZGVzIgpd
-consul_proxy/watchers/services:WwogICAgImh0dHA6Ly9sb2dzdGFzaDo4MDgwL3dhdGNoL3NlcnZpY2VzIgpd
-consul_proxy/watchers/kv:WwogICAgImh0dHA6Ly9sb2dzdGFzaDo4MDgwL3dhdGNoL2t2Igpd
-consul_proxy/hijackers:WwogIHsKICAgICJ1c2VybmFtZSIgOiAiaGlqYWNrZXIiLAogICAgInBhc3N3b3JkIiA6ICIwdEhWdFNhOThrSGkyZStkVHVWdHo3S3lYWTgzVys3cGZ6eEZYd2VKWUtualcxOXRSeHBVbFFSV1lYbGI4V21YIiwKICAgICJkb21haW5zIiA6IFsKICAgICAgIi4qIgogICAgXQogIH0KXQ==
-consul_proxy/domains/resolver-example-erl:ewogICJTZXJ2aWNlUmVzb2x2ZXIiIDogInJlc29sdmVyLWV4YW1wbGUuZXJsIiwKICAiQWxpYXNlcyIgOiBbCiAgICAiKD88c2VydmljZT4uKiktcmVzb2x2ZXItZXJsWy5dc2VydmljZVsuXWRvY2tlciIKICBdCn0=
-consul_proxy/domains/resolver-example-lua:ewogICJTZXJ2aWNlUmVzb2x2ZXIiIDogInJlc29sdmVyLWV4YW1wbGUubHVhIiwKICAiQWxpYXNlcyIgOiBbCiAgICAiKD88c2VydmljZT4uKiktcmVzb2x2ZXItbHVhWy5dc2VydmljZVsuXWRvY2tlciIKICBdCn0=
-consul_proxy/scripts/resolver-example.lua:cmV0dXJuIHByb3BzLnJlcXVlc3QubWV0YS5ob3N0X2NhcHR1cmUuc2VydmljZTs=
diff --git a/test/docker-compose.yml b/test/docker-compose.yml
deleted file mode 100644
index c3278db6dd9a3bd7ed3b0d49a2c712988ab67c8e..0000000000000000000000000000000000000000
--- a/test/docker-compose.yml
+++ /dev/null
@@ -1,126 +0,0 @@
-version: '2'
-
-services:
-
-  consul:
-    image: hedenstroem/consul
-    command: agent -config-dir /config
-    environment:
-      - SERVICE_8300_IGNORE=true
-      - SERVICE_8301_IGNORE=true
-      - SERVICE_8302_IGNORE=true
-      - SERVICE_8400_IGNORE=true
-      - SERVICE_8500_NAME=consul
-      - SERVICE_8600_NAME=consul-dns
-    ports:
-      - "8500:8500"
-      - "8600:8600/udp"
-      - "8600:8600/tcp"
-    volumes:
-      - ./consul:/config
-
-  consul_proxy:
-    image: registry.hedenstroem.com/erlang-ninja/consul_proxy
-    links:
-      - consul
-      - logstash
-    environment:
-      - CONSUL_PROXY_LOGLEVEL=debug
-      - CONSUL_PROXY_HTTP_PORT=80
-      - CONSUL_PROXY_CONSUL_URLS=http://consul:8500
-      - CONSUL_PROXY_LOGSERVICE=logstash-udp
-      - CONSUL_PROXY_HIJACK_CERT=/var/lib/hitch/certs/service.docker.pem
-      - SERVICE_IGNORE=true
-    ports:
-      - "80:80"
-      - "8081:8081"
-      - "8082:8082"
-      - "8083:8083"
-    volumes:
-      - ./hitch:/var/lib/hitch
-
-  registrator:
-    image: hedenstroem/registrator
-    command: -internal -ttl 600 -ttl-refresh 300 -resync 600 -cleanup consul://consul:8500/dc1
-    links:
-      - consul
-    environment:
-      - GODEBUG=netdns=cgo
-      - SERVICE_IGNORE=true
-    volumes:
-      - /var/run/docker.sock:/tmp/docker.sock
-
-  hitch:
-    image: hedenstroem/hitch
-    links:
-      - consul_proxy
-    environment:
-      - SERVICE_402_NAME=acme-challenge
-      - SERVICE_403_IGNORE=true
-      - SERVICE_443_NAME=hitch
-      - MODE=staging
-    ports:
-      - "443:443"
-    volumes:
-      - ./hitch:/var/lib/hitch
-      - ./acme:/var/lib/acme
-
-  elasticsearch:
-    image: elasticsearch:2
-    command: elasticsearch -Des.network.host=0.0.0.0
-    environment:
-      - SERVICE_9200_NAME=elasticsearch
-      - SERVICE_9300_IGNORE=true
-
-  logstash:
-    image: logstash:2
-    command: -f /opt/logstash/config/logstash.conf
-    environment:
-      - SERVICE_5000_NAME=logstash-udp
-      - SERVICE_8080_NAME=logstash-http
-    links:
-      - elasticsearch
-    ports:
-      - "5000/udp"
-      - "8080"
-    volumes:
-      - ./logstash:/opt/logstash/config
-
-  kibana:
-    image: hedenstroem/kibana
-    environment:
-      - ELASTICSEARCH_URL=http://elasticsearch:9200
-    ports:
-      - "5601:5601"
-    links:
-      - elasticsearch
-
-  test-slow:
-    image: hedenstroem/php5
-    environment:
-      - SERVICE_NAME=test
-      - SERVICE_TAGS=php5,slow
-      - SIMULATED_DELAY=100
-      - SIMULATED_FAILURE_RATE=20
-    volumes:
-      - ./www:/var/www
-
-  test-medium:
-    image: hedenstroem/php5
-    environment:
-      - SERVICE_NAME=test
-      - SERVICE_TAGS=php5,medium
-      - SIMULATED_DELAY=10
-      - SIMULATED_FAILURE_RATE=10
-    volumes:
-      - ./www:/var/www
-
-  test-fast:
-    image: hedenstroem/php5
-    environment:
-      - SERVICE_NAME=test
-      - SERVICE_TAGS=php5,fast
-      - SIMULATED_DELAY=1
-      - SIMULATED_FAILURE_RATE=1
-    volumes:
-      - ./www:/var/www
diff --git a/test/hitch/certs/localhost.pem b/test/hitch/certs/localhost.pem
deleted file mode 100644
index aa5050e33006b93fcf18344c6f7b21f826990566..0000000000000000000000000000000000000000
--- a/test/hitch/certs/localhost.pem
+++ /dev/null
@@ -1,57 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDuDCCAqACCQD34vO1za/WdTANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMC
-U0UxEjAQBgNVBAgTCVN0b2NraG9sbTESMBAGA1UEBxMJU3RvY2tob2xtMR4wHAYD
-VQQKExVFcmlrJ3MgU2VsZi1TaWduZWQgQ0ExDDAKBgNVBAsTA0RldjEZMBcGA1UE
-AxQQRXJpayBIZWRlbnN0csO2bTEjMCEGCSqGSIb3DQEJARYUZXJpa0BoZWRlbnN0
-cm9lbS5jb20wHhcNMTYwMjA1MjEzNzQ1WhcNMjYwMjAyMjEzNzQ1WjCBlzEYMBYG
-A1UEChQPSGVkZW5zdHLDtm0uY29tMQwwCgYDVQQLEwNEZXYxJDAiBgkqhkiG9w0B
-CQEWFWFkbWluQGhlZGVuc3Ryb2VtLmNvbTESMBAGA1UEBxMJU3RvY2tob2xtMRIw
-EAYDVQQIEwlTdG9ja2hvbG0xCzAJBgNVBAYTAlNFMRIwEAYDVQQDEwlsb2NhbGhv
-c3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyA3S6aIQ3e5GOa4kX
-SuAZRGLhHhEPy9IDxav39qunBuvcLBdhpKJvWV2FbpaSl+3YIAvOeFQH1vVcfATJ
-pub0Jvjq9XdFAopmUQ4SWzbyCeZWULw/L2u14iz+Tpi6S2vn34ehFm6o5SlC1JhI
-CZYAAkfo+AcawESF256+8ubfM5rIPmXg9ROs3SWFlEYR0++3raG6gNt9565DWkln
-GyLNQuuKyQIBgC9adc7MNMxMTe/hKLVje4yDIQX4/S9d1Abavw3xGSy4GKgccAeO
-CA3HTCGmo4PAbgQaZJfANMu8HP+8rlblDf8BUcdDCYwTFIBhyLQC4zTtC31YnRb4
-fbPNAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAJALsYVe5TnBg+q5hAUyxjFcTfam
-dMFShOu6EWSrxPu1bkvwQBrmd0dFEtQEY/UDmm96jz0uzMplJrR//4zwVHI8IyfF
-i9iGyd2vvaBMv1xW8p6/ydPyVjHcFHcaB6/IZuHSWeQoAAWghim/vzDemWMCtC9l
-zvTQT+/4h+CUAL+oUAyVkIqCGZUDOaTfzGyrzaDYAeHIPa+OmZcNqfv5b8HpHDwM
-jYXdweOfFPoo7PvQKbTvVPr77SFAIxT3hsfk1k64ezqLTL1aJzr90grrG+Ejtg4w
-m1GAiisBsaWMgxWppAdhXO2iPGIltq9aDCSkDvcIeOwr9NiAYH0R6pFElSg=
------END CERTIFICATE-----
------BEGIN RSA PRIVATE KEY-----
-MIIEowIBAAKCAQEAsgN0umiEN3uRjmuJF0rgGURi4R4RD8vSA8Wr9/arpwbr3CwX
-YaSib1ldhW6Wkpft2CALznhUB9b1XHwEyabm9Cb46vV3RQKKZlEOEls28gnmVlC8
-Py9rteIs/k6Yuktr59+HoRZuqOUpQtSYSAmWAAJH6PgHGsBEhduevvLm3zOayD5l
-4PUTrN0lhZRGEdPvt62huoDbfeeuQ1pJZxsizULriskCAYAvWnXOzDTMTE3v4Si1
-Y3uMgyEF+P0vXdQG2r8N8RksuBioHHAHjggNx0whpqODwG4EGmSXwDTLvBz/vK5W
-5Q3/AVHHQwmMExSAYci0AuM07Qt9WJ0W+H2zzQIDAQABAoIBADDS/9YMyo7JJpAQ
-cIZh8/saJaCm9XkGpzB/q/4TutrR7Cj0MumGFUNDGIJ7ZXMJlqObjoFvwWRxEdTu
-8wU38MpwUf9nmfHkk38ipiBkwjo6euGbvTX7VKiLQ1nwxrT58LulNHb7Rxit2dZJ
-pwbDElAoT/7W4GP27hRkuzKWPrpi4JPBWPY13CO34hyqYzderPB/FZyen2mR0O1d
-bSSnqOeFLd8ku33dW0bXiqS8Iul2F3kSUGGsT9gBzI1d2Zs8EqpmOX7MfoIbsTqE
-eWfR5gIXRMPmdqUhdDnSdmM74ztoCX7PM7lbO6HBliOFPmv0O/Usdhpr3y3pmATr
-UVcViqECgYEA5n0wMv5GPoR87Oi8UhSZw4e7fBPrwxmqxSPtscfk3EnOWoEOc+aU
-c3tGNoOsdpYJtD+zasAY2ENVoHujBy1WTobVy1uwUn1yrbHR925XsJLhmkKHYw/s
-zTnhzYw+Mwv8JKwpw0l4NahAPJbC6Pn2gg+dppl0mhPDueTvUhTIavUCgYEAxbdl
-PFWPvMRljNFcZ8e1E6GySM3fbICIled2WuSSyJVI/qPN6kj+8b8Z7QTxciFouM0k
-NJPaFmLkU4OOU2mmGPef4wT7SMuhC7BkqzcKnjvf/7vLbLu53S1LQd5dasSBO5Wy
-+9KhjPKfaGQT6Gzkvemu0MG/P7BS1JsuadWqznkCgYEAwnqrKrvGhYXA6x1NmWxs
-ecGTfpRIgCyuHP292B40i3NzPIZcrYrHg9FmYyUjZkQfGAoP12kTDZdzLqBj5PBq
-PIQk7RwGYPQcyVabNc3TC9hDp6evGPUc9+V5E7jb2rKoJEFoU7EwTwYSfY0wFOil
-CQUoHqSo8EDxC2+SR43ltekCgYBGqTqXC4UpU49vektqE6eVco6DEoCtCGrIGEbm
-SRZkdWX3C5fGCXyD7WZYnRGlVmdU1IwB9m1U3tb3OecdzH4+IhGUUu1zoMLXqJzx
-y+QRlRiDDxyuqZDNiSiCS/Ra+gutvdyPv0FZXES4TDwJLxG5BdEibnvpSRzxOtyl
-mmVHEQKBgES8SCwlAimiUlPHKxBaK0iMiuxZC8pMqPQE+k0h5JExBNfLfQwtoks8
-LcsGsXzpkCYhyYprTEmTxhtiRXAsgU83Fb7XUMEruFPdADC7YXPj06ZS50V9Ec/K
-l9E98WWzbSe55My7zxT8hvqvmUY5DOkbllcgu0r61ATYXWpLd6ow
------END RSA PRIVATE KEY-----
------BEGIN DH PARAMETERS-----
-MIIBCAKCAQEAwjbh/sVLbivqHsPaDjbMSBijjMdV6e6RnS7KHzumCXJulgM0NV/g
-SEvbCJtqAfAnxgq8THO6hk0JY17IRX2td5y9deCbL//SR7jZRr9hg/QkIxorxQdF
-rQCQjfOXz98n9IlbkGNYCORErNFGtgyu4FEFFPbSMcwTuLChfFUEsxTgy2H7kF1p
-9R6mGrHyFMIOcQn4HGERmJM2Z13slYbE8+jcy9K2opEFzDB5JqOVwideZKngPuGo
-JMI5t36h0ac8E7OBmcdOR55Nid5DjxvwUtBus/q3jqNVb/XVKmzJC51JqAC8NeAO
-Zdt92vY64PPk/nzsUXClkCxPjLYwMumiCwIBAg==
------END DH PARAMETERS-----
diff --git a/test/hitch/certs/service.dc1.consul.pem b/test/hitch/certs/service.dc1.consul.pem
deleted file mode 100644
index 1952856fafacbaedb01f0bc93093f5eaa427a7d6..0000000000000000000000000000000000000000
--- a/test/hitch/certs/service.dc1.consul.pem
+++ /dev/null
@@ -1,58 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDwzCCAqsCCQD34vO1za/WdjANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMC
-U0UxEjAQBgNVBAgTCVN0b2NraG9sbTESMBAGA1UEBxMJU3RvY2tob2xtMR4wHAYD
-VQQKExVFcmlrJ3MgU2VsZi1TaWduZWQgQ0ExDDAKBgNVBAsTA0RldjEZMBcGA1UE
-AxQQRXJpayBIZWRlbnN0csO2bTEjMCEGCSqGSIb3DQEJARYUZXJpa0BoZWRlbnN0
-cm9lbS5jb20wHhcNMTYwMjI0MTIxODE3WhcNMjYwMjIxMTIxODE3WjCBojEYMBYG
-A1UEChQPSGVkZW5zdHLDtm0uY29tMQwwCgYDVQQLEwNEZXYxJDAiBgkqhkiG9w0B
-CQEWFWFkbWluQGhlZGVuc3Ryb2VtLmNvbTESMBAGA1UEBxMJU3RvY2tob2xtMRIw
-EAYDVQQIEwlTdG9ja2hvbG0xCzAJBgNVBAYTAlNFMR0wGwYDVQQDFBQqLnNlcnZp
-Y2UuZGMxLmNvbnN1bDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN9p
-2mHDSxhE9s03/6+TR21bO/nnY4V8aQGWyAMmgY1tLO6r0qEjsF7fGOnOddt0vBl0
-k2rOJ1ksmvIKTkhwlVVPrdjySoN5NV9P5XhCS37vjPaG1sjl3Uzfj/ItLjon6cJh
-nhVENIURsLEk0rRS1kflU4e3OgkzSFW3PMagnDM10dx1HrHxrmxxnkR/gxESsW4K
-0OW/9OLIRfpt4QMs5usD8lXyAEExwxaD6WG49Hk6ywtMZx9hJTahKBNc6NQyEXIb
-BbG/pzKvoBO7SAnvw/VqJy6QrGKkY6OPwdrP0MXGG43zhfn8OeEjM9viXpmcb1l7
-Y0/UGhXDgqQA9ymizr8CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAkJTdFD9aStoP
-GOc7R0h1k13Gu0tuNdX+ktEQQgBreNvwnseSk9Zjl4UZ0i5fw5+J/4vj275tZ9Mu
-B0FwbD82PEmlQcGLDi1bQ5ncq6NbixVETeX+iA16HdUpA1iNJt28r0Z0iNd1CLqE
-ckFMy4CsrLmwkRh0BxHovYHfHckjtcpL4Jz8DB97sB9KyZgvNswll6habP3nCiFc
-w7x6XahrKdpwBVn36UdOk46Luku8UhDBhun9rNkAU57tFssBlT67yshCw0IrJrBn
-Sne7zdcFdsIc8k9O/TQyWCd9DxHYY/5o0oXus6QWM2n2RLw/f85d06nzrm/67ImR
-SqRd8MBXfQ==
------END CERTIFICATE-----
------BEGIN RSA PRIVATE KEY-----
-MIIEogIBAAKCAQEA32naYcNLGET2zTf/r5NHbVs7+edjhXxpAZbIAyaBjW0s7qvS
-oSOwXt8Y6c5123S8GXSTas4nWSya8gpOSHCVVU+t2PJKg3k1X0/leEJLfu+M9obW
-yOXdTN+P8i0uOifpwmGeFUQ0hRGwsSTStFLWR+VTh7c6CTNIVbc8xqCcMzXR3HUe
-sfGubHGeRH+DERKxbgrQ5b/04shF+m3hAyzm6wPyVfIAQTHDFoPpYbj0eTrLC0xn
-H2ElNqEoE1zo1DIRchsFsb+nMq+gE7tICe/D9WonLpCsYqRjo4/B2s/QxcYbjfOF
-+fw54SMz2+JemZxvWXtjT9QaFcOCpAD3KaLOvwIDAQABAoIBAApJy5646ZpigqMM
-sx+Yvq9QhkCJ4VFiW0uRcACFI24p2unay8ZT6GlWCMWrlk3W4Fqjva4rdDBtF22R
-/+ziEl5tXuogrkHDsSuEeGLDWsqrqWgo6Xcy7q/9k5lpbzmKYP9sk2UTUP/XwrVF
-ptZbAjcpXmFflLKbw/b+izPybX8GI2S+fixjzHr1id2RVdFh5F3D3ooS9kbKJWQc
-VWMqfxpd0l67NA1Yn3IH9xFkkRzHDE5+prGiuTXZgPq9Dof5iNB69GSvtNsYSEjK
-NlFyXUnhwRhVB2RRvA1HhdnEf5k62EC+AteauVX1zXAxM2jHk5kezenqg5ks/DHp
-NPRf34ECgYEA/iPBDFz3EVMd/lTI4U9dEwT/ng2aprfYta2mbYozy5TmfHTeJ0fh
-/DkHlwfdhUgUYsTpi+UVqCR/aeyqSVqMj2SjegyTrjl81blViE1FDKuQ+LSgVF9C
-29h24ATVijtamBfzNQGvzuRYH18UucvS7ali6nO5tkgRiybF8tgss6ECgYEA4QyF
-AEY4zQuVYOchDcMXW5kIzDYsZp5C2IxrtrInkVa3GYsaDuAld5VvVcxmrFI3yggL
-N34Ivq0hVUmkbzUaVD8GJWCgDRf6WZ2JR/5uxIAMKbgFEHoKIT1OkKJf8u1JoKzx
-7m/EnoCu+CgYJ0Py3m04R0Lfu4nJQxOXEA86Zl8CgYBfjJHIVCuQF+/u73GXRH95
-5yc0BWlfxT91DxTDmnJe2FzP7iCYJC6S5d40qoBe2/rOJ7qnHjpGPXKqIJDlg2XV
-g8Dy4kej+Xk14biGxoZvfRHEcCTXk/lPLtOC5k5i6m3lQRvvkfLHlpKLOPRR5pAn
-Ssgl3dy06+Osrac+5ofoAQKBgB3nD/UNX5a/J0YM7/NoLL5bAzQ/Ln8kIDWt0tIf
-seo533JhbUD0v4W4MWbxFeNnuUn676Kb+IV9c6RleJfeMnVnOmXVBO84dGdb61XJ
-lOY/LV6NuP6LeLUZ9Ep7iMw6g0H6ONs5tqJo7tbCXRM6kBbF5Ghzlk7Q7BEhlTzp
-CRV5AoGAQ9xHxPNqFh5vA04ltV7VTHF+y2QW3dK6sIy9jb5dqkOAzv8980nU98Fj
-V6VViG/Y7O+TPWU5iJom5y62ixUoGES44+hSYuc2sVsqvavl8aHaqrLWbRur+WHb
-qz8czi8gnSeFT5sz4x7SMpFkJzCHdqFhQ03SRGcMvCbLpoAIb4Y=
------END RSA PRIVATE KEY-----
------BEGIN DH PARAMETERS-----
-MIIBCAKCAQEA56b6LH9zRQI6s+3Vy3Z1YmL8jZpvxpPgvtIuyNAcAufMIHwglyzW
-04YEZW96llnhGDEnIO3ldifmn24iKCtr3nR86P+zUiTK6VB0onjT31AaSAaP84Ff
-1SUU6KRkta9SbJqKWX8SewILiuEVcrCnM12EWh+PDvUDcUQMqQtdhNx4lNBGSqLu
-az6YsExuhWrmNAxeX/RkDcfS2+61GkDZd+97qaL/QMKAEznVeCVlSuigynGVf7AY
-IQgX+s6X6M9lBk+lLiZNAsFcdWaDF6gPNC3pRyj0aA2stmXxNugZGdIcbCh9SQzO
-dej+srAW4Uzb4xYfj84jrF3JKkgdV26u6wIBAg==
------END DH PARAMETERS-----
diff --git a/test/hitch/certs/service.docker.pem b/test/hitch/certs/service.docker.pem
deleted file mode 100644
index f08e6102ca77000ab6bd16ec6296a446a44194b0..0000000000000000000000000000000000000000
--- a/test/hitch/certs/service.docker.pem
+++ /dev/null
@@ -1,58 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDvzCCAqcCCQD34vO1za/WeDANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMC
-U0UxEjAQBgNVBAgTCVN0b2NraG9sbTESMBAGA1UEBxMJU3RvY2tob2xtMR4wHAYD
-VQQKExVFcmlrJ3MgU2VsZi1TaWduZWQgQ0ExDDAKBgNVBAsTA0RldjEZMBcGA1UE
-AxQQRXJpayBIZWRlbnN0csO2bTEjMCEGCSqGSIb3DQEJARYUZXJpa0BoZWRlbnN0
-cm9lbS5jb20wHhcNMTYwMzExMDgzNTMyWhcNMjYwMzA5MDgzNTMyWjCBnjEYMBYG
-A1UEChQPSGVkZW5zdHLDtm0uY29tMQwwCgYDVQQLEwNEZXYxJDAiBgkqhkiG9w0B
-CQEWFWFkbWluQGhlZGVuc3Ryb2VtLmNvbTESMBAGA1UEBxMJU3RvY2tob2xtMRIw
-EAYDVQQIEwlTdG9ja2hvbG0xCzAJBgNVBAYTAlNFMRkwFwYDVQQDFBAqLnNlcnZp
-Y2UuZG9ja2VyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4kqNxlr3
-qBvHERxyuyH0jgfMB0hY6xyfKhQAuUqFAwTi9gYBlknhbOiLT5nB6M18PgiAn+E5
-OaOL8Tv3gAf+qtpuKGvA5XzR37GBFwK6SYfdiv8pjEzOj64PFfQMj46k6EO/tjdD
-oEgUBvkCwreChJgyZPdPfhTTKGYe+zMwe6wn+poP6wfchXLMn6TUXOFrb9gIYY8i
-6J2UP/PrIq35FZ18dDllBCvHLp5x0AEv/r9bBuwctcAQrLgK5KObag9d2CizX1ks
-tW2afgDJ9WnYpp+d4ZBNUQs/whhcejVYGAekLnm2ZkWYUmQGMlrm5PMGKMFGSvH3
-2Lx0C+iWCDAhZQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBqgQiUUjBriUynmGpD
-E/CIZCJvsJj46TAHe4W8pVpkWAdtxWLZ9xcQ37CRMPezDsO4u3aK9LGoY1k6ZidH
-bnu76Iay2ebyyzIHfTo73J6HlElnmk0YnAvTJgAzKAIsxJR0zg6lx0iiyRnjJgWp
-0U1XibBqVO2qEanFCE3ReTR1jqcwJmM7/gEEdoW/DMrYF+TiwF60vX4W4Hq2DrGP
-ofcPS2RXWWEvt9ekODJOzmt+bPg3WuJiFBzFYoV8VLzOi4sM/dIMIQto1zvnjVXC
-v/WLyllL4ZnV6CK7G3Y/zEjqpdNbTsAuJzhDcDrMW3/bKZ2gVPcLg8H7I9+Izk+x
-R0Ue
------END CERTIFICATE-----
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEA4kqNxlr3qBvHERxyuyH0jgfMB0hY6xyfKhQAuUqFAwTi9gYB
-lknhbOiLT5nB6M18PgiAn+E5OaOL8Tv3gAf+qtpuKGvA5XzR37GBFwK6SYfdiv8p
-jEzOj64PFfQMj46k6EO/tjdDoEgUBvkCwreChJgyZPdPfhTTKGYe+zMwe6wn+poP
-6wfchXLMn6TUXOFrb9gIYY8i6J2UP/PrIq35FZ18dDllBCvHLp5x0AEv/r9bBuwc
-tcAQrLgK5KObag9d2CizX1kstW2afgDJ9WnYpp+d4ZBNUQs/whhcejVYGAekLnm2
-ZkWYUmQGMlrm5PMGKMFGSvH32Lx0C+iWCDAhZQIDAQABAoIBAQCKXDlZaa95WxqZ
-TMKdxsInwX6viT3M66Ap8zcKFBVF5kv7T2rTAHNTys+7KPEWLeXkbABxQR1jL6tW
-IWtQHhNJVer6zf+QkYQlePvMHP/YC7mazi8SOLgnw643pxOzBu2vkhT7DclMjCWq
-qcBVXCzyc7iEYW56UbNWRTJ2NzNSuacGQhy5kwC0WBi7jp1bkB2wyiQFDuD8CzLi
-6qEX/9+JFztJrmVaDtQFMl0l68zQ4NlDDmatk+9uokq6DXedscGNWgKH0l2UwNld
-WbgBQOCoiFXJjUYSi0Yi8IweuI3v+eUir7aRMmvpYLbIVeK9uK1ZXJoDPIf8NuX8
-ocoIHUBVAoGBAPXtnYRckwDFquAF0/KBM9z7gpJ5YJMYEyrp/raqpBzCweJt8Vve
-P+cHY1t2NCO88496rZLEoLiADF3qYQSxIm58ghvwrpO7ngm0foeNlVWPHmvEoF4q
-zjVoDZtktlBMnuoae8S0GX45zI4uqAymQ36at4WGVvh9sbeM2XfAPk4PAoGBAOuP
-DwpZCunYwWhEspZ4hd5VG21dMn2TUseKztQFjCxQ+YLNZHPI5RwItA3sHUjk0vS1
-6Cp1BM/wZtkts0sRGxdrrSJfuvm7N+XlRf4uZzjKAP4SXRY63yERhRwGW29dN/Lg
-PqqAVz5t/cT3LdIqbK88C92BVfXQBoMahasc/41LAoGBAMdcC1AMV6LNmpqmPs2c
-jXV7cbrZqD81yfwE2lYr+IPUIaYzp+/oN/dJ1vKC3PuHpg3OzjxnJz7JlrzfTiym
-h5n3VuXdczgRZKjLZ7LtRHyqW2fTaolLvAQxSK6KsvxfUIfIVkL8GJppsngkPFic
-w6QzOciFQaWJB3MbPANGlXtjAoGAVS5XXwOSCbwjPGRTPEx7BEo8b9Da2EQ1FAli
-/5K9/KyPfbhuUdxc1UVkbwBqGpj8nBdHzEqiodsqJfD7u/KEnHSImDyL7ZDBBvZg
-2CjJlOSfdUEIvmgtldSzEM5PtDa+a6qhnqBobB/0O4yy2iQTR07sb348qnY+VJx7
-p8QFuX8CgYA+TaFn70Nhr4l7RxjtbP7v0vH+HodHRr3TzR4WAiBiLKjYIGiH5es6
-8xRYFn0yoaZGKTahTy9phwY+9z6mhrDd6ATWQ7zBuhZf0VvZUcR5dULb2O35NwSM
-HgsQc+fIp1JwFQ62BvxEpxxr1uYCBY0hFUdUq9y6Bc6QRY5pkhNdSg==
------END RSA PRIVATE KEY-----
------BEGIN DH PARAMETERS-----
-MIIBCAKCAQEAnPMKREqaIMGAf0Ctj6LDl+dSuUJQZWgcR2EcJq5r7eQpgPXrp1Nu
-zX95VvkhX8uqYULeS1gDL2EsYwVx9B4/DXCpRDeb/UZU6G9l3edGlaT/yGd8p59z
-PuSrwm7Lbz+qUc+VlHA/1CzdE17f5zgJe/4BGmrRRXTc+kpc3qkQZOtMNxy22iUU
-woZs4/uPsRrideqVzRBgY9f++/7FFT2UNYYDq7MVPN7cMS+abeaeHQupNL4QOsb1
-hBKXZxPGtD6WZ/6PFsA5ebPsh9y4nuvhE1xNsA1Waxts31q2T91m5P7c+AZc8ubp
-XPNqizO/8ESTyvnYQcjViw/KG7Jl3eJvowIBAg==
------END DH PARAMETERS-----
diff --git a/test/hitch/conf/hitch.conf b/test/hitch/conf/hitch.conf
deleted file mode 100644
index b1eae575feab771e7a059fbcd7e55ac182f3227c..0000000000000000000000000000000000000000
--- a/test/hitch/conf/hitch.conf
+++ /dev/null
@@ -1,134 +0,0 @@
-#
-# Example configuration file for hitch(8).
-#
-# NOTE: all config file parameters can be overriden
-#       from command line!
-
-# Listening address. REQUIRED.
-# Can be specified multiple times for multiple listen endpoints.
-# type: string
-# syntax: [HOST]:PORT[+CERT]
-frontend = "[*]:443"
-
-# Upstream server address. REQUIRED.
-#
-# type: string
-# syntax: [HOST]:PORT.
-backend = "[consul_proxy]:8081"
-
-# SSL x509 certificate file. REQUIRED.
-# List multiple certs to use SNI. Certs are used in the order they
-# are listed; the last cert listed will be used if none of the others match
-#
-# type: string
-pem-file = ""
-
-# SSL protocol.
-#
-# tls = on
-# ssl = off
-
-# List of allowed SSL ciphers.
-#
-# Run openssl ciphers for list of available ciphers.
-# type: string
-ciphers = "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"
-
-# Enforce server cipher list order
-#
-# type: boolean
-prefer-server-ciphers = off
-
-# Use specified SSL engine
-#
-# type: string
-ssl-engine = ""
-
-# Number of worker processes
-#
-# type: integer
-workers = 4
-
-# Listen backlog size
-#
-# type: integer
-backlog = 100
-
-# TCP socket keepalive interval in seconds
-#
-# type: integer
-keepalive = 3600
-
-# Chroot directory
-#
-# type: string
-chroot = ""
-
-# Set uid after binding a socket
-#
-# type: string
-user = "hitch"
-
-# Set gid after binding a socket
-#
-# type: string
-group = "nogroup"
-
-# Quiet execution, report only error messages
-#
-# type: boolean
-quiet = off
-
-# Use syslog for logging
-#
-# type: boolean
-syslog = off
-
-# Syslog facility to use
-#
-# type: string
-syslog-facility = "daemon"
-
-# Run as daemon
-#
-# type: boolean
-daemon = off
-
-# Report client address by writing IP before sending data
-#
-# NOTE: This option is mutually exclusive with option write-proxy-v2, write-proxy and proxy-proxy.
-#
-# type: boolean
-write-ip = off
-
-# Report client address using SENDPROXY protocol, see
-# http://haproxy.1wt.eu/download/1.5/doc/proxy-protocol.txt
-# for details.
-#
-# NOTE: This option is mutually exclusive with option write-proxy-v2, write-ip and proxy-proxy.
-#
-# type: boolean
-write-proxy-v1 = on
-
-# Report client address using SENDPROXY v2 binary protocol, see
-# http://haproxy.1wt.eu/download/1.5/doc/proxy-protocol.txt
-# for details.
-#
-# NOTE: This option is mutually exclusive with option write-ip, write-proxy-v1 and proxy-proxy.
-#
-# type: boolean
-write-proxy-v2 = off
-
-# Proxy an existing SENDPROXY protocol header through this request.
-#
-# NOTE: This option is mutually exclusive with option write-proxy-v2, write-ip and write-proxy-v1.
-#
-# type: boolean
-proxy-proxy = off
-
-# Abort handshake when the client submits an unrecognized SNI server name.
-#
-# type: boolean
-sni-nomatch-abort = on
-
-# EOF
diff --git a/test/logstash/logstash.conf b/test/logstash/logstash.conf
deleted file mode 100644
index 8e5c8957dc043160696bb0b3c62e7442c2e18213..0000000000000000000000000000000000000000
--- a/test/logstash/logstash.conf
+++ /dev/null
@@ -1,16 +0,0 @@
-input {
-  udp {
-    port => 5000
-    codec => msgpack
-    type => "consul_proxy"
-  }
-  http {
-    port => 8080
-  }
-}
-output {
-  stdout { codec => rubydebug }
-  elasticsearch {
-      hosts => "elasticsearch:9200"
-  }
-}
diff --git a/test/www/index.html b/test/www/index.html
deleted file mode 100644
index 7808a81ff747bad161df23f0c3b973b64e9168e7..0000000000000000000000000000000000000000
--- a/test/www/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <title></title>
-</head>
-<body>
-<h1>Hello World</h1>
-</body>
-</html>
diff --git a/test/www/index.php b/test/www/index.php
deleted file mode 100644
index 73f78e936b02bff0155d001ed80a00a65072371b..0000000000000000000000000000000000000000
--- a/test/www/index.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-$tags = getenv('SERVICE_TAGS');
-
-$delay = intval(getenv('SIMULATED_DELAY'));
-if ($delay > 0) {
-    usleep(1000 *$delay);
-}
-$failure_rate = intval(getenv('SIMULATED_FAILURE_RATE'));
-if ($failure_rate != 0 && rand(0, 100) < $failure_rate) {
-    header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error', true, 500);
-    echo "<h1>$tags</h1><p>error, delay $delay msec.</p>";
-} else {
-    echo "<h1>$tags</h1><p>ok, delay $delay msec.</p>";
-}
diff --git a/test/www/info.php b/test/www/info.php
deleted file mode 100644
index 61ace196d4129411be0800919d883e132b0bf075..0000000000000000000000000000000000000000
--- a/test/www/info.php
+++ /dev/null
@@ -1,2 +0,0 @@
-<?php
-phpinfo();