v0.1.9 - program generates it's own private keys.
This commit is contained in:
@@ -4,8 +4,32 @@
|
||||
|
||||
# Configuration
|
||||
|
||||
# Parse command line arguments
|
||||
TEST_MODE=0
|
||||
FOLLOW_LOGS=0
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
-t|--test-keys)
|
||||
TEST_MODE=1
|
||||
shift
|
||||
;;
|
||||
--follow)
|
||||
FOLLOW_LOGS=1
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option: $1"
|
||||
echo "Usage: $0 [-t|--test-keys] [--follow]"
|
||||
echo " -t, --test-keys Use test mode with keys from .test_keys"
|
||||
echo " --follow Follow logs in real-time"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Check for --follow flag
|
||||
if [[ "$1" == "--follow" ]]; then
|
||||
if [[ $FOLLOW_LOGS -eq 1 ]]; then
|
||||
echo "=== Following logs in real-time ==="
|
||||
echo "Monitoring: nginx error, nginx access, app stderr, app stdout"
|
||||
echo "Press Ctrl+C to stop following logs"
|
||||
@@ -37,7 +61,12 @@ touch logs/app/stderr.log logs/app/stdout.log logs/nginx/error.log logs/nginx/ac
|
||||
chmod 644 logs/app/stderr.log logs/app/stdout.log logs/nginx/error.log logs/nginx/access.log
|
||||
chmod 755 logs/nginx logs/app
|
||||
|
||||
echo -e "${YELLOW}=== Ginxsom Development Environment Restart ===${NC}"
|
||||
if [ $TEST_MODE -eq 1 ]; then
|
||||
echo -e "${YELLOW}=== Ginxsom Development Environment Restart (TEST MODE) ===${NC}"
|
||||
echo "Using test keys from .test_keys file"
|
||||
else
|
||||
echo -e "${YELLOW}=== Ginxsom Development Environment Restart ===${NC}"
|
||||
fi
|
||||
echo "Starting full restart sequence..."
|
||||
|
||||
# Function to check if a process is running
|
||||
@@ -148,6 +177,42 @@ if [ $? -ne 0 ]; then
|
||||
fi
|
||||
echo -e "${GREEN}Clean rebuild complete${NC}"
|
||||
|
||||
# Step 3.5: Handle keys based on mode
|
||||
echo -e "\n${YELLOW}3.5. Configuring server keys...${NC}"
|
||||
DB_PATH="$PWD/db/ginxsom.db"
|
||||
|
||||
if [ $TEST_MODE -eq 1 ]; then
|
||||
# Test mode: verify .test_keys file exists
|
||||
if [ ! -f ".test_keys" ]; then
|
||||
echo -e "${RED}ERROR: .test_keys file not found${NC}"
|
||||
echo -e "${RED}Test mode requires .test_keys file in project root${NC}"
|
||||
exit 1
|
||||
fi
|
||||
echo -e "${GREEN}Test mode: Will use keys from .test_keys${NC}"
|
||||
else
|
||||
# Production mode: check if keys exist, generate if needed
|
||||
NEED_KEYS=1
|
||||
if command -v sqlite3 >/dev/null 2>&1; then
|
||||
if sqlite3 "$DB_PATH" "SELECT seckey FROM blossom_seckey WHERE id=1" 2>/dev/null | grep -Eq '^[0-9a-f]{64}$'; then
|
||||
NEED_KEYS=0
|
||||
echo -e "${GREEN}Blossom private key found in database${NC}"
|
||||
fi
|
||||
else
|
||||
echo -e "${YELLOW}sqlite3 not found; assuming keys may be missing${NC}"
|
||||
fi
|
||||
|
||||
if [ $NEED_KEYS -eq 1 ]; then
|
||||
echo -e "${YELLOW}No blossom key found; generating server keypair...${NC}"
|
||||
./build/ginxsom-fcgi --db-path "$DB_PATH" --storage-dir blobs --generate-keys 1>>logs/app/stdout.log 2>>logs/app/stderr.log
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "${RED}Key generation failed. Check logs/app/stderr.log${NC}"
|
||||
exit 1
|
||||
fi
|
||||
echo -e "${GREEN}Key generation completed${NC}"
|
||||
echo -e "${YELLOW}IMPORTANT: Check logs/app/stderr.log for your generated keys!${NC}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Step 4: Start FastCGI
|
||||
echo -e "\n${YELLOW}4. Starting FastCGI application...${NC}"
|
||||
echo "Socket: $SOCKET_PATH"
|
||||
@@ -166,9 +231,16 @@ fi
|
||||
echo "Setting GINX_DEBUG environment for pubkey extraction diagnostics"
|
||||
export GINX_DEBUG=1
|
||||
|
||||
# Build command line arguments based on mode
|
||||
FCGI_ARGS="--db-path $PWD/db/ginxsom.db --storage-dir blobs"
|
||||
if [ $TEST_MODE -eq 1 ]; then
|
||||
FCGI_ARGS="$FCGI_ARGS --test-keys"
|
||||
echo -e "${YELLOW}Starting FastCGI in TEST MODE with test keys${NC}"
|
||||
fi
|
||||
|
||||
# Start FastCGI application with proper logging (daemonized but with redirected streams)
|
||||
echo "FastCGI starting at $(date)" >> logs/app/stderr.log
|
||||
spawn-fcgi -s "$SOCKET_PATH" -M 666 -u "$USER" -g "$USER" -P "$PID_FILE" -- "$FCGI_BINARY" --storage-dir blobs 1>>logs/app/stdout.log 2>>logs/app/stderr.log
|
||||
spawn-fcgi -s "$SOCKET_PATH" -M 666 -u "$USER" -g "$USER" -P "$PID_FILE" -- "$FCGI_BINARY" $FCGI_ARGS 1>>logs/app/stdout.log 2>>logs/app/stderr.log
|
||||
|
||||
if [ $? -eq 0 ] && [ -f "$PID_FILE" ]; then
|
||||
PID=$(cat "$PID_FILE")
|
||||
|
||||
Reference in New Issue
Block a user