Update sing-box to 1.13.18
Build and Deploy Gateway / build-and-push (push) Successful in 19s
Build and Deploy Gateway / deploy (push) Successful in 13s

This commit is contained in:
2026-08-09 13:05:51 +03:00
parent f40221969b
commit 5da9686c27
13 changed files with 28 additions and 13 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ CLIENT_UI_PORT=3456
CLIENT_PROXY_PORT=8082 CLIENT_PROXY_PORT=8082
HARBOR_GATEWAY_CONTROL_PORT=3456 HARBOR_GATEWAY_CONTROL_PORT=3456
BASE_IMAGE=debian:bookworm-slim BASE_IMAGE=debian:bookworm-slim
SINGBOX_VERSION=1.12.13 SINGBOX_VERSION=1.13.18
INSTALL_RUNTIME_DEPS=true INSTALL_RUNTIME_DEPS=true
INSTALL_SINGBOX=true INSTALL_SINGBOX=true
PROXY_PORT=8080 PROXY_PORT=8080
+1 -1
View File
@@ -12,7 +12,7 @@ env:
RUNTIME_BASE_SOURCE_IMAGE: mirror.gcr.io/library/debian:bookworm-slim RUNTIME_BASE_SOURCE_IMAGE: mirror.gcr.io/library/debian:bookworm-slim
APT_MIRROR: http://mirror.yandex.ru/debian APT_MIRROR: http://mirror.yandex.ru/debian
APT_SECURITY_MIRROR: http://mirror.yandex.ru/debian-security APT_SECURITY_MIRROR: http://mirror.yandex.ru/debian-security
SINGBOX_VERSION: 1.12.13 SINGBOX_VERSION: 1.13.18
jobs: jobs:
build-and-push: build-and-push:
+1 -1
View File
@@ -13,7 +13,7 @@ COPY monitoring/grafana/harbor-gateway.json ./monitoring/grafana/harbor-gateway.
RUN npm run build:production RUN npm run build:production
FROM ${BASE_IMAGE} FROM ${BASE_IMAGE}
ARG SINGBOX_VERSION=1.12.13 ARG SINGBOX_VERSION=1.13.18
ARG INSTALL_RUNTIME_DEPS=true ARG INSTALL_RUNTIME_DEPS=true
ARG INSTALL_SINGBOX=true ARG INSTALL_SINGBOX=true
+1 -1
View File
@@ -13,7 +13,7 @@ COPY monitoring/grafana/harbor-gateway.json ./monitoring/grafana/harbor-gateway.
RUN npm run build:production RUN npm run build:production
FROM ${RUNTIME_IMAGE} FROM ${RUNTIME_IMAGE}
ARG SINGBOX_VERSION=1.12.13 ARG SINGBOX_VERSION=1.13.18
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates curl dumb-init nodejs tar \ && apt-get install -y --no-install-recommends ca-certificates curl dumb-init nodejs tar \
+1 -1
View File
@@ -1,6 +1,6 @@
ARG BASE_IMAGE=mirror.gcr.io/library/debian:bookworm-slim ARG BASE_IMAGE=mirror.gcr.io/library/debian:bookworm-slim
FROM ${BASE_IMAGE} FROM ${BASE_IMAGE}
ARG SINGBOX_VERSION=1.12.13 ARG SINGBOX_VERSION=1.13.18
ARG APT_MIRROR=http://mirror.yandex.ru/debian ARG APT_MIRROR=http://mirror.yandex.ru/debian
ARG APT_SECURITY_MIRROR=http://mirror.yandex.ru/debian-security ARG APT_SECURITY_MIRROR=http://mirror.yandex.ru/debian-security
ARG HTTP_PROXY ARG HTTP_PROXY
+1 -1
View File
@@ -4,7 +4,7 @@ services:
context: . context: .
dockerfile: Dockerfile.client dockerfile: Dockerfile.client
args: args:
SINGBOX_VERSION: ${SINGBOX_VERSION:-1.12.13} SINGBOX_VERSION: ${SINGBOX_VERSION:-1.13.18}
container_name: harbor-connect container_name: harbor-connect
environment: environment:
APP_MODE: client APP_MODE: client
+1 -1
View File
@@ -5,7 +5,7 @@ x-gateway-image: &gateway-image
dockerfile: Dockerfile dockerfile: Dockerfile
args: args:
BASE_IMAGE: ${BASE_IMAGE:-debian:bookworm-slim} BASE_IMAGE: ${BASE_IMAGE:-debian:bookworm-slim}
SINGBOX_VERSION: ${SINGBOX_VERSION:-1.12.13} SINGBOX_VERSION: ${SINGBOX_VERSION:-1.13.18}
INSTALL_RUNTIME_DEPS: ${INSTALL_RUNTIME_DEPS:-true} INSTALL_RUNTIME_DEPS: ${INSTALL_RUNTIME_DEPS:-true}
INSTALL_SINGBOX: ${INSTALL_SINGBOX:-true} INSTALL_SINGBOX: ${INSTALL_SINGBOX:-true}
+1 -1
View File
@@ -12,7 +12,7 @@ GATEWAY_IMAGE="${GATEWAY_IMAGE:-${IMAGE_NAME}:${IMAGE_TAG}}"
BASE_IMAGE="${BASE_IMAGE:-vpn-proxy-runtime-base:bookworm-slim}" BASE_IMAGE="${BASE_IMAGE:-vpn-proxy-runtime-base:bookworm-slim}"
NODE_BUILD_IMAGE="${NODE_BUILD_IMAGE:-node:20.19-alpine}" NODE_BUILD_IMAGE="${NODE_BUILD_IMAGE:-node:20.19-alpine}"
RUNTIME_BASE_SOURCE_IMAGE="${RUNTIME_BASE_SOURCE_IMAGE:-mirror.gcr.io/library/debian:bookworm-slim}" RUNTIME_BASE_SOURCE_IMAGE="${RUNTIME_BASE_SOURCE_IMAGE:-mirror.gcr.io/library/debian:bookworm-slim}"
SINGBOX_VERSION="${SINGBOX_VERSION:-1.12.13}" SINGBOX_VERSION="${SINGBOX_VERSION:-1.13.18}"
DOCKER_BUILD_PULL="${DOCKER_BUILD_PULL:-false}" DOCKER_BUILD_PULL="${DOCKER_BUILD_PULL:-false}"
INSTALL_RUNTIME_DEPS="${INSTALL_RUNTIME_DEPS:-false}" INSTALL_RUNTIME_DEPS="${INSTALL_RUNTIME_DEPS:-false}"
INSTALL_SINGBOX="${INSTALL_SINGBOX:-false}" INSTALL_SINGBOX="${INSTALL_SINGBOX:-false}"
+1 -1
View File
@@ -3,7 +3,7 @@ set -euo pipefail
BASE_IMAGE="${BASE_IMAGE:-mirror.gcr.io/library/debian:bookworm-slim}" BASE_IMAGE="${BASE_IMAGE:-mirror.gcr.io/library/debian:bookworm-slim}"
RUNTIME_BASE_IMAGE="${RUNTIME_BASE_IMAGE:-vpn-proxy-runtime-base:bookworm-slim}" RUNTIME_BASE_IMAGE="${RUNTIME_BASE_IMAGE:-vpn-proxy-runtime-base:bookworm-slim}"
SINGBOX_VERSION="${SINGBOX_VERSION:-1.12.13}" SINGBOX_VERSION="${SINGBOX_VERSION:-1.13.18}"
APT_MIRROR="${APT_MIRROR:-http://mirror.yandex.ru/debian}" APT_MIRROR="${APT_MIRROR:-http://mirror.yandex.ru/debian}"
APT_SECURITY_MIRROR="${APT_SECURITY_MIRROR:-http://mirror.yandex.ru/debian-security}" APT_SECURITY_MIRROR="${APT_SECURITY_MIRROR:-http://mirror.yandex.ru/debian-security}"
HTTP_PROXY="${HTTP_PROXY:-$(docker info 2>/dev/null | awk -F': ' '/HTTP Proxy:/ {print $2; exit}')}" HTTP_PROXY="${HTTP_PROXY:-$(docker info 2>/dev/null | awk -F': ' '/HTTP Proxy:/ {print $2; exit}')}"
-1
View File
@@ -111,7 +111,6 @@ export function buildGatewayConfig(subscriptionConfig: unknown, selectedTag: unk
outbounds: [ outbounds: [
vpnOutbound, vpnOutbound,
{ type: 'direct', tag: 'direct' }, { type: 'direct', tag: 'direct' },
{ type: 'block', tag: 'block' },
], ],
route: { route: {
rule_set: [], rule_set: [],
+2 -2
View File
@@ -1,7 +1,7 @@
export const HARBOR_VERSIONS = Object.freeze({ export const HARBOR_VERSIONS = Object.freeze({
macClient: '0.21.1', macClient: '0.21.2',
gatewayClient: '0.22.0', gatewayClient: '0.22.0',
gatewayBackend: '0.22.2', gatewayBackend: '0.22.3',
}); });
export interface ParsedVersion { export interface ParsedVersion {
+16
View File
@@ -154,3 +154,19 @@ test('production paths use only the compiled dispatcher', () => {
assert.match(legacyBuild, /npm run build:production && docker build/); assert.match(legacyBuild, /npm run build:production && docker build/);
assert.match(dockerignore, /^dist$/m); assert.match(dockerignore, /^dist$/m);
}); });
test('every shipped build defaults to sing-box 1.13.18', () => {
for (const file of [
'.env.example',
'.gitea/workflows/gateway-build.yml',
'Dockerfile',
'Dockerfile.client',
'Dockerfile.runtime-base',
'docker-compose.client.yml',
'docker-compose.gateway.yml',
'scripts/build-on-107-deploy-111.sh',
'scripts/build-runtime-base.sh',
]) {
assert.match(fs.readFileSync(path.join(root, file), 'utf8'), /SINGBOX_VERSION[^\n]*1\.13\.18/);
}
});
+1 -1
View File
@@ -70,5 +70,5 @@ test('client keeps its local proxy but routes directly when Harbor Gateway is ah
{ inbound: ['mixed-in'], outbound: 'direct' }, { inbound: ['mixed-in'], outbound: 'direct' },
]); ]);
assert.equal(config.route.final, 'direct'); assert.equal(config.route.final, 'direct');
assert.deepEqual(config.outbounds.map((outbound) => outbound.tag), ['test-vpn', 'direct', 'block']); assert.deepEqual(config.outbounds.map((outbound) => outbound.tag), ['test-vpn', 'direct']);
}); });