Allow to configure log output and make CI great again (#60)
This commit is contained in:
parent
2a4024db68
commit
1f42c9285b
@ -1,8 +1,6 @@
|
||||
.editorconfig
|
||||
.git
|
||||
.github
|
||||
.idea
|
||||
.vscode
|
||||
temp
|
||||
tmp
|
||||
LICENSE
|
||||
## Ignore everything
|
||||
*
|
||||
|
||||
## Except the following files (and directories)
|
||||
!/3proxy.cfg.json
|
||||
!/3proxy.cfg.mustach
|
||||
|
@ -1,3 +1,5 @@
|
||||
# EditorConfig docs: <https://editorconfig.org/>
|
||||
|
||||
root = true
|
||||
|
||||
[*]
|
||||
@ -8,5 +10,6 @@ indent_style = space
|
||||
indent_size = 2
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[Dockerfile]
|
||||
indent_size = 4
|
||||
[{*.yml,*.yaml}]
|
||||
ij_any_spaces_within_braces = false
|
||||
ij_any_spaces_within_brackets = false
|
||||
|
13
.github/release.yml
vendored
Normal file
13
.github/release.yml
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
# yaml-language-server: $schema=https://json.schemastore.org/github-release-config.json
|
||||
# docs: https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes
|
||||
|
||||
changelog:
|
||||
categories:
|
||||
- title: 🛠 Fixes
|
||||
labels: [type:fix, type:bug]
|
||||
- title: 🚀 Features
|
||||
labels: [type:feature, type:feature_request]
|
||||
- title: 📦 Dependency updates
|
||||
labels: [dependencies]
|
||||
- title: Other Changes
|
||||
labels: ['*']
|
2
.github/workflows/documentation.yml
vendored
2
.github/workflows/documentation.yml
vendored
@ -8,7 +8,7 @@ on:
|
||||
jobs:
|
||||
docker-hub-description:
|
||||
name: Docker Hub Description
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
|
13
.github/workflows/release.yml
vendored
13
.github/workflows/release.yml
vendored
@ -1,4 +1,7 @@
|
||||
name: release
|
||||
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
|
||||
# docs: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
|
||||
|
||||
name: 🚀 Release
|
||||
|
||||
on:
|
||||
release: # Docs: <https://git.io/JeBz1#release-event-release>
|
||||
@ -7,27 +10,21 @@ on:
|
||||
jobs:
|
||||
docker-image:
|
||||
name: Build docker image
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- {uses: gacts/github-slug@v1, id: slug}
|
||||
|
||||
- uses: docker/setup-qemu-action@v3
|
||||
|
||||
- uses: docker/setup-buildx-action@v3
|
||||
|
||||
- uses: docker/login-action@v3 # Action page: <https://github.com/docker/login-action>
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_LOGIN }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- uses: docker/login-action@v3 # Action page: <https://github.com/docker/login-action>
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- uses: docker/build-push-action@v6 # Action page: <https://github.com/docker/build-push-action>
|
||||
with:
|
||||
context: .
|
||||
|
61
.github/workflows/tests.yml
vendored
61
.github/workflows/tests.yml
vendored
@ -1,4 +1,7 @@
|
||||
name: tests
|
||||
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
|
||||
# docs: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
|
||||
|
||||
name: 🧪 Tests
|
||||
|
||||
on:
|
||||
push:
|
||||
@ -12,63 +15,45 @@ concurrency:
|
||||
|
||||
jobs: # Docs: <https://git.io/JvxXE>
|
||||
gitleaks:
|
||||
name: Gitleaks
|
||||
runs-on: ubuntu-20.04
|
||||
name: Check for GitLeaks
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with: {fetch-depth: 0}
|
||||
|
||||
- {uses: actions/checkout@v4, with: {fetch-depth: 0}}
|
||||
- uses: gacts/gitleaks@v1
|
||||
|
||||
build-image:
|
||||
name: Build docker image
|
||||
runs-on: ubuntu-20.04
|
||||
name: Build the docker image
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Build docker image
|
||||
run: docker build -f ./Dockerfile --tag 3proxy:local .
|
||||
|
||||
- name: Save docker image
|
||||
run: docker save 3proxy:local > ./docker-image.tar
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
- run: docker build -f ./Dockerfile --tag 3proxy:local .
|
||||
- run: docker save 3proxy:local > ./docker-image.tar
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: docker-image
|
||||
path: ./docker-image.tar
|
||||
retention-days: 1
|
||||
|
||||
try-to-use:
|
||||
name: Build and use docker image (auth ${{ matrix.auth }})
|
||||
runs-on: ubuntu-20.04
|
||||
name: Build and use the docker image (auth ${{ matrix.auth }})
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
auth: [yes, no]
|
||||
needs: [build-image]
|
||||
steps:
|
||||
- name: Download built docker image
|
||||
uses: actions/download-artifact@v4
|
||||
- uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: docker-image
|
||||
path: .artifact
|
||||
|
||||
- name: Prepare image to run
|
||||
working-directory: .artifact
|
||||
- working-directory: .artifact
|
||||
run: docker load < docker-image.tar
|
||||
|
||||
- name: Start server without auth setup
|
||||
if: matrix.auth != 'yes'
|
||||
- if: matrix.auth != 'yes'
|
||||
run: docker run --rm -d -p "3128:3128/tcp" -p "1080:1080/tcp" 3proxy:local
|
||||
|
||||
- name: Start server with auth setup
|
||||
if: matrix.auth == 'yes'
|
||||
- if: matrix.auth == 'yes'
|
||||
run: docker run --rm -d -p "3128:3128/tcp" -p "1080:1080/tcp" -e "PROXY_LOGIN=evil" -e "PROXY_PASSWORD=live" -e 'EXTRA_ACCOUNTS={"foo":"bar"}' 3proxy:local
|
||||
|
||||
- name: Pause
|
||||
run: sleep 3
|
||||
|
||||
- run: sleep 3
|
||||
- name: Try to use HTTP proxy
|
||||
if: matrix.auth != 'yes'
|
||||
run: |
|
||||
@ -77,7 +62,6 @@ jobs: # Docs: <https://git.io/JvxXE>
|
||||
--connect-timeout 3 \
|
||||
--max-time 3 \
|
||||
https://www.cloudflare.com/robots.txt
|
||||
|
||||
- name: Try to use SOCKS proxy
|
||||
if: matrix.auth != 'yes'
|
||||
run: |
|
||||
@ -86,7 +70,6 @@ jobs: # Docs: <https://git.io/JvxXE>
|
||||
--connect-timeout 3 \
|
||||
--max-time 3 \
|
||||
https://www.cloudflare.com/robots.txt
|
||||
|
||||
- name: Try to use HTTP proxy (with auth)
|
||||
if: matrix.auth == 'yes'
|
||||
run: |
|
||||
@ -96,7 +79,6 @@ jobs: # Docs: <https://git.io/JvxXE>
|
||||
--connect-timeout 3 \
|
||||
--max-time 3 \
|
||||
https://www.cloudflare.com/robots.txt
|
||||
|
||||
- name: Try to use HTTP proxy (with auth, extra user)
|
||||
if: matrix.auth == 'yes'
|
||||
run: |
|
||||
@ -106,7 +88,6 @@ jobs: # Docs: <https://git.io/JvxXE>
|
||||
--connect-timeout 3 \
|
||||
--max-time 3 \
|
||||
https://www.cloudflare.com/robots.txt
|
||||
|
||||
- name: Try to use SOCKS proxy (with auth)
|
||||
if: matrix.auth == 'yes'
|
||||
run: |
|
||||
@ -116,6 +97,4 @@ jobs: # Docs: <https://git.io/JvxXE>
|
||||
--connect-timeout 3 \
|
||||
--max-time 3 \
|
||||
https://www.cloudflare.com/robots.txt
|
||||
|
||||
- name: Stop container
|
||||
run: docker stop $(docker ps -a --filter ancestor=3proxy:local -q)
|
||||
- run: docker stop $(docker ps -a --filter ancestor=3proxy:local -q)
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"log": {
|
||||
"output": "/dev/stdout"
|
||||
"output": "${LOG_OUTPUT:-/dev/stdout}"
|
||||
},
|
||||
"name_servers": [
|
||||
"${PRIMARY_RESOLVER:-1.0.0.1}",
|
||||
|
133
CHANGELOG.md
133
CHANGELOG.md
@ -1,133 +0,0 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this package will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog][keepachangelog] and this project adheres to [Semantic Versioning][semver].
|
||||
|
||||
## v1.9.1
|
||||
|
||||
### Fixed
|
||||
|
||||
- Extra configuration now applies before defining the proxy server in the configuration file [#49]
|
||||
|
||||
[#49]:https://github.com/tarampampam/3proxy-docker/pull/49
|
||||
|
||||
## v1.9.0
|
||||
|
||||
### Added
|
||||
|
||||
- `EXTRA_CONFIG` environment variable is supported now [#47]
|
||||
|
||||
[#47]:https://github.com/tarampampam/3proxy-docker/issues/47
|
||||
|
||||
## v1.8.3
|
||||
|
||||
### Fixed
|
||||
|
||||
- Missing port definitions when `EXTRA_ACCOUNTS` is set
|
||||
|
||||
## v1.8.2
|
||||
|
||||
### Removed
|
||||
|
||||
- `ppc64le` architecture support
|
||||
|
||||
## v1.8.1
|
||||
|
||||
### Added
|
||||
|
||||
- Multi-arch image support (plus `arm64` and `ppc64le`) [#31]
|
||||
|
||||
### Fixed
|
||||
|
||||
- Error page colors now depend on the theme, and the text is centered [#31]
|
||||
|
||||
[#31]:https://github.com/tarampampam/3proxy-docker/pull/31
|
||||
|
||||
## v1.8.0
|
||||
|
||||
### Added
|
||||
|
||||
- `EXTRA_ACCOUNTS` environment variable is supported now [#28]
|
||||
|
||||
[#28]:https://github.com/tarampampam/3proxy-docker/issues/28
|
||||
|
||||
## v1.7.0
|
||||
|
||||
### Added
|
||||
|
||||
- The following environment variables are supported now: `MAX_CONNECTIONS`, `PROXY_PORT`, `SOCKS_PORT`
|
||||
|
||||
### Changed
|
||||
|
||||
- Entrypoint script (`bash`) replaced with [`mustpl`](https://github.com/tarampampam/mustpl)
|
||||
- The result docker image `busybox:1.34.1-glibc` replaced with `busybox:stable-glibc`
|
||||
|
||||
### Removed
|
||||
|
||||
- Dockerfile healthcheck
|
||||
|
||||
## v1.6.0
|
||||
|
||||
### Added
|
||||
|
||||
- Possibility of changing DNS resolvers using environment variables `PRIMARY_RESOLVER` (primary) and `SECONDARY_RESOLVER` (secondary)
|
||||
|
||||
## v1.5.0
|
||||
|
||||
### Fixed
|
||||
|
||||
- Docker image building optimized
|
||||
|
||||
### Added
|
||||
|
||||
- Healthcheck in the dockerfile
|
||||
|
||||
## v1.4.0
|
||||
|
||||
### Changed
|
||||
|
||||
- 3proxy updated from `0.9.3` up to `0.9.4`
|
||||
|
||||
## v1.3.0
|
||||
|
||||
### Changed
|
||||
|
||||
- Logging in JSON format
|
||||
|
||||
## v1.2.0
|
||||
|
||||
### Changed
|
||||
|
||||
- 3proxy updated from `0.8.13` up to `0.9.3`
|
||||
|
||||
## v1.1.0
|
||||
|
||||
### Removed
|
||||
|
||||
- Environment variable `AUTH_REQUIRED` support
|
||||
|
||||
### Changed
|
||||
|
||||
- Proxy error pages a little bit styled
|
||||
|
||||
## v1.0.0
|
||||
|
||||
### Fixed
|
||||
|
||||
- Dockerfile and docker entry-point script cleanup
|
||||
|
||||
## v0.1.1
|
||||
|
||||
### Fixed
|
||||
|
||||
- Docker entry-point script clean
|
||||
|
||||
## v0.1.0
|
||||
|
||||
### Changed
|
||||
|
||||
- First project release
|
||||
|
||||
[keepachangelog]:https://keepachangelog.com/en/1.0.0/
|
||||
[semver]:https://semver.org/spec/v2.0.0.html
|
@ -1,5 +1,6 @@
|
||||
# Image page: <https://hub.docker.com/_/gcc>
|
||||
FROM gcc:13.2.0 as builder
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
FROM gcc:13.2.0 AS builder
|
||||
|
||||
# renovate: source=github-tags name=z3APA3A/3proxy
|
||||
ARG Z3PROXY_VERSION=0.9.4
|
||||
@ -36,7 +37,7 @@ RUN set -x \
|
||||
&& strip ./bin/SSLPlugin.ld.so
|
||||
|
||||
# Prepare filesystem for 3proxy running
|
||||
FROM alpine:latest as buffer
|
||||
FROM alpine:latest AS buffer
|
||||
|
||||
# create a directory for the future root filesystem
|
||||
WORKDIR /tmp/rootfs
|
||||
|
@ -56,6 +56,7 @@ Image: ghcr.io/tarampampam/3proxy:1.8.2
|
||||
| `PROXY_PORT` | HTTP proxy port number (`3128` by default) | `8080` |
|
||||
| `SOCKS_PORT` | SOCKS proxy port number (`1080` by default) | `8888` |
|
||||
| `EXTRA_CONFIG` | Additional 3proxy configuration (will be added to the **end** of the config file, but before the `proxy` and `flush`) | `# line 1\n# line 2` |
|
||||
| `LOG_OUTPUT` | Log output file path (`/dev/stdout` by default, set `/dev/null` to disable logging) | `/tmp/3proxy.log` |
|
||||
|
||||
## How can I use this?
|
||||
|
||||
@ -87,13 +88,6 @@ Publishing new versions is very simple: just make the required changes in this r
|
||||
Docker images will be built and published automatically.
|
||||
|
||||
> The new release will overwrite the `latest` docker image tag in both registries.
|
||||
>
|
||||
## Changes log
|
||||
|
||||
[![Release date][badge_release_date]][link_releases]
|
||||
[![Commits since latest release][badge_commits_since_release]][link_commits]
|
||||
|
||||
Changes log can be [found here][link_changes_log].
|
||||
|
||||
## Support
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user