diff options
| author | dakkar <dakkar@thenautilus.net> | 2025-02-10 10:40:06 +0000 |
|---|---|---|
| committer | dakkar <dakkar@thenautilus.net> | 2025-02-10 10:40:06 +0000 |
| commit | 427d09e643a554a6711b9349f8a6bbc3499dcfb7 (patch) | |
| tree | ff598de275fd7de3877e56a3419c436646b9f8b1 /packages/backend/src | |
| parent | merge: Rework rate limit factors and add caching (resolves #884) (!884) (diff) | |
| download | sharkey-427d09e643a554a6711b9349f8a6bbc3499dcfb7.tar.gz sharkey-427d09e643a554a6711b9349f8a6bbc3499dcfb7.tar.bz2 sharkey-427d09e643a554a6711b9349f8a6bbc3499dcfb7.zip | |
make the listen address configurable - fixes #927
sadly `fastify.listen` doesn't support passing more than 1 address
Diffstat (limited to 'packages/backend/src')
| -rw-r--r-- | packages/backend/src/boot/master.ts | 4 | ||||
| -rw-r--r-- | packages/backend/src/config.ts | 5 | ||||
| -rw-r--r-- | packages/backend/src/server/ServerService.ts | 2 |
3 files changed, 8 insertions, 3 deletions
diff --git a/packages/backend/src/boot/master.ts b/packages/backend/src/boot/master.ts index 355e095c12..80ea1b7431 100644 --- a/packages/backend/src/boot/master.ts +++ b/packages/backend/src/boot/master.ts @@ -18,6 +18,7 @@ import type { Config } from '@/config.js'; import { showMachineInfo } from '@/misc/show-machine-info.js'; import { envOption } from '@/env.js'; import { jobQueue, server } from './common.js'; +import * as net from 'node:net'; const _filename = fileURLToPath(import.meta.url); const _dirname = dirname(_filename); @@ -126,7 +127,8 @@ export async function masterMain() { if (envOption.onlyQueue) { bootLogger.succ('Queue started', null, true); } else { - bootLogger.succ(config.socket ? `Now listening on socket ${config.socket} on ${config.url}` : `Now listening on port ${config.port} on ${config.url}`, null, true); + const addressString = net.isIPv6(config.address) ? `[${config.address}]` : config.address; + bootLogger.succ(config.socket ? `Now listening on socket ${config.socket} on ${config.url}` : `Now listening on ${addressString}:${config.port} on ${config.url}`, null, true); } } diff --git a/packages/backend/src/config.ts b/packages/backend/src/config.ts index 4af1140f36..1a3a916624 100644 --- a/packages/backend/src/config.ts +++ b/packages/backend/src/config.ts @@ -27,6 +27,7 @@ type RedisOptionsSource = Partial<RedisOptions> & { type Source = { url?: string; port?: number; + address?: string; socket?: string; chmodSocket?: string; disableHsts?: boolean; @@ -123,6 +124,7 @@ type Source = { export type Config = { url: string; port: number; + address: string; socket: string | undefined; chmodSocket: string | undefined; disableHsts: boolean | undefined; @@ -288,6 +290,7 @@ export function loadConfig(): Config { setupPassword: config.setupPassword, url: url.origin, port: config.port ?? parseInt(process.env.PORT ?? '3000', 10), + address: config.address ?? '0.0.0.0', socket: config.socket, chmodSocket: config.chmodSocket, disableHsts: config.disableHsts, @@ -488,7 +491,7 @@ function applyEnvOverrides(config: Source) { // these are all the settings that can be overridden - _apply_top([['url', 'port', 'socket', 'chmodSocket', 'disableHsts', 'id', 'dbReplications']]); + _apply_top([['url', 'port', 'address', 'socket', 'chmodSocket', 'disableHsts', 'id', 'dbReplications']]); _apply_top(['db', ['host', 'port', 'db', 'user', 'pass', 'disableCache']]); _apply_top(['dbSlaves', Array.from((config.dbSlaves ?? []).keys()), ['host', 'port', 'db', 'user', 'pass']]); _apply_top([ diff --git a/packages/backend/src/server/ServerService.ts b/packages/backend/src/server/ServerService.ts index 43a2a3a2b0..690fdcfe29 100644 --- a/packages/backend/src/server/ServerService.ts +++ b/packages/backend/src/server/ServerService.ts @@ -262,7 +262,7 @@ export class ServerService implements OnApplicationShutdown { } }); } else { - fastify.listen({ port: this.config.port, host: '0.0.0.0' }); + fastify.listen({ port: this.config.port, host: this.config.address }); } await fastify.ready(); |