@@ -303,6 +303,65 @@ if [ "$SKIP_INSTALLATION" = "false" ]; then
303303 return 0
304304 fi
305305
306+ # Ask if domain name is needed
307+ bilingual " 是否需要使用域名访问?" " Do you need to use a domain name for access?"
308+ read -p " $( bilingual " 请输入 [y/n]: " " Please enter [y/n]: " ) " USE_DOMAIN
309+
310+ if [[ " $USE_DOMAIN " =~ ^[Yy]$ ]]; then
311+ read -p " $( bilingual " 请输入域名地址(不含http/https前缀): " " Please enter domain address (without http/https prefix): " ) " DOMAIN_ADDRESS
312+
313+ if [ -n " $DOMAIN_ADDRESS " ]; then
314+ bilingual " 正在使用域名: $DOMAIN_ADDRESS 更新环境变量..." " Updating environment variables with domain: $DOMAIN_ADDRESS ..."
315+
316+ # Update MAGIC_SOCKET_BASE_URL and MAGIC_SERVICE_BASE_URL
317+ if [ " $( uname -s) " == " Darwin" ]; then
318+ # macOS version
319+ sed -i ' ' " s|^MAGIC_SOCKET_BASE_URL=ws://localhost:9502|MAGIC_SOCKET_BASE_URL=ws://$DOMAIN_ADDRESS :9502|" .env
320+ sed -i ' ' " s|^MAGIC_SERVICE_BASE_URL=http://localhost:9501|MAGIC_SERVICE_BASE_URL=http://$DOMAIN_ADDRESS :9501|" .env
321+ # Update FILE_LOCAL_READ_HOST and FILE_LOCAL_WRITE_HOST
322+ sed -i ' ' " s|^FILE_LOCAL_READ_HOST=http://127.0.0.1/files|FILE_LOCAL_READ_HOST=http://$DOMAIN_ADDRESS /files|" .env
323+ sed -i ' ' " s|^FILE_LOCAL_WRITE_HOST=http://127.0.0.1|FILE_LOCAL_WRITE_HOST=http://$DOMAIN_ADDRESS |" .env
324+ else
325+ # Linux version
326+ sed -i " s|^MAGIC_SOCKET_BASE_URL=ws://localhost:9502|MAGIC_SOCKET_BASE_URL=ws://$DOMAIN_ADDRESS :9502|" .env
327+ sed -i " s|^MAGIC_SERVICE_BASE_URL=http://localhost:9501|MAGIC_SERVICE_BASE_URL=http://$DOMAIN_ADDRESS :9501|" .env
328+ # Update FILE_LOCAL_READ_HOST and FILE_LOCAL_WRITE_HOST
329+ sed -i " s|^FILE_LOCAL_READ_HOST=http://127.0.0.1/files|FILE_LOCAL_READ_HOST=http://$DOMAIN_ADDRESS /files|" .env
330+ sed -i " s|^FILE_LOCAL_WRITE_HOST=http://127.0.0.1|FILE_LOCAL_WRITE_HOST=http://$DOMAIN_ADDRESS |" .env
331+ fi
332+
333+ bilingual " 环境变量已更新:" " Environment variables updated:"
334+ echo " MAGIC_SOCKET_BASE_URL=ws://$DOMAIN_ADDRESS :9502"
335+ echo " MAGIC_SERVICE_BASE_URL=http://$DOMAIN_ADDRESS :9501"
336+ echo " FILE_LOCAL_READ_HOST=http://$DOMAIN_ADDRESS /files"
337+ echo " FILE_LOCAL_WRITE_HOST=http://$DOMAIN_ADDRESS "
338+
339+ # 更新Caddyfile中的域名
340+ bilingual " 更新Caddyfile配置..." " Updating Caddyfile configuration..."
341+
342+ # 检查Caddyfile是否存在
343+ if [ -f " bin/caddy/Caddyfile" ]; then
344+ # 在Caddyfile文件顶部添加域名
345+ if [ " $( uname -s) " == " Darwin" ]; then
346+ # macOS version
347+ sed -i ' ' " s|^# 文件服务\n:80 {|# 文件服务\n$DOMAIN_ADDRESS :80 {|" bin/caddy/Caddyfile
348+ else
349+ # Linux version
350+ sed -i " s|^# 文件服务\n:80 {|# 文件服务\n$DOMAIN_ADDRESS :80 {|" bin/caddy/Caddyfile
351+ fi
352+ bilingual " 已更新Caddyfile配置,使用域名: $DOMAIN_ADDRESS " " Updated Caddyfile configuration with domain: $DOMAIN_ADDRESS "
353+ else
354+ bilingual " 未找到Caddyfile,跳过更新" " Caddyfile not found, skipping update"
355+ fi
356+
357+ return 0
358+ else
359+ bilingual " 域名为空,继续使用公网IP配置。" " Domain is empty, continuing with public IP configuration."
360+ fi
361+ else
362+ bilingual " 不使用域名,继续使用公网IP配置。" " Not using domain, continuing with public IP configuration."
363+ fi
364+
306365 bilingual " 正在检测公网IP..." " Detecting public IP..."
307366
308367 # Try multiple methods to get public IP
@@ -332,6 +391,14 @@ if [ "$SKIP_INSTALLATION" = "false" ]; then
332391 fi
333392 fi
334393
394+ # Method 4: Using checkip.amazonaws.com
395+ if [ -z " $PUBLIC_IP " ]; then
396+ PUBLIC_IP=$( curl -s https://checkip.amazonaws.com 2> /dev/null)
397+ if [ -z " $PUBLIC_IP " ] || [[ $PUBLIC_IP == * " html" * ]]; then
398+ PUBLIC_IP=" "
399+ fi
400+ fi
401+
335402 # If successfully obtained public IP, ask user whether to use this IP
336403 if [ -n " $PUBLIC_IP " ]; then
337404 bilingual " 检测到公网IP: $PUBLIC_IP " " Detected public IP: $PUBLIC_IP "
@@ -346,15 +413,41 @@ if [ "$SKIP_INSTALLATION" = "false" ]; then
346413 # macOS version
347414 sed -i ' ' " s|^MAGIC_SOCKET_BASE_URL=ws://localhost:9502|MAGIC_SOCKET_BASE_URL=ws://$PUBLIC_IP :9502|" .env
348415 sed -i ' ' " s|^MAGIC_SERVICE_BASE_URL=http://localhost:9501|MAGIC_SERVICE_BASE_URL=http://$PUBLIC_IP :9501|" .env
416+ # Update FILE_LOCAL_READ_HOST and FILE_LOCAL_WRITE_HOST
417+ sed -i ' ' " s|^FILE_LOCAL_READ_HOST=http://127.0.0.1/files|FILE_LOCAL_READ_HOST=http://$PUBLIC_IP /files|" .env
418+ sed -i ' ' " s|^FILE_LOCAL_WRITE_HOST=http://127.0.0.1|FILE_LOCAL_WRITE_HOST=http://$PUBLIC_IP |" .env
349419 else
350420 # Linux version
351421 sed -i " s|^MAGIC_SOCKET_BASE_URL=ws://localhost:9502|MAGIC_SOCKET_BASE_URL=ws://$PUBLIC_IP :9502|" .env
352422 sed -i " s|^MAGIC_SERVICE_BASE_URL=http://localhost:9501|MAGIC_SERVICE_BASE_URL=http://$PUBLIC_IP :9501|" .env
423+ # Update FILE_LOCAL_READ_HOST and FILE_LOCAL_WRITE_HOST
424+ sed -i " s|^FILE_LOCAL_READ_HOST=http://127.0.0.1/files|FILE_LOCAL_READ_HOST=http://$PUBLIC_IP /files|" .env
425+ sed -i " s|^FILE_LOCAL_WRITE_HOST=http://127.0.0.1|FILE_LOCAL_WRITE_HOST=http://$PUBLIC_IP |" .env
353426 fi
354427
355428 bilingual " 环境变量已更新:" " Environment variables updated:"
356429 echo " MAGIC_SOCKET_BASE_URL=ws://$PUBLIC_IP :9502"
357430 echo " MAGIC_SERVICE_BASE_URL=http://$PUBLIC_IP :9501"
431+ echo " FILE_LOCAL_READ_HOST=http://$PUBLIC_IP /files"
432+ echo " FILE_LOCAL_WRITE_HOST=http://$PUBLIC_IP "
433+
434+ # 更新Caddyfile中的IP
435+ bilingual " 更新Caddyfile配置..." " Updating Caddyfile configuration..."
436+
437+ # 检查Caddyfile是否存在
438+ if [ -f " bin/caddy/Caddyfile" ]; then
439+ # 在Caddyfile文件顶部添加公网IP
440+ if [ " $( uname -s) " == " Darwin" ]; then
441+ # macOS version
442+ sed -i ' ' " s|^# 文件服务\n:80 {|# 文件服务\n$PUBLIC_IP :80 {|" bin/caddy/Caddyfile
443+ else
444+ # Linux version
445+ sed -i " s|^# 文件服务\n:80 {|# 文件服务\n$PUBLIC_IP :80 {|" bin/caddy/Caddyfile
446+ fi
447+ bilingual " 已更新Caddyfile配置,使用公网IP: $PUBLIC_IP " " Updated Caddyfile configuration with public IP: $PUBLIC_IP "
448+ else
449+ bilingual " 未找到Caddyfile,跳过更新" " Caddyfile not found, skipping update"
450+ fi
358451 else
359452 bilingual " 保持默认设置。" " Keeping default settings."
360453 fi
@@ -374,15 +467,41 @@ if [ "$SKIP_INSTALLATION" = "false" ]; then
374467 # macOS version
375468 sed -i ' ' " s|^MAGIC_SOCKET_BASE_URL=ws://localhost:9502|MAGIC_SOCKET_BASE_URL=ws://$MANUAL_IP_ADDRESS :9502|" .env
376469 sed -i ' ' " s|^MAGIC_SERVICE_BASE_URL=http://localhost:9501|MAGIC_SERVICE_BASE_URL=http://$MANUAL_IP_ADDRESS :9501|" .env
470+ # Update FILE_LOCAL_READ_HOST and FILE_LOCAL_WRITE_HOST
471+ sed -i ' ' " s|^FILE_LOCAL_READ_HOST=http://127.0.0.1/files|FILE_LOCAL_READ_HOST=http://$MANUAL_IP_ADDRESS /files|" .env
472+ sed -i ' ' " s|^FILE_LOCAL_WRITE_HOST=http://127.0.0.1|FILE_LOCAL_WRITE_HOST=http://$MANUAL_IP_ADDRESS |" .env
377473 else
378474 # Linux version
379475 sed -i " s|^MAGIC_SOCKET_BASE_URL=ws://localhost:9502|MAGIC_SOCKET_BASE_URL=ws://$MANUAL_IP_ADDRESS :9502|" .env
380476 sed -i " s|^MAGIC_SERVICE_BASE_URL=http://localhost:9501|MAGIC_SERVICE_BASE_URL=http://$MANUAL_IP_ADDRESS :9501|" .env
477+ # Update FILE_LOCAL_READ_HOST and FILE_LOCAL_WRITE_HOST
478+ sed -i " s|^FILE_LOCAL_READ_HOST=http://127.0.0.1/files|FILE_LOCAL_READ_HOST=http://$MANUAL_IP_ADDRESS /files|" .env
479+ sed -i " s|^FILE_LOCAL_WRITE_HOST=http://127.0.0.1|FILE_LOCAL_WRITE_HOST=http://$MANUAL_IP_ADDRESS |" .env
381480 fi
382481
383482 bilingual " 环境变量已更新:" " Environment variables updated:"
384483 echo " MAGIC_SOCKET_BASE_URL=ws://$MANUAL_IP_ADDRESS :9502"
385484 echo " MAGIC_SERVICE_BASE_URL=http://$MANUAL_IP_ADDRESS :9501"
485+ echo " FILE_LOCAL_READ_HOST=http://$MANUAL_IP_ADDRESS /files"
486+ echo " FILE_LOCAL_WRITE_HOST=http://$MANUAL_IP_ADDRESS "
487+
488+ # 更新Caddyfile中的手动输入IP
489+ bilingual " 更新Caddyfile配置..." " Updating Caddyfile configuration..."
490+
491+ # 检查Caddyfile是否存在
492+ if [ -f " bin/caddy/Caddyfile" ]; then
493+ # 在Caddyfile文件顶部添加手动输入IP
494+ if [ " $( uname -s) " == " Darwin" ]; then
495+ # macOS version
496+ sed -i ' ' " s|^# 文件服务\n:80 {|# 文件服务\n$MANUAL_IP_ADDRESS :80 {|" bin/caddy/Caddyfile
497+ else
498+ # Linux version
499+ sed -i " s|^# 文件服务\n:80 {|# 文件服务\n$MANUAL_IP_ADDRESS :80 {|" bin/caddy/Caddyfile
500+ fi
501+ bilingual " 已更新Caddyfile配置,使用手动输入IP: $MANUAL_IP_ADDRESS " " Updated Caddyfile configuration with manually entered IP: $MANUAL_IP_ADDRESS "
502+ else
503+ bilingual " 未找到Caddyfile,跳过更新" " Caddyfile not found, skipping update"
504+ fi
386505 else
387506 bilingual " IP地址为空,保持默认设置。" " IP address is empty, keeping default settings."
388507 fi
0 commit comments