alpine update/dep updates/change default mime types to download instead of plain text
Signed-off-by: Zoey <zoey@z0ey.de>
This commit is contained in:
parent
94288054d2
commit
2bebb45baa
9 changed files with 56 additions and 39 deletions
9
.github/workflows/docker-latest.yml
vendored
9
.github/workflows/docker-latest.yml
vendored
|
@ -23,6 +23,12 @@ jobs:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ steps.un.outputs.un }}
|
username: ${{ steps.un.outputs.un }}
|
||||||
password: ${{ github.token }}
|
password: ${{ github.token }}
|
||||||
|
- name: Login to forgejo
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: forgejo.zvcdn.de
|
||||||
|
username: ${{ secrets.FORGEJO_USERNAME }}
|
||||||
|
password: ${{ secrets.FORGEJO_PASSWORD }}
|
||||||
- name: Push develop to latest
|
- name: Push develop to latest
|
||||||
run: |
|
run: |
|
||||||
docker buildx imagetools create --tag ${{ steps.un.outputs.un }}/nginx-proxy-manager:latest ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }}
|
docker buildx imagetools create --tag ${{ steps.un.outputs.un }}/nginx-proxy-manager:latest ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }}
|
||||||
|
@ -32,7 +38,10 @@ jobs:
|
||||||
docker buildx imagetools create --tag ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.run_number }} ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }}
|
docker buildx imagetools create --tag ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.run_number }} ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }}
|
||||||
docker buildx imagetools create --tag ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:latest ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }}
|
docker buildx imagetools create --tag ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:latest ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }}
|
||||||
docker buildx imagetools create --tag ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.run_number }} ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }}
|
docker buildx imagetools create --tag ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.run_number }} ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }}
|
||||||
|
# docker buildx imagetools create --tag forgejo.zvcdn.de/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:latest forgejo.zvcdn.de/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }}
|
||||||
|
# docker buildx imagetools create --tag forgejo.zvcdn.de/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.run_number }} forgejo.zvcdn.de/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }}
|
||||||
- name: Show Nginx version
|
- name: Show Nginx version
|
||||||
run: |
|
run: |
|
||||||
docker run --rm --entrypoint nginx ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:latest -V
|
docker run --rm --entrypoint nginx ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:latest -V
|
||||||
docker run --rm --entrypoint nginx ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:latest -V
|
docker run --rm --entrypoint nginx ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:latest -V
|
||||||
|
# docker run --rm --entrypoint nginx forgejo.zvcdn.de/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:latest -V
|
||||||
|
|
8
.github/workflows/docker.yml
vendored
8
.github/workflows/docker.yml
vendored
|
@ -53,6 +53,12 @@ jobs:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ steps.un.outputs.un }}
|
username: ${{ steps.un.outputs.un }}
|
||||||
password: ${{ github.token }}
|
password: ${{ github.token }}
|
||||||
|
- name: Login to forgejo
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: forgejo.zvcdn.de
|
||||||
|
username: ${{ secrets.FORGEJO_USERNAME }}
|
||||||
|
password: ${{ secrets.FORGEJO_PASSWORD }}
|
||||||
- name: version
|
- name: version
|
||||||
run: |
|
run: |
|
||||||
version="$(cat .version)+$(git rev-parse --short HEAD)"
|
version="$(cat .version)+$(git rev-parse --short HEAD)"
|
||||||
|
@ -71,11 +77,13 @@ jobs:
|
||||||
tags: |
|
tags: |
|
||||||
${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }}
|
${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }}
|
||||||
ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }}
|
ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }}
|
||||||
|
# forgejo.zvcdn.de/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }}
|
||||||
- name: show version
|
- name: show version
|
||||||
if: ${{ github.event_name != 'pull_request' }}
|
if: ${{ github.event_name != 'pull_request' }}
|
||||||
run: |
|
run: |
|
||||||
docker run --rm --entrypoint nginx ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }} -V
|
docker run --rm --entrypoint nginx ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }} -V
|
||||||
docker run --rm --entrypoint nginx ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }} -V
|
docker run --rm --entrypoint nginx ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }} -V
|
||||||
|
# docker run --rm --entrypoint nginx forgejo.zvcdn.de/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }} -V
|
||||||
- name: Set PR-Number (PR)
|
- name: Set PR-Number (PR)
|
||||||
if: ${{ github.event_name == 'pull_request' }}
|
if: ${{ github.event_name == 'pull_request' }}
|
||||||
id: pr
|
id: pr
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
FROM alpine:3.20.3
|
FROM alpine:3.21.0
|
||||||
RUN apk add --no-cache ca-certificates tzdata
|
RUN apk add --no-cache ca-certificates tzdata
|
||||||
COPY --from=caddy:2.8.4 /usr/bin/caddy /usr/bin/caddy
|
COPY --from=caddy:2.8.4 /usr/bin/caddy /usr/bin/caddy
|
||||||
COPY Caddyfile /etc/caddy/Caddyfile
|
COPY Caddyfile /etc/caddy/Caddyfile
|
||||||
|
|
51
Dockerfile
51
Dockerfile
|
@ -1,9 +1,10 @@
|
||||||
# syntax=docker/dockerfile:labs
|
# syntax=docker/dockerfile:labs
|
||||||
FROM --platform="$BUILDPLATFORM" alpine:3.20.3 AS frontend
|
FROM --platform="$BUILDPLATFORM" alpine:3.21.0 AS frontend
|
||||||
COPY frontend /app
|
SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
|
||||||
COPY global/certbot-dns-plugins.json /app/certbot-dns-plugins.json
|
|
||||||
ARG NODE_ENV=production \
|
ARG NODE_ENV=production \
|
||||||
NODE_OPTIONS=--openssl-legacy-provider
|
NODE_OPTIONS=--openssl-legacy-provider
|
||||||
|
COPY frontend /app
|
||||||
|
COPY global/certbot-dns-plugins.json /app/certbot-dns-plugins.json
|
||||||
WORKDIR /app/frontend
|
WORKDIR /app/frontend
|
||||||
RUN apk upgrade --no-cache -a && \
|
RUN apk upgrade --no-cache -a && \
|
||||||
apk add --no-cache ca-certificates nodejs yarn git python3 py3-pip build-base file && \
|
apk add --no-cache ca-certificates nodejs yarn git python3 py3-pip build-base file && \
|
||||||
|
@ -18,12 +19,12 @@ COPY darkmode.css /app/dist/css/darkmode.css
|
||||||
COPY security.txt /app/dist/.well-known/security.txt
|
COPY security.txt /app/dist/.well-known/security.txt
|
||||||
|
|
||||||
|
|
||||||
FROM --platform="$BUILDPLATFORM" alpine:3.20.3 AS build-backend
|
FROM --platform="$BUILDPLATFORM" alpine:3.21.0 AS build-backend
|
||||||
SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
|
SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
|
||||||
COPY backend /app
|
|
||||||
COPY global/certbot-dns-plugins.json /app/certbot-dns-plugins.json
|
|
||||||
ARG NODE_ENV=production \
|
ARG NODE_ENV=production \
|
||||||
TARGETARCH
|
TARGETARCH
|
||||||
|
COPY backend /app
|
||||||
|
COPY global/certbot-dns-plugins.json /app/certbot-dns-plugins.json
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
RUN apk upgrade --no-cache -a && \
|
RUN apk upgrade --no-cache -a && \
|
||||||
apk add --no-cache ca-certificates nodejs yarn file && \
|
apk add --no-cache ca-certificates nodejs yarn file && \
|
||||||
|
@ -37,7 +38,7 @@ RUN apk upgrade --no-cache -a && \
|
||||||
fi && \
|
fi && \
|
||||||
yarn cache clean --all && \
|
yarn cache clean --all && \
|
||||||
clean-modules --yes
|
clean-modules --yes
|
||||||
FROM alpine:3.20.3 AS strip-backend
|
FROM alpine:3.21.0 AS strip-backend
|
||||||
COPY --from=build-backend /app /app
|
COPY --from=build-backend /app /app
|
||||||
RUN apk upgrade --no-cache -a && \
|
RUN apk upgrade --no-cache -a && \
|
||||||
apk add --no-cache ca-certificates binutils file && \
|
apk add --no-cache ca-certificates binutils file && \
|
||||||
|
@ -45,7 +46,7 @@ RUN apk upgrade --no-cache -a && \
|
||||||
find /app/node_modules -name "*.node" -type f -exec file {} \;
|
find /app/node_modules -name "*.node" -type f -exec file {} \;
|
||||||
|
|
||||||
|
|
||||||
FROM --platform="$BUILDPLATFORM" alpine:3.20.3 AS crowdsec
|
FROM --platform="$BUILDPLATFORM" alpine:3.21.0 AS crowdsec
|
||||||
SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
|
SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
|
||||||
ARG CSNB_VER=v1.0.8
|
ARG CSNB_VER=v1.0.8
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
|
@ -71,27 +72,16 @@ RUN apk upgrade --no-cache -a && \
|
||||||
sed -i "s|APPSEC_PROCESS_TIMEOUT=.*|APPSEC_PROCESS_TIMEOUT=10000|g" /src/crowdsec-nginx-bouncer/lua-mod/config_example.conf
|
sed -i "s|APPSEC_PROCESS_TIMEOUT=.*|APPSEC_PROCESS_TIMEOUT=10000|g" /src/crowdsec-nginx-bouncer/lua-mod/config_example.conf
|
||||||
|
|
||||||
|
|
||||||
FROM zoeyvid/nginx-quic:356-python
|
FROM zoeyvid/nginx-quic:368-python
|
||||||
SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
|
SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
|
||||||
|
ARG CRS_VER=v4.9.0
|
||||||
|
COPY rootfs /
|
||||||
|
COPY --from=strip-backend /app /app
|
||||||
|
|
||||||
COPY rootfs /
|
|
||||||
COPY --from=zoeyvid/certbot-docker:65 /usr/local /usr/local
|
|
||||||
COPY --from=zoeyvid/curl-quic:427 /usr/local/bin/curl /usr/local/bin/curl
|
|
||||||
|
|
||||||
COPY --from=strip-backend /app /app
|
|
||||||
COPY --from=frontend /app/dist /html/frontend
|
|
||||||
|
|
||||||
COPY --from=crowdsec /src/crowdsec-nginx-bouncer/lua-mod/lib/plugins /usr/local/nginx/lib/lua/plugins
|
|
||||||
COPY --from=crowdsec /src/crowdsec-nginx-bouncer/lua-mod/lib/crowdsec.lua /usr/local/nginx/lib/lua/crowdsec.lua
|
|
||||||
COPY --from=crowdsec /src/crowdsec-nginx-bouncer/lua-mod/templates/ban.html /usr/local/nginx/conf/conf.d/include/ban.html
|
|
||||||
COPY --from=crowdsec /src/crowdsec-nginx-bouncer/lua-mod/templates/captcha.html /usr/local/nginx/conf/conf.d/include/captcha.html
|
|
||||||
COPY --from=crowdsec /src/crowdsec-nginx-bouncer/lua-mod/config_example.conf /usr/local/nginx/conf/conf.d/include/crowdsec.conf
|
|
||||||
COPY --from=crowdsec /src/crowdsec-nginx-bouncer/nginx/crowdsec_nginx.conf /usr/local/nginx/conf/conf.d/include/crowdsec_nginx.conf
|
|
||||||
|
|
||||||
ARG CRS_VER=v4.8.0
|
|
||||||
RUN apk upgrade --no-cache -a && \
|
RUN apk upgrade --no-cache -a && \
|
||||||
apk add --no-cache ca-certificates tzdata tini \
|
apk add --no-cache ca-certificates tzdata tini curl \
|
||||||
bash nano nodejs \
|
nodejs \
|
||||||
|
bash nano \
|
||||||
logrotate goaccess fcgi \
|
logrotate goaccess fcgi \
|
||||||
lua5.1-lzlib lua5.1-socket \
|
lua5.1-lzlib lua5.1-socket \
|
||||||
coreutils grep findutils jq shadow su-exec \
|
coreutils grep findutils jq shadow su-exec \
|
||||||
|
@ -116,6 +106,15 @@ RUN apk upgrade --no-cache -a && \
|
||||||
ln -s /app/sqlite-vaccum.js /usr/local/bin/sqlite-vaccum.js && \
|
ln -s /app/sqlite-vaccum.js /usr/local/bin/sqlite-vaccum.js && \
|
||||||
ln -s /app/index.js /usr/local/bin/index.js
|
ln -s /app/index.js /usr/local/bin/index.js
|
||||||
|
|
||||||
|
COPY --from=crowdsec /src/crowdsec-nginx-bouncer/nginx/crowdsec_nginx.conf /usr/local/nginx/conf/conf.d/include/crowdsec_nginx.conf
|
||||||
|
COPY --from=crowdsec /src/crowdsec-nginx-bouncer/lua-mod/config_example.conf /usr/local/nginx/conf/conf.d/include/crowdsec.conf
|
||||||
|
COPY --from=crowdsec /src/crowdsec-nginx-bouncer/lua-mod/templates/captcha.html /usr/local/nginx/conf/conf.d/include/captcha.html
|
||||||
|
COPY --from=crowdsec /src/crowdsec-nginx-bouncer/lua-mod/templates/ban.html /usr/local/nginx/conf/conf.d/include/ban.html
|
||||||
|
COPY --from=crowdsec /src/crowdsec-nginx-bouncer/lua-mod/lib/crowdsec.lua /usr/local/nginx/lib/lua/crowdsec.lua
|
||||||
|
COPY --from=crowdsec /src/crowdsec-nginx-bouncer/lua-mod/lib/plugins /usr/local/nginx/lib/lua/plugins
|
||||||
|
COPY --from=frontend /app/dist /html/frontend
|
||||||
|
COPY --from=zoeyvid/certbot-docker:69 /usr/local /usr/local
|
||||||
|
|
||||||
LABEL com.centurylinklabs.watchtower.monitor-only="true"
|
LABEL com.centurylinklabs.watchtower.monitor-only="true"
|
||||||
ENV NODE_ENV=production \
|
ENV NODE_ENV=production \
|
||||||
NODE_CONFIG_DIR=/data/etc/npm \
|
NODE_CONFIG_DIR=/data/etc/npm \
|
||||||
|
|
|
@ -4,16 +4,16 @@
|
||||||
"description": "A beautiful interface for creating Nginx endpoints",
|
"description": "A beautiful interface for creating Nginx endpoints",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@apidevtools/json-schema-ref-parser": "11.7.2",
|
"@apidevtools/json-schema-ref-parser": "11.7.3",
|
||||||
"apache-md5": "1.1.8",
|
"apache-md5": "1.1.8",
|
||||||
"ajv": "8.17.1",
|
"ajv": "8.17.1",
|
||||||
"archiver": "7.0.1",
|
"archiver": "7.0.1",
|
||||||
"batchflow": "0.4.0",
|
"batchflow": "0.4.0",
|
||||||
"bcrypt": "5.1.1",
|
"bcrypt": "5.1.1",
|
||||||
"better-sqlite3": "11.5.0",
|
"better-sqlite3": "11.7.0",
|
||||||
"body-parser": "2.0.2",
|
"body-parser": "2.0.2",
|
||||||
"compression": "1.7.5",
|
"compression": "1.7.5",
|
||||||
"express": "4.21.1",
|
"express": "4.21.2",
|
||||||
"express-fileupload": "1.5.1",
|
"express-fileupload": "1.5.1",
|
||||||
"gravatar": "1.8.2",
|
"gravatar": "1.8.2",
|
||||||
"jsonwebtoken": "9.0.2",
|
"jsonwebtoken": "9.0.2",
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
"liquidjs": "10.19.0",
|
"liquidjs": "10.19.0",
|
||||||
"lodash": "4.17.21",
|
"lodash": "4.17.21",
|
||||||
"moment": "2.30.1",
|
"moment": "2.30.1",
|
||||||
"mysql2": "3.11.4",
|
"mysql2": "3.11.5",
|
||||||
"node-rsa": "1.1.1",
|
"node-rsa": "1.1.1",
|
||||||
"objection": "3.1.5",
|
"objection": "3.1.5",
|
||||||
"path": "0.12.7",
|
"path": "0.12.7",
|
||||||
|
@ -31,12 +31,12 @@
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@apidevtools/swagger-parser": "10.1.0",
|
"@apidevtools/swagger-parser": "10.1.0",
|
||||||
"@eslint/js": "9.15.0",
|
"@eslint/js": "9.17.0",
|
||||||
"eslint": "9.15.0",
|
"eslint": "9.17.0",
|
||||||
"eslint-config-prettier": "9.1.0",
|
"eslint-config-prettier": "9.1.0",
|
||||||
"eslint-plugin-prettier": "5.2.1",
|
"eslint-plugin-prettier": "5.2.1",
|
||||||
"globals": "15.12.0",
|
"globals": "15.13.0",
|
||||||
"prettier": "3.3.3"
|
"prettier": "3.4.2"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"validate-schema": "node validate-schema.js"
|
"validate-schema": "node validate-schema.js"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
listen unix:/run/nginx-{{ id }}.sock;
|
listen unix:/run/nginx-{{ id }}.sock;
|
||||||
|
|
||||||
listen 80;
|
listen 80;
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
"proxy-host-count": "{count} {count, select, 1{Proxy Host} other{Proxy Hosts}}",
|
"proxy-host-count": "{count} {count, select, 1{Proxy Host} other{Proxy Hosts}}",
|
||||||
"public": "Öffentlicher Zugang",
|
"public": "Öffentlicher Zugang",
|
||||||
"public-sub": "Keine Zugangsbeschränkungen",
|
"public-sub": "Keine Zugangsbeschränkungen",
|
||||||
"satisfy": "Zufriedenstellen",
|
"satisfy": "Benötigt",
|
||||||
"satisfy-any": "Zugriff zulassen, wenn mindestens eine Autorisierungsmethode erfolgreich war",
|
"satisfy-any": "Zugriff zulassen, wenn mindestens eine Autorisierungsmethode erfolgreich war",
|
||||||
"search": "Suche Zugriffslisten...",
|
"search": "Suche Zugriffslisten...",
|
||||||
"title": "Zugriffslisten"
|
"title": "Zugriffslisten"
|
||||||
|
@ -188,7 +188,7 @@
|
||||||
"str": {
|
"str": {
|
||||||
"access": "Zugang",
|
"access": "Zugang",
|
||||||
"all": "Alle",
|
"all": "Alle",
|
||||||
"any": "Jede",
|
"any": "Eins",
|
||||||
"cancel": "Abbrechen",
|
"cancel": "Abbrechen",
|
||||||
"choose-file": "Datei auswählen",
|
"choose-file": "Datei auswählen",
|
||||||
"close": "Schließen",
|
"close": "Schließen",
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
"mini-css-extract-plugin": "1.6.2",
|
"mini-css-extract-plugin": "1.6.2",
|
||||||
"moment": "2.30.1",
|
"moment": "2.30.1",
|
||||||
"node-sass": "9.0.0",
|
"node-sass": "9.0.0",
|
||||||
"nodemon": "3.1.7",
|
"nodemon": "3.1.9",
|
||||||
"numeral": "2.0.6",
|
"numeral": "2.0.6",
|
||||||
"sass-loader": "10.5.2",
|
"sass-loader": "10.5.2",
|
||||||
"style-loader": "4.0.0",
|
"style-loader": "4.0.0",
|
||||||
|
|
|
@ -19,7 +19,7 @@ http {
|
||||||
log_not_found off;
|
log_not_found off;
|
||||||
|
|
||||||
include mime.types;
|
include mime.types;
|
||||||
default_type text/plain;
|
default_type application/octet-stream;
|
||||||
lua_package_path "/usr/local/nginx/lib/lua/?.lua;;";
|
lua_package_path "/usr/local/nginx/lib/lua/?.lua;;";
|
||||||
|
|
||||||
server_tokens off;
|
server_tokens off;
|
||||||
|
|
Loading…
Reference in a new issue