Skip to content

Commit e7a970f

Browse files
committed
Fix database password and runtime diagnostics
1 parent c586277 commit e7a970f

5 files changed

Lines changed: 51 additions & 15 deletions

File tree

build-dist.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ GREEN='\033[0;32m'
77
BLUE='\033[0;34m'
88
NC='\033[0m'
99

10-
VERSION="1.4.6"
10+
VERSION="1.4.7"
1111
DIST_DIR="dist"
1212
ARCHIVE_NAME="shipnode-payload.tar.gz"
1313
INSTALLER_NAME="shipnode-installer.sh"
@@ -90,7 +90,7 @@ YELLOW='\033[1;33m'
9090
BLUE='\033[0;34m'
9191
NC='\033[0m'
9292
93-
VERSION="1.4.6"
93+
VERSION="1.4.7"
9494
INSTALL_DIR="$HOME/.shipnode"
9595
9696
# Parse flags

install.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ BLUE='\033[0;34m'
1010
NC='\033[0m'
1111

1212
echo -e "${BLUE}╔════════════════════════════════════╗${NC}"
13-
echo -e "${BLUE}║ ShipNode Installer v1.4.6${NC}"
13+
echo -e "${BLUE}║ ShipNode Installer v1.4.7${NC}"
1414
echo -e "${BLUE}╚════════════════════════════════════╝${NC}"
1515
echo
1616

lib/commands/doctor.sh

Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -233,20 +233,32 @@ check_remote_environment() {
233233

234234
local ssh_port="${SSH_PORT:-22}"
235235
local pkg_manager=$(detect_pkg_manager)
236+
local node_version="${NODE_VERSION:-24}"
237+
[ "$node_version" = "lts" ] && node_version="24"
236238

237239
# Single batched SSH call for all remote checks
238240
local remote_output
239-
remote_output=$(remote_exec bash << 'REMOTE_CHECKS'
241+
remote_output=$(remote_exec bash -s "$node_version" "$pkg_manager" << 'REMOTE_CHECKS'
242+
NODE_VERSION="$1"
243+
PKG_MANAGER="$2"
244+
export PATH="$HOME/.local/bin:$HOME/.local/share/mise/shims:$PATH"
245+
246+
if command -v mise &> /dev/null; then
247+
echo "RUNTIME_OK:$(mise --version | head -n1)"
248+
else
249+
echo "RUNTIME_MISSING"
250+
fi
251+
240252
# Check node
241-
if command -v node &> /dev/null; then
242-
echo "NODE_OK:$(node --version)"
253+
if command -v mise &> /dev/null && mise exec "node@$NODE_VERSION" -- node --version &> /dev/null; then
254+
echo "NODE_OK:$(mise exec "node@$NODE_VERSION" -- node --version)"
243255
else
244256
echo "NODE_MISSING"
245257
fi
246258
247259
# Check PM2
248-
if command -v pm2 &> /dev/null; then
249-
echo "PM2_OK:$(pm2 --version)"
260+
if command -v mise &> /dev/null && mise exec "node@$NODE_VERSION" -- pm2 --version &> /dev/null; then
261+
echo "PM2_OK:$(mise exec "node@$NODE_VERSION" -- pm2 --version)"
250262
else
251263
echo "PM2_MISSING"
252264
fi
@@ -265,16 +277,32 @@ check_remote_environment() {
265277
echo "DISK:$disk_avail"
266278
267279
# Check package managers
268-
command -v npm &> /dev/null && echo "PKG_NPM_OK"
269-
command -v yarn &> /dev/null && echo "PKG_YARN_OK"
270-
command -v pnpm &> /dev/null && echo "PKG_PNPM_OK"
271-
command -v bun &> /dev/null && echo "PKG_BUN_OK"
280+
if [ "$PKG_MANAGER" = "bun" ]; then
281+
command -v bun &> /dev/null && echo "PKG_BUN_OK"
282+
[ -x "$HOME/.bun/bin/bun" ] && echo "PKG_BUN_OK"
283+
elif command -v mise &> /dev/null && mise exec "node@$NODE_VERSION" -- "$PKG_MANAGER" --version &> /dev/null; then
284+
if [ "$PKG_MANAGER" = "npm" ]; then
285+
echo "PKG_NPM_OK"
286+
elif [ "$PKG_MANAGER" = "yarn" ]; then
287+
echo "PKG_YARN_OK"
288+
elif [ "$PKG_MANAGER" = "pnpm" ]; then
289+
echo "PKG_PNPM_OK"
290+
fi
291+
fi
272292
REMOTE_CHECKS
273293
)
274294

275295
local has_errors=false
276296

277297
# Parse node check
298+
if echo "$remote_output" | grep -q "RUNTIME_OK:"; then
299+
local runtime_version=$(echo "$remote_output" | grep "RUNTIME_OK:" | cut -d: -f2-)
300+
echo " ✓ per-project runtime available ($runtime_version)"
301+
else
302+
echo " ✗ per-project runtime not found (run: shipnode setup)"
303+
has_errors=true
304+
fi
305+
278306
if echo "$remote_output" | grep -q "NODE_OK:"; then
279307
local node_version=$(echo "$remote_output" | grep "NODE_OK:" | cut -d: -f2)
280308
echo " ✓ node available ($node_version)"

lib/core.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ BLUE='\033[0;34m'
1010
NC='\033[0m' # No Color
1111

1212
# ShipNode version
13-
VERSION="1.4.6"
13+
VERSION="1.4.7"
1414

1515
# SSH multiplexing for connection reuse
1616
SSH_CONTROL_PATH="/tmp/shipnode-ssh-%r@%h:%p"

lib/database.sh

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@ validate_db_identifier() {
99
}
1010

1111
setup_databases() {
12+
if [ -z "${DB_PASSWORD:-}" ] && [ -n "${DATABASE_URL:-}" ]; then
13+
local db_url_auth="${DATABASE_URL#*://}"
14+
db_url_auth="${db_url_auth%%@*}"
15+
if [[ "$db_url_auth" == *:* ]]; then
16+
DB_PASSWORD="${db_url_auth#*:}"
17+
fi
18+
fi
19+
1220
if [ "${DB_SETUP_ENABLED:-false}" = "true" ]; then
1321
case "${DB_TYPE:-postgresql}" in
1422
postgresql|postgres|pg)
@@ -35,7 +43,7 @@ setup_databases() {
3543
setup_postgresql() {
3644
# Validate required variables
3745
if [ -z "$DB_NAME" ] || [ -z "$DB_USER" ] || [ -z "$DB_PASSWORD" ]; then
38-
warn "PostgreSQL setup enabled but DB_NAME, DB_USER, or DB_PASSWORD not set in config"
46+
warn "PostgreSQL setup enabled but DB_NAME, DB_USER, or DB_PASSWORD is missing. Set DB_PASSWORD in .env or shipnode.conf."
3947
return 1
4048
fi
4149

@@ -119,7 +127,7 @@ ENDSSH
119127

120128
setup_mysql() {
121129
if [ -z "$DB_NAME" ] || [ -z "$DB_USER" ] || [ -z "$DB_PASSWORD" ]; then
122-
warn "MySQL setup enabled but DB_NAME, DB_USER, or DB_PASSWORD not set in config"
130+
warn "MySQL setup enabled but DB_NAME, DB_USER, or DB_PASSWORD is missing. Set DB_PASSWORD in .env or shipnode.conf."
123131
return 1
124132
fi
125133

0 commit comments

Comments
 (0)