DigitalOcean에 VAPOR 기반 서비스 게시
Source: Dev.to
DigitalOcean에서 서버 생성 및 설정
- Droplet을 생성하고 배포판으로 Ubuntu 22.04 LTS를 선택합니다.
- 서버 크기를 선택합니다 (예: 1 vCPU, 512 MB RAM, 10 GB SSD).
- SSH 인증 방식을 선택하고 DigitalOcean에 SSH 키를 추가합니다.
- Droplet에 이름을 지정하고 프로젝트에 연결합니다.
- 생성을 확인하고 Droplet이 프로비저닝될 때까지 기다립니다.
생성되면 서버 IP가 패널에 표시됩니다.
SSH 연결 및 방화벽 설정
ssh root@your_server_ip
your_server_ip를 할당된 IP 주소(예: 146.190.121.34)로 교체합니다. 호스트 지문을 수락합니다.
# Habilitar OpenSSH en UFW
ufw allow OpenSSH
ufw enable # confirma con "y"
애플리케이션이 사용할 포트(8080)를 엽니다:
sudo ufw allow 8080
vapor 사용자 생성 및 sudo 권한 부여
adduser vapor # sigue las indicaciones, dejando en blanco la información adicional
usermod -aG sudo vapor
root 사용자의 인증된 SSH 키를 새 사용자에게 복사합니다:
rsync --archive --chown=vapor:vapor ~/.ssh /home/vapor
세션을 종료하고 vapor로 다시 연결합니다:
exit
ssh vapor@your_server_ip
Swiftly 및 Swift 의존성 설치
curl -O https://download.swift.org/swiftly/linux/swiftly-$(uname -m).tar.gz && \
tar zxf swiftly-$(uname -m).tar.gz && \
./swiftly init --quiet-shell-followup && \
. "${SWIFTLY_HOME_DIR:-$HOME/.local/share/swiftly}/env.sh" && \
hash -r
요청 시 Y를 입력하여 확인합니다.
필요한 의존성을 설치합니다:
sudo apt-get update
sudo apt-get -y install binutils unzip libcurl4-openssl-dev \
libgcc-13-dev libpython3-dev libstdc++-13-dev libxml2-dev \
libncurses-dev libz3-dev pkg-config zlib1g-dev
Swift 버전을 확인합니다:
swift --version
# Swift version 6.2.3 (swift-6.2.3-RELEASE)
Vapor toolbox 설치
git clone https://github.com/vapor/toolbox.git
cd toolbox
git checkout 20.0.0 # último release al momento de escribir
swift build -c release --disable-sandbox
sudo mv .build/release/vapor /usr/local/bin
cd ..
rm -rf toolbox
애플리케이션 클론 및 컴파일
서버의 SSH 키가 GitHub 계정에 추가되어 있는지 확인한 후, 저장소를 클론합니다:
git clone git@github.com:.git
cd StripeIntentService
swift run StripeIntentService serve --hostname 0.0.0.0 --port 8080
Nota: 컴파일 중 메모리 부족 오류가 발생하면 Droplet의 RAM을 일시적으로 늘렸다가(예: 4 GB) 컴파일이 끝난 뒤 다시 줄일 수 있습니다.
GitHub용 SSH 키 설정 (옵션)
ssh-keygen -t ed25519 -C "your_email@example.com" # aceptar valores por defecto
eval "$(ssh-agent -s)"
~/.ssh/config를 편집하고(예: nano 사용) 다음을 추가합니다:
Host github.com
AddKeysToAgent yes
IdentityFile ~/.ssh/id_ed25519
키를 에이전트에 추가합니다:
ssh-add ~/.ssh/id_ed25519
공개 키를 확인하고 GitHub 계정에 추가합니다:
cat ~/.ssh/id_ed25519.pub
Droplet 리소스 조정 (필요 시)
DigitalOcean 패널에서 Manage → Droplets로 이동한 뒤, 해당 Droplet을 선택하고 Upsize를 클릭합니다. 필요에 따라 RAM/CPU 구성을 선택합니다(예: 2 GB 또는 4 GB). 리사이징을 확인합니다. 컴파일이 끝난 후 원한다면 다시 사이즈를 줄일 수 있습니다.