mirror of
https://github.com/wu736139669/hapi.git
synced 2026-08-05 06:24:37 +00:00
Remove env-based tunnel toggle
This commit is contained in:
@@ -17,7 +17,6 @@ export interface ServerSettings {
|
||||
webappPort: number
|
||||
webappUrl: string
|
||||
corsOrigins: string[]
|
||||
tunnelEnabled: boolean
|
||||
}
|
||||
|
||||
export interface ServerSettingsResult {
|
||||
@@ -29,7 +28,6 @@ export interface ServerSettingsResult {
|
||||
webappPort: 'env' | 'file' | 'default'
|
||||
webappUrl: 'env' | 'file' | 'default'
|
||||
corsOrigins: 'env' | 'file' | 'default'
|
||||
tunnelEnabled: 'env' | 'file' | 'default'
|
||||
}
|
||||
savedToFile: boolean
|
||||
}
|
||||
@@ -93,7 +91,6 @@ export async function loadServerSettings(dataDir: string): Promise<ServerSetting
|
||||
webappPort: 'default',
|
||||
webappUrl: 'default',
|
||||
corsOrigins: 'default',
|
||||
tunnelEnabled: 'default',
|
||||
}
|
||||
// telegramBotToken: env > file > null
|
||||
let telegramBotToken: string | null = null
|
||||
@@ -185,16 +182,6 @@ export async function loadServerSettings(dataDir: string): Promise<ServerSetting
|
||||
corsOrigins = deriveCorsOrigins(webappUrl)
|
||||
}
|
||||
|
||||
// tunnelEnabled: env (HAPI_RELAY) > file > false (default disabled)
|
||||
let tunnelEnabled = false
|
||||
if (process.env.HAPI_RELAY !== undefined) {
|
||||
tunnelEnabled = process.env.HAPI_RELAY === 'true' || process.env.HAPI_RELAY === '1'
|
||||
sources.tunnelEnabled = 'env'
|
||||
} else if (settings.tunnelEnabled !== undefined) {
|
||||
tunnelEnabled = settings.tunnelEnabled
|
||||
sources.tunnelEnabled = 'file'
|
||||
}
|
||||
|
||||
// Save settings if any new values were added
|
||||
if (needsSave) {
|
||||
await writeSettings(settingsFile, settings)
|
||||
@@ -208,7 +195,6 @@ export async function loadServerSettings(dataDir: string): Promise<ServerSetting
|
||||
webappPort,
|
||||
webappUrl,
|
||||
corsOrigins,
|
||||
tunnelEnabled,
|
||||
},
|
||||
sources,
|
||||
savedToFile: needsSave,
|
||||
|
||||
@@ -18,7 +18,6 @@ export interface Settings {
|
||||
webappPort?: number
|
||||
webappUrl?: string
|
||||
corsOrigins?: string[]
|
||||
tunnelEnabled?: boolean
|
||||
}
|
||||
|
||||
export function getSettingsFile(dataDir: string): string {
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
* - WEBAPP_PORT: Port for Mini App HTTP server (default: 3006)
|
||||
* - WEBAPP_URL: Public URL for Telegram Mini App
|
||||
* - CORS_ORIGINS: Comma-separated CORS origins
|
||||
* - HAPI_RELAY: Enable/disable tunnel (default: false)
|
||||
* - HAPI_RELAY_API: Relay API domain for tunwg (default: relay.hapi.run)
|
||||
* - HAPI_RELAY_AUTH: Relay auth key for tunwg (default: hapi)
|
||||
* - HAPI_RELAY_FORCE_TCP: Force TCP relay mode when UDP is unavailable (true/1)
|
||||
@@ -38,7 +37,6 @@ export interface ConfigSources {
|
||||
webappUrl: ConfigSource
|
||||
corsOrigins: ConfigSource
|
||||
cliApiToken: 'env' | 'file' | 'generated'
|
||||
tunnelEnabled: ConfigSource
|
||||
}
|
||||
|
||||
class Configuration {
|
||||
@@ -81,9 +79,6 @@ class Configuration {
|
||||
/** Allowed CORS origins for Mini App + Socket.IO (comma-separated env override) */
|
||||
public readonly corsOrigins: string[]
|
||||
|
||||
/** Whether tunnel is enabled (default: true) */
|
||||
public readonly tunnelEnabled: boolean
|
||||
|
||||
/** Sources of each configuration value */
|
||||
public readonly sources: ConfigSources
|
||||
|
||||
@@ -106,7 +101,6 @@ class Configuration {
|
||||
this.webappPort = serverSettings.webappPort
|
||||
this.miniAppUrl = serverSettings.webappUrl
|
||||
this.corsOrigins = serverSettings.corsOrigins
|
||||
this.tunnelEnabled = serverSettings.tunnelEnabled
|
||||
|
||||
// CLI API token - will be set by _setCliApiToken() before create() returns
|
||||
this.cliApiToken = ''
|
||||
|
||||
+26
-7
@@ -41,6 +41,25 @@ function formatSource(source: ConfigSource | 'generated'): string {
|
||||
}
|
||||
}
|
||||
|
||||
type RelayFlagSource = 'default' | '--relay' | '--no-relay'
|
||||
|
||||
function resolveRelayFlag(args: string[]): { enabled: boolean; source: RelayFlagSource } {
|
||||
let enabled = false
|
||||
let source: RelayFlagSource = 'default'
|
||||
|
||||
for (const arg of args) {
|
||||
if (arg === '--relay') {
|
||||
enabled = true
|
||||
source = '--relay'
|
||||
} else if (arg === '--no-relay') {
|
||||
enabled = false
|
||||
source = '--no-relay'
|
||||
}
|
||||
}
|
||||
|
||||
return { enabled, source }
|
||||
}
|
||||
|
||||
let syncEngine: SyncEngine | null = null
|
||||
let happyBot: HappyBot | null = null
|
||||
let webServer: BunServer<WebSocketData> | null = null
|
||||
@@ -54,7 +73,8 @@ async function main() {
|
||||
|
||||
// Load configuration (async - loads from env/file with persistence)
|
||||
const config = await createConfiguration()
|
||||
const relayApiDomain = process.env.HAPI_RELAY_API || null
|
||||
const relayApiDomain = process.env.HAPI_RELAY_API || 'relay.hapi.run'
|
||||
const relayFlag = resolveRelayFlag(process.argv)
|
||||
|
||||
// Display CLI API token information
|
||||
if (config.cliApiTokenIsNew) {
|
||||
@@ -88,11 +108,10 @@ async function main() {
|
||||
}
|
||||
|
||||
// Display tunnel status
|
||||
if (config.tunnelEnabled) {
|
||||
const apiDomain = relayApiDomain || 'relay.hapi.run'
|
||||
console.log(`[Server] Tunnel: enabled (${formatSource(config.sources.tunnelEnabled)}), API: ${apiDomain}`)
|
||||
if (relayFlag.enabled) {
|
||||
console.log(`[Server] Tunnel: enabled (${relayFlag.source}), API: ${relayApiDomain}`)
|
||||
} else {
|
||||
console.log(`[Server] Tunnel: disabled (${formatSource(config.sources.tunnelEnabled)})`)
|
||||
console.log(`[Server] Tunnel: disabled (${relayFlag.source})`)
|
||||
}
|
||||
|
||||
const store = new Store(config.dbPath)
|
||||
@@ -158,7 +177,7 @@ async function main() {
|
||||
|
||||
// Initialize tunnel AFTER web server is ready
|
||||
let tunnelUrl: string | null = null
|
||||
if (config.tunnelEnabled) {
|
||||
if (relayFlag.enabled) {
|
||||
tunnelManager = new TunnelManager({
|
||||
localPort: config.webappPort,
|
||||
enabled: true,
|
||||
@@ -171,7 +190,7 @@ async function main() {
|
||||
tunnelUrl = await tunnelManager.start()
|
||||
} catch (error) {
|
||||
console.error('[Tunnel] Failed to start:', error instanceof Error ? error.message : error)
|
||||
console.log('[Tunnel] Server continuing without tunnel. Use --no-relay to disable.')
|
||||
console.log('[Tunnel] Server continuing without tunnel. Restart without --relay to disable.')
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user