37 lines
1.1 KiB
Markdown
37 lines
1.1 KiB
Markdown
# systemd 서비스로 배포하기
|
|
|
|
도커 대신 리눅스 서비스로 설치할 수도 있습니다. **root 권한으로 실행하지 마세요.**
|
|
Node.js 24 이상이 필요합니다.
|
|
|
|
## 준비
|
|
|
|
```bash
|
|
sudo mkdir -p /opt/dodo-transfer
|
|
sudo useradd --system dodo-transfer
|
|
|
|
git clone https://git.dodo-lab.kr/blue2rai/DodoTransfer.git /opt/dodo-transfer
|
|
cd /opt/dodo-transfer
|
|
|
|
# 프론트엔드 빌드 (public/app에 만들어집니다)
|
|
npm --prefix app ci
|
|
npm run build
|
|
|
|
# 서버 의존성
|
|
npm ci --omit=dev
|
|
|
|
sudo chown -R dodo-transfer:dodo-transfer /opt/dodo-transfer
|
|
```
|
|
|
|
## 서비스 등록
|
|
|
|
[dodo-transfer.service](dodo-transfer.service)를 `/etc/systemd/system/`에 복사하고 환경에 맞게 고칩니다.
|
|
비밀번호는 서비스 파일에 직접 쓰지 말고 `EnvironmentFile`로 읽는 것을 권장합니다
|
|
(예: `/etc/dodo-transfer.env`, 권한 `600`, 내용은 [.env.example](../.env.example) 참고).
|
|
|
|
```bash
|
|
sudo cp docs/dodo-transfer.service /etc/systemd/system/
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl enable --now dodo-transfer # 시작하고 부팅 시 자동 시작
|
|
sudo systemctl status dodo-transfer
|
|
```
|