diff --git a/.travis.yml b/.travis.yml index 27b32bf3..cee969a0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,3 @@ -env: - - GO111MODULE=on GOFLAGS=-mod=vendor CGO_ENABLED=0 - language: go addons: @@ -22,18 +19,18 @@ script: after_script: # Install and upload test coverage must not failure for test build - - test -n "$TRAVIS_TAG" || go get -mod= golang.org/x/tools/cmd/cover - - test -n "$TRAVIS_TAG" || go get -mod= github.com/mattn/goveralls + - test -n "$TRAVIS_TAG" || go get golang.org/x/tools/cmd/cover + - test -n "$TRAVIS_TAG" || go get github.com/mattn/goveralls - test -n "$TRAVIS_TAG" || goveralls -coverprofile=coverage.out -service=travis-ci -repotoken $COVERALLS_TOKEN before_deploy: - git config --local user.name "$GIT_NAME" - git config --local user.email "$GIT_EMAIL" - BUILD_TIME=$(TZ=UTC date --rfc-3339=seconds) - - go get -mod= github.com/mitchellh/gox + - go get github.com/mitchellh/gox - mkdir -p output - OS_ARCH_BUILDS="darwin/amd64 linux/386 linux/amd64 linux/arm freebsd/386 freebsd/amd64 freebsd/arm windows/386 windows/amd64" - - gox --mod=vendor -osarch "$OS_ARCH_BUILDS" --ldflags "-X \"main.VERSION=$TRAVIS_TAG+build-$TRAVIS_BUILD_NUMBER, Build time $BUILD_TIME, commit $TRAVIS_COMMIT\"" --output="output/lets-proxy_{{.OS}}_{{.Arch}}" -verbose --rebuild ./cmd/ + - GO111MODULE=on CGO_ENABLED=0 gox --mod=vendor -osarch "$OS_ARCH_BUILDS" --ldflags "-X \"main.VERSION=$TRAVIS_TAG+build-$TRAVIS_BUILD_NUMBER, Build time $BUILD_TIME, commit $TRAVIS_COMMIT\"" --output="output/lets-proxy_{{.OS}}_{{.Arch}}" -verbose --rebuild ./cmd/ - bash tests/make_archives.sh deploy: diff --git a/README.md b/README.md index dc8e33cf..12cbcff8 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,20 @@ Home page: https://github.com/rekby/lets-proxy2 Now it is alpha and not ready for production use. +Features: +* http-01 and tls-alpn-01 validation +* HTTPS (with certificate autoissue) and HTTP reverse proxy +* Zero config for start usage +* Time limit for issue certificate +* Auto include subdomains in certificate (default: domain and www.domain) +* Logging for stderr and/or file +* Self rotate log files (can disable by config) +* Can configure backend in dependence of incoming connection IP:Port +* Custom headers to backend +* Self check domain before issue cert (prevent DoS cert issue attack by requests with bad domains) +* Blacklist/whitelist of domains +* Lock certificates (force to use manual issued certificate without internal checks) + It is next generation of https://github.com/rekby/lets-proxy, rewrited from scratch. It is improove logging and internal structure for better test coverage and simpler support. @@ -35,13 +49,27 @@ Use --help key for details: ./lets-proxy --help or lets-proxy.exe --help - Русский (Russian): ================== Сайт программы: https://github.com/rekby/lets-proxy2 Сейчас это тестовая версия, программа в процессе разработчик и она не готова для реального использования. +Возможности: +* Авторизация доменов по протоколам http-01 and tls-alpn-01 +* Проксирование HTTPS (с автовыпуском сертификата) and HTTP +* Начать использование можно без настроек +* Ограничение времени на получение сертификата +* Автоматическое получение сертификата для домена и поддоменов (default: domain and www.domain) +* Вывод логов в файл и/или на стандартный вывод ошибок +* Самостоятельная ротация лог-файлов (отключается в настройках) +* Можно настроить адрес перенаправления запроса в заивисмости от адреса приема запроса. +* Настраиваемые дополнительные заголовки для передачи на внутренний сервер +* Самостоятельная проверка возможности выпуска сертификата перед его запросов (для исключения DoS-атак путем запросов с неправильными доменами) +* Белый/чёрный списки доменов для выпуска сертификатов +* Фиксированный сертификат (возможность использовать самостоятельно полученный сертификат, без внутренних проверок и автообновления) + + Эта программа - следующая итерация после https://github.com/rekby/lets-proxy, переписанная с нуля. Улучшено логирование, внутреннее устройство кода - для упрощения тестирования и поддержки/развития. diff --git a/tests/make_archives.sh b/tests/make_archives.sh index 4630fb90..9e748511 100644 --- a/tests/make_archives.sh +++ b/tests/make_archives.sh @@ -2,6 +2,8 @@ set -ev cd output +ls + ./lets-proxy_linux_amd64 --print-default-config > config_default.toml_