---임시 : Fastfy + Svelte 프로젝트

✅ 전체 아키텍처

Internet │ ▼ Nginx (Reverse Proxy) ├── https://yourdomain.com → Svelte (Vite build된 정적 파일) └── https://yourdomain.com/api → Fastify API 서버

✅ 1. Ubuntu 서버 준비

sudo apt update && sudo apt upgrade -y sudo apt install git curl ufw nginx -y
  • 방화벽 설정
sudo ufw allow OpenSSH sudo ufw allow 'Nginx Full' sudo ufw enable

✅ 2. Node.js 설치 (공통 환경)

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs node -v npm -v

✅ 3. Fastify 서버 배포

1) 서버 코드 clone 또는 복사

2) 의존성 설치 및 빌드

npm install npm run build # TypeScript 사용하는 경우

3) PM2로 프로세스 관리

npm install -g pm2 pm2 start dist/index.js --name fastify-api pm2 save pm2 startup

✅ 4. Svelte 프론트엔드 배포

1) 프론트 프로젝트 빌드

cd frontend npm install npm run build

2) Nginx 정적 파일 서빙

sudo cp -r dist /var/www/myapp sudo chown -R www-data:www-data /var/www/myapp

✅ 5. Nginx 설정

sudo nano /etc/nginx/sites-available/myapp
server { listen 80; server_name yourdomain.com; root /var/www/myapp; index index.html; location / { try_files $uri $uri/ /index.html; } location /api/ { proxy_pass http://localhost:3000/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }

 

sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx

✅ 6. HTTPS 적용 (Let’s Encrypt)

 
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d yourdomain.com

✅ 배포 후 체크리스트

항목점검 내용
✅ API 주소가 /api/로 잘 분기되는가 Fastify 서버가 정상 응답
✅ 모바일/PC에서 정상 작동하는가 반응형 CSS 적용 확인
✅ 자동 재시작 설정되었는가 pm2 save && pm2 startup
✅ HTTPS 적용되었는가 https://yourdomain.com 정상 작동
✅ 보안 업데이트 주기적 적용 unattended-upgrades 설정 가능
 

✅ 요약

항목구성
서버 운영체제 Ubuntu (개인 PC)
배포 대상 Fastify (API), Svelte 빌드 결과
배포 방식 Nginx + PM2 + Let's Encrypt
향후 확장 HTTPS, 로그 관리, Docker, CI/CD (GitHub Actions) 등