Envir: GCP CE E2 (Ubuntu_26.04) + Nginx + PM2 + Spring Boot 3.3.8 + Java 17 + Selenium Java
apt install -y git curl wget unzip ca-certificates gnupg openjdk-17-jdk
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub \
| gpg --dearmor -o /usr/share/keyrings/google-linux-signing-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/google-linux-signing-keyring.gpg] http://dl.google.com/linux/chrome/deb/ stable main" \
| tee /etc/apt/sources.list.d/google-chrome.list
apt install -y google-chrome-stable
git clone https://github.com/D2D-CAPSTONE/map-data-fetcher.git && cd map-data-fetcher
chmod +x gradlew && /gradlew clean bootJar -x test
java -jar build/libs/map-data-fetcher-0.0.1-SNAPSHOT.jar \
--server.address=0.0.0.0 \
--server.port=8080 \
--naver.map.selenium.headless=true
apt install -y nginx
tee /etc/nginx/sites-available/map-data-fetcher > /dev/null <<'EOF'
server {
listen 80;
server_name _;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 120s;
}
}
EOF
rm -f /etc/nginx/sites-enabled/default
ln -sf /etc/nginx/sites-available/map-data-fetcher /etc/nginx/sites-enabled/map-data-fetcher
apt install -y nodejs npm
npm install -g pm2
pm2 start /usr/bin/java \
--name map-data-fetcher \
-- -jar build/libs/map-data-fetcher-0.0.1-SNAPSHOT.jar \
--server.address=127.0.0.1 \
--server.port=8080 \
--naver.map.selenium.headless=true
pm2 list
pm2 [ logs | restart | stop | delete ] map-data-fetcher