Node-RED 접속하기
- 브라우저를 열고 아래 주소로 이동하세요:
https://<SERVER_IP> - 브라우저에서 SSL 경고가 표시될 수 있습니다 (자체 서명 인증서)
- 인증이 필요합니다 (Basic Auth 팝업)
- 인증 방식: HTTP Basic Auth
- 자격 증명 저장 위치:
/root/.cloudzy-creds
주요 파일 및 디렉터리
- 기본 설치 디렉터리 경로:
/root/node-red. - Docker 오케스트레이션 파일 경로:
/root/node-red/docker-compose.yml. - Node-RED의 영구 데이터 저장 위치:
/var/lib/docker/volumes/node-red_node-red-data/_data. - Nginx 설정 파일 위치:
/etc/nginx/sites-available/node-red. - 기본 인증 자격 증명 저장 위치:
/etc/nginx/auth/node-red.htpasswd. - TLS 인증서 저장 위치:
/etc/nginx/ssl.
Service Management
컨테이너 상태 확인:
docker ps
View logs:
docker compose -f /root/node-red/docker-compose.yml logs -f
Node-RED 재시작:
docker compose -f /root/node-red/docker-compose.yml restart
Restart Nginx:
systemctl restart nginx
Node-RED 관리자 계정 (기본 인증 대체 방법)
Node-RED에는 자체 인증 시스템이 내장되어 있어 HTTP 기본 인증(Basic Auth)을 대체할 수 있습니다.
1. Locate settings.js
Node-RED Docker 볼륨 내의 기본 설정 파일 위치: /var/lib/docker/volumes/node-red_node-red-data/_data/settings.js
2. Enable adminAuth
Open settings.js 해당 항목의 주석을 해제하거나 다음 내용을 추가하세요. adminAuth 형식은 다음과 같아야 합니다:
adminAuth: {
type: "credentials",
users: [
{
username: "admin",
password: "<HASHED_PASSWORD>",
permissions: "*"
}]
},
3. 비밀번호 해시 생성
Node-RED 컨테이너 내부에서 해시를 생성할 수 있습니다:
docker exec -it node-red-node-red-1 node-red admin hash-pw
일반 텍스트 비밀번호를 입력하라는 메시지가 표시됩니다.
생성된 해시를 복사해 다음 항목의 값으로 붙여넣으세요. password value in settings.js.
4. Node-RED 재시작
After editing settings.js:
docker compose -f /root/node-red/docker-compose.yml restart
5. Nginx에서 HTTP 기본 인증 비활성화 (선택 사항)
Nginx 사이트 파일 편집: /etc/nginx/sites-available/node-red
다음 줄을 삭제하거나 주석 처리하세요:
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/auth/node-red.htpasswd;
Reload Nginx:
systemctl restart nginx
도메인으로 SSL 활성화하기
1. 도메인을 서버 IP로 연결합니다.
2. Nginx 설정을 편집하여 server_name <IP>; 을 실제 도메인으로 교체합니다 (<your-domain>) HTTP (포트 80) 및 HTTPS (포트 443) 블록 모두에 적용합니다:
vim /etc/nginx/sites-available/node-red
3. Install Certbot:
apt install -y certbot python3-certbot-nginx
4. 다음 명령어를 실행하여 유효한 Let's Encrypt 인증서를 발급받으세요:
certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com
5. Nginx 설정의 SSL 경로를 교체합니다:
vim /etc/apache2/sites-available/node-red
# Before:
# ssl_certificate /etc/nginx/ssl/fullchain.pem;
# ssl_certificate_key /etc/nginx/ssl/privkey.pem;
# After:
# ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
6. 변경 사항을 적용하기 위해 Nginx를 재시작합니다:
systemctl restart nginx
7. 브라우저를 열고 다음 주소로 접속하세요: https://yourdomain.com