fix(hexojs): Bind server to 0.0.0.0, add publish command
- Server now binds to 0.0.0.0 instead of localhost for external access - Added publish command to copy static files to /www/blog/ - Startup script always regenerates to ensure correct binding - Bumped release to r3 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
170f4a90e2
commit
b17da12677
@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
|
|||||||
|
|
||||||
PKG_NAME:=secubox-app-hexojs
|
PKG_NAME:=secubox-app-hexojs
|
||||||
PKG_VERSION:=1.0.0
|
PKG_VERSION:=1.0.0
|
||||||
PKG_RELEASE:=2
|
PKG_RELEASE:=3
|
||||||
PKG_ARCH:=all
|
PKG_ARCH:=all
|
||||||
|
|
||||||
PKG_MAINTAINER:=CyberMind Studio <contact@cybermind.fr>
|
PKG_MAINTAINER:=CyberMind Studio <contact@cybermind.fr>
|
||||||
|
|||||||
@ -101,7 +101,8 @@ Build Commands:
|
|||||||
serve Start preview server (port $http_port)
|
serve Start preview server (port $http_port)
|
||||||
build Generate static files
|
build Generate static files
|
||||||
clean Clean generated files
|
clean Clean generated files
|
||||||
deploy Deploy to configured target
|
deploy Deploy to configured git target
|
||||||
|
publish Copy static files to /www/blog/
|
||||||
|
|
||||||
Service Commands:
|
Service Commands:
|
||||||
service-run Run in foreground (for init)
|
service-run Run in foreground (for init)
|
||||||
@ -293,8 +294,7 @@ lxc_run() {
|
|||||||
|
|
||||||
# Ensure start script exists in container
|
# Ensure start script exists in container
|
||||||
local start_script="$LXC_ROOTFS/opt/start-hexo.sh"
|
local start_script="$LXC_ROOTFS/opt/start-hexo.sh"
|
||||||
if [ ! -f "$start_script" ]; then
|
cat > "$start_script" << 'STARTEOF'
|
||||||
cat > "$start_script" << 'STARTEOF'
|
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
export PATH=/usr/local/bin:/usr/bin:/bin:$PATH
|
export PATH=/usr/local/bin:/usr/bin:/bin:$PATH
|
||||||
export HOME=/root
|
export HOME=/root
|
||||||
@ -302,11 +302,11 @@ export NODE_ENV=production
|
|||||||
HEXO_PORT="${HEXO_PORT:-4000}"
|
HEXO_PORT="${HEXO_PORT:-4000}"
|
||||||
SITE_DIR="/opt/hexojs/site"
|
SITE_DIR="/opt/hexojs/site"
|
||||||
cd "$SITE_DIR" 2>/dev/null || exec tail -f /dev/null
|
cd "$SITE_DIR" 2>/dev/null || exec tail -f /dev/null
|
||||||
|
[ -d "node_modules" ] || npm install
|
||||||
[ -d "$SITE_DIR/public" ] || hexo generate
|
[ -d "$SITE_DIR/public" ] || hexo generate
|
||||||
exec hexo server -p "$HEXO_PORT"
|
exec hexo server -p "$HEXO_PORT" -i 0.0.0.0
|
||||||
STARTEOF
|
STARTEOF
|
||||||
chmod +x "$start_script"
|
chmod +x "$start_script"
|
||||||
fi
|
|
||||||
|
|
||||||
log_info "Starting Hexo container on port $http_port..."
|
log_info "Starting Hexo container on port $http_port..."
|
||||||
exec lxc-start -n "$LXC_NAME" -F -f "$LXC_CONFIG"
|
exec lxc-start -n "$LXC_NAME" -F -f "$LXC_CONFIG"
|
||||||
@ -762,7 +762,7 @@ cmd_serve() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
log_info "Starting preview server on port $http_port..."
|
log_info "Starting preview server on port $http_port..."
|
||||||
lxc_exec sh -c "cd /opt/hexojs/site && hexo server -p $http_port"
|
lxc_exec sh -c "cd /opt/hexojs/site && hexo server -p $http_port -i 0.0.0.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd_build() {
|
cmd_build() {
|
||||||
@ -813,6 +813,34 @@ cmd_deploy() {
|
|||||||
log_info "Deploy complete!"
|
log_info "Deploy complete!"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cmd_publish() {
|
||||||
|
require_root
|
||||||
|
load_config
|
||||||
|
|
||||||
|
local public_dir="$data_path/site/public"
|
||||||
|
local portal_path="/www/blog"
|
||||||
|
|
||||||
|
# Allow custom portal path from config
|
||||||
|
local custom_path=$(uci_get portal.path)
|
||||||
|
[ -n "$custom_path" ] && portal_path="$custom_path"
|
||||||
|
|
||||||
|
if [ ! -d "$public_dir" ]; then
|
||||||
|
log_error "No public directory found. Run: hexoctl build"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
log_info "Publishing to $portal_path..."
|
||||||
|
|
||||||
|
# Create portal directory
|
||||||
|
ensure_dir "$portal_path"
|
||||||
|
|
||||||
|
# Sync files
|
||||||
|
rsync -av --delete "$public_dir/" "$portal_path/"
|
||||||
|
|
||||||
|
log_info "Published $(find "$portal_path" -type f | wc -l) files to $portal_path"
|
||||||
|
log_info "Access at: http://$(uci -q get network.lan.ipaddr || echo 'router')/blog/"
|
||||||
|
}
|
||||||
|
|
||||||
cmd_logs() {
|
cmd_logs() {
|
||||||
load_config
|
load_config
|
||||||
|
|
||||||
@ -1089,6 +1117,7 @@ case "${1:-}" in
|
|||||||
build) shift; cmd_build "$@" ;;
|
build) shift; cmd_build "$@" ;;
|
||||||
clean) shift; cmd_clean "$@" ;;
|
clean) shift; cmd_clean "$@" ;;
|
||||||
deploy) shift; cmd_deploy "$@" ;;
|
deploy) shift; cmd_deploy "$@" ;;
|
||||||
|
publish) shift; cmd_publish "$@" ;;
|
||||||
|
|
||||||
logs) shift; cmd_logs "$@" ;;
|
logs) shift; cmd_logs "$@" ;;
|
||||||
shell) shift; cmd_shell "$@" ;;
|
shell) shift; cmd_shell "$@" ;;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user