mirror of
https://github.com/NginxProxyManager/nginx-proxy-manager.git
synced 2025-08-04 00:13:33 +00:00
add caddy as http option to support h2c for redirect/dep updates/some fixes
Update zoeyvid/nginx-quic Docker tag to v113 Signed-off-by: Zoey <zoey@z0ey.de>
This commit is contained in:
29
.github/workflows/caddy-fmt.yml
vendored
Normal file
29
.github/workflows/caddy-fmt.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
name: caddy-fmt
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- develop
|
||||||
|
paths:
|
||||||
|
- .github/workflows/caddy-fmt.yml
|
||||||
|
- Caddy.Dockerfile
|
||||||
|
- Caddyfile
|
||||||
|
workflow_dispatch:
|
||||||
|
jobs:
|
||||||
|
caddy-fmt:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Read version
|
||||||
|
id: version
|
||||||
|
run: echo "version=$(cat Caddy.Dockerfile | grep -wE "FROM caddy:*" | head -1 | sed "s|FROM caddy:||g")" >> $GITHUB_OUTPUT
|
||||||
|
- name: caddy-fmt
|
||||||
|
run: |
|
||||||
|
docker run --rm -v ${{ github.workspace }}/Caddyfile:/etc/caddy/Caddyfile caddy:${{ steps.version.outputs.version }} caddy fmt --overwrite /etc/caddy/Caddyfile
|
||||||
|
- name: push changes
|
||||||
|
run: |
|
||||||
|
git add -A
|
||||||
|
git config user.name "GitHub"
|
||||||
|
git config user.email "noreply@github.com"
|
||||||
|
git diff-index --quiet HEAD || git commit -sm "caddy-fmt"
|
||||||
|
git push
|
50
.github/workflows/caddy.yml
vendored
Normal file
50
.github/workflows/caddy.yml
vendored
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
name: Build Caddy Image
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- develop
|
||||||
|
paths:
|
||||||
|
- .github/workflows/caddy.yml
|
||||||
|
- Caddy.Dockerfile
|
||||||
|
- Caddyfile
|
||||||
|
workflow_dispatch:
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v2
|
||||||
|
with:
|
||||||
|
platforms: arm64 #all
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v2
|
||||||
|
with:
|
||||||
|
driver-opts: env.BUILDKIT_STEP_LOG_MAX_SIZE=-1
|
||||||
|
- name: Login to DockerHub
|
||||||
|
if: ${{ github.event_name != 'pull_request' }}
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKER_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||||
|
- name: Convert Username
|
||||||
|
id: un
|
||||||
|
run: echo "un=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')" >> $GITHUB_OUTPUT
|
||||||
|
- name: Login to GitHub Container Registry
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ steps.un.outputs.un }}
|
||||||
|
password: ${{ github.token }}
|
||||||
|
- name: Build
|
||||||
|
uses: docker/build-push-action@v4
|
||||||
|
if: ${{ github.event_name != 'pull_request' }}
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
file: ./Caddy.Dockerfile
|
||||||
|
platforms: linux/amd64,linux/arm64 #,linux/amd64/v2,linux/amd64/v3,linux/amd64/v4 #,linux/ppc64le,linux/s390x,linux/386,linux/arm/v7,linux/arm/v6
|
||||||
|
push: ${{ github.event_name != 'pull_request' }}
|
||||||
|
tags: |
|
||||||
|
${{ steps.un.outputs.un }}/${{ github.event.repository.name }}:caddy
|
||||||
|
ghcr.io/${{ steps.un.outputs.un }}/${{ github.event.repository.name }}:caddy
|
4
.github/workflows/docker.yml
vendored
4
.github/workflows/docker.yml
vendored
@@ -1,9 +1,5 @@
|
|||||||
name: Build Docker Image
|
name: Build Docker Image
|
||||||
on:
|
on:
|
||||||
workflow_run:
|
|
||||||
workflows: ["Build frontend"]
|
|
||||||
types:
|
|
||||||
- completed
|
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- develop
|
- develop
|
||||||
|
3
Caddy.Dockerfile
Normal file
3
Caddy.Dockerfile
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
FROM caddy:2.6.4-alpine
|
||||||
|
RUN apk add --no-cache ca-certificates tzdata
|
||||||
|
COPY Caddyfile /etc/caddy/Caddyfile
|
8
Caddyfile
Normal file
8
Caddyfile
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
servers :80 {
|
||||||
|
protocols h1 h2c
|
||||||
|
}
|
||||||
|
}
|
||||||
|
http://:80 {
|
||||||
|
redir https://{host}{uri}
|
||||||
|
}
|
@@ -35,7 +35,7 @@ RUN apk add --no-cache build-base libffi-dev && \
|
|||||||
. /usr/local/certbot/bin/activate && \
|
. /usr/local/certbot/bin/activate && \
|
||||||
pip install --no-cache-dir certbot
|
pip install --no-cache-dir certbot
|
||||||
|
|
||||||
FROM zoeyvid/nginx-quic:112
|
FROM zoeyvid/nginx-quic:113
|
||||||
RUN apk add --no-cache ca-certificates tzdata \
|
RUN apk add --no-cache ca-certificates tzdata \
|
||||||
nodejs-current \
|
nodejs-current \
|
||||||
openssl apache2-utils \
|
openssl apache2-utils \
|
||||||
|
15
compose.override.yaml
Normal file
15
compose.override.yaml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
version: "3"
|
||||||
|
services:
|
||||||
|
caddy:
|
||||||
|
container_name: nginx-proxy-manager-caddy
|
||||||
|
image: zoeyvid/nginx-proxy-manager:caddy
|
||||||
|
restart: always
|
||||||
|
network_mode: bridge
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
environment:
|
||||||
|
- "TZ=Europe/Berlin"
|
||||||
|
|
||||||
|
nginx-proxy-manager:
|
||||||
|
environment:
|
||||||
|
- "DISABLE_HTTP=true" # disables nginx to listen on port 80, default false
|
@@ -1,6 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
export HC_IP="localhost"
|
export HC_IP="localhost"
|
||||||
|
export NPM_PORT="${NPM_PORT:-81}"
|
||||||
|
|
||||||
if [ "$NPM_LISTEN_LOCALHOST" = "true" ]; then
|
if [ "$NPM_LISTEN_LOCALHOST" = "true" ]; then
|
||||||
export NPM_IPV4_BINDING="127.0.0.1"
|
export NPM_IPV4_BINDING="127.0.0.1"
|
||||||
@@ -13,7 +14,7 @@ elif [ -n "$NPM_IPV4_BINDING" ]; then
|
|||||||
export HC_IP="$NPM_IPV4_BINDING"
|
export HC_IP="$NPM_IPV4_BINDING"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if (if [ "$PHP81" = true ]; then cgi-fcgi -bind -connect /dev/php81.sock > /dev/null 2>&1; fi && if [ "$PHP82" = true ]; then cgi-fcgi -bind -connect /dev/php82.sock > /dev/null 2>&1; fi && [ "$(curl -sk https://"$HC_IP":81/api/ | jq --raw-output .status)" = "OK" ]); then
|
if (if [ "$PHP81" = true ]; then cgi-fcgi -bind -connect /dev/php81.sock > /dev/null 2>&1; fi && if [ "$PHP82" = true ]; then cgi-fcgi -bind -connect /dev/php82.sock > /dev/null 2>&1; fi && [ "$(curl -sk https://"$HC_IP":"$NPM_PORT"/api/ | jq --raw-output .status)" = "OK" ]); then
|
||||||
echo "OK"
|
echo "OK"
|
||||||
exit 0
|
exit 0
|
||||||
else
|
else
|
||||||
|
@@ -408,6 +408,15 @@ else
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$NPM_CERT" = "/data/tls/dummycert.pem" ] || [ "$NPM_KEY" = "/data/tls/dummykey.pem" ]; then
|
||||||
|
if [ ! -f /data/tls/dummycert.pem ] || [ ! -f /data/tls/dummykey.pem ]; then
|
||||||
|
openssl req -new -newkey rsa:4096 -days 365000 -nodes -x509 -subj '/CN=*' -sha256 -keyout /data/tls/dummykey.pem -out /data/tls/dummycert.pem
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
rm -vrf /data/tls/dummycert.pem \
|
||||||
|
/data/tls/dummykey.pem
|
||||||
|
fi
|
||||||
|
|
||||||
ns="$(tr "[:upper:]" "[:lower:]" < /etc/resolv.conf | grep -P "^nameserver ((?:[0-9.]+)|(?:[0-9a-f:]+))$" | awk 'BEGIN{ORS=" "} $1=="nameserver" { sub(/%.*$/,"",$2); print ($2 ~ ":")? "["$2"]": $2}' | sed "s| *$||")"
|
ns="$(tr "[:upper:]" "[:lower:]" < /etc/resolv.conf | grep -P "^nameserver ((?:[0-9.]+)|(?:[0-9a-f:]+))$" | awk 'BEGIN{ORS=" "} $1=="nameserver" { sub(/%.*$/,"",$2); print ($2 ~ ":")? "["$2"]": $2}' | sed "s| *$||")"
|
||||||
export ns
|
export ns
|
||||||
if [ "$DISABLE_IPV6" = "true" ]; then
|
if [ "$DISABLE_IPV6" = "true" ]; then
|
||||||
@@ -509,15 +518,6 @@ if [ "$NGINX_LOG_NOT_FOUND" = "true" ]; then
|
|||||||
sed -i "s|log_not_found off;|log_not_found on;|g" /usr/local/nginx/conf/nginx.conf
|
sed -i "s|log_not_found off;|log_not_found on;|g" /usr/local/nginx/conf/nginx.conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$NPM_CERT_ID" ]; then
|
|
||||||
if [ ! -f /data/tls/dummycert.pem ] || [ ! -f /data/tls/dummykey.pem ]; then
|
|
||||||
openssl req -new -newkey rsa:4096 -days 365000 -nodes -x509 -subj '/CN=*' -sha256 -keyout /data/tls/dummykey.pem -out /data/tls/dummycert.pem
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
rm -vrf /data/tls/dummycert.pem \
|
|
||||||
/data/tls/dummykey.pem
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -f /data/nginx/default.conf ]; then
|
if [ ! -f /data/nginx/default.conf ]; then
|
||||||
mv -vn /usr/local/nginx/conf/conf.d/include/default.conf /data/nginx/default.conf
|
mv -vn /usr/local/nginx/conf/conf.d/include/default.conf /data/nginx/default.conf
|
||||||
fi
|
fi
|
||||||
|
Reference in New Issue
Block a user