Skip to content

Commit

Permalink
all: initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
breuner committed Jun 26, 2022
1 parent 79e67c2 commit 7522b4b
Show file tree
Hide file tree
Showing 12 changed files with 392 additions and 1 deletion.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
*.code-workspace
proxperfect
todo.txt
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Changelog of proxperfect

## v1.0.1 (June 26, 2022)
* Initial release by Sven Breuner.

### Contributors
* Thanks to Paul Hargreaves for helpful comments and suggestions.

1 change: 1 addition & 0 deletions Dockerfile
11 changes: 11 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
EXE ?= ./proxperfect

all: $(EXE)

$(EXE): $(EXE).go
go build -o $(EXE) $(EXE).go

clean:
rm -f $(EXE)

.PHONY: clean
18 changes: 17 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,18 @@
# proxperfect
A fan-out reverse proxy for HTTP (including S3)

<img src="graphics/proxperfect-logo.svg" width="50%" height="50%" alt="proxperfect logo" align="center"/>

**A fan-out reverse proxy for HTTP (including S3)**

proxperfect proxides a single endpoint for HTTP clients to connect to and forwards incoming requests to a given set of servers in a round-robin fashion. This is a way to balance load across multiple servers for applications that have no native support for multiple endpoints and for cases in which DNS-based load balancing is not feasible.

## Usage

The built-in help (`proxperfect --help`) provides simple examples to get started.

You can get proxperfect pre-built for Linux from the [Releases section](https://github.com/breuner/proxperfect/releases) and from [Docker Hub](https://hub.docker.com/r/breuner/proxperfect).

### Questions & Comments

In case of questions, comments, if something is missing to make proxperfect more useful or if you would just like to share your thoughts, feel free to contact me: sven.breuner[at]gmail.com

26 changes: 26 additions & 0 deletions build_helpers/docker/Dockerfile.alpine
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Proxperfect main executable from local source code on Alpine Linux for minimum image size.
#
# Run docker build from proxperfect repository root dir like this:
# docker build -t proxperfect-local -f build_helpers/docker/Dockerfile.alpine.local .

FROM alpine:3 as builder

RUN apk add bash go make

RUN cd /root && \
git clone https://github.com/breuner/proxperfect.git && \
cd proxperfect && \
go mod download && \
make clean && \
make

FROM alpine:3

COPY --from=builder /root/proxperfect/proxperfect /usr/local/bin/

RUN apk add bash && \
ln -s /usr/local/bin/proxperfect /usr/bin/proxperfect && \
/usr/local/bin/proxperfect --version

ENTRYPOINT ["/usr/local/bin/proxperfect"]

26 changes: 26 additions & 0 deletions build_helpers/docker/Dockerfile.alpine.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Proxperfect main executable from local source code on Alpine Linux for minimum image size.
#
# Run docker build from proxperfect repository root dir like this:
# docker build -t proxperfect-local -f build_helpers/docker/Dockerfile.alpine.local .

FROM alpine:3 as builder

RUN apk add bash go make

COPY ./ /root/proxperfect

RUN cd /root/proxperfect && \
go mod download && \
make clean && \
make

FROM alpine:3

COPY --from=builder /root/proxperfect/proxperfect /usr/local/bin/

RUN apk add bash && \
ln -s /usr/local/bin/proxperfect /usr/bin/proxperfect && \
/usr/local/bin/proxperfect --version

ENTRYPOINT ["/usr/local/bin/proxperfect"]

8 changes: 8 additions & 0 deletions build_helpers/docker/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# proxperfect

<img src="https://raw.githubusercontent.com/breuner/elbencho/master/graphics/proxperfect-logo.svg" width="50%" height="50%" alt="proxperfect logo" align="center"/>

**A fan-out reverse proxy for HTTP (including S3)**

For the full description, see proxperfect's readme and changelog on github: https://github.com/breuner/proxperfect

5 changes: 5 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module github.com/breuner/proxperfect

go 1.18

require golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f
2 changes: 2 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f h1:Ax0t5p6N38Ga0dThY21weqDEyz2oklo4IvDkpigvkD8=
golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
1 change: 1 addition & 0 deletions graphics/proxperfect-logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 7522b4b

Please sign in to comment.