n8n 셀프 호스팅 하기

오늘은 n8n을 셀프 호스팅 하는 방법을 알아보겠습니다.

 

도커가 없다면 도커를 설치하고 진행합니다.

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

 

먼저 docker-compose파일을 만들어 줍니다.

 

/docker/n8n-project에 폴더를 만들고

 

nano docker-compose.yml을 만들었습니다.

 

version: '3.8'

services:
  n8n:
    image: n8nio/n8n
    restart: always
    ports:
      - "5678:5678"
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin  # 사용자명
      - N8N_BASIC_AUTH_PASSWORD=strongpassword  # 비밀번호
      - WEBHOOK_URL=https://nn.remake.net
      - N8N_HOST=nn.remake.net
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - NODE_ENV=production
    volumes:
      - ./n8n_data:/home/node/.n8n

 

도커 실행은 아래 명령어를 통해서 진행합니다.

sudo docker-compose up -d

도커 스탑은
sudo docker-compose stop

그리고 nginx 설정을 해야합니다.
sudo nano /etc/nginx/sites-enabled/default


sudo nginx -t

sudo systemctl restart nginx

 

이런 형태로 nginx 파일을 만들면 되구요.

 

ssl 인증도 받아야 합니다.

 

 sudo certbot --nginx -d nn.remake.net

 

 

server {
    listen 80;
    server_name nn.remake.net;

    location / {
        proxy_pass http://localhost:5678;
        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;
        
           # WebSocket 및 HTTP/1.1 유지
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
    }
}

 

클라우드 플레어등 호스팅 업체에서도 nn.remake.net을 바라보도록 설정합니다.

 

그러면 아래처럼 셀프 호스팅을 해볼 수 있습니다.

 

chatgpt를 통해서 진행했는데요. 초반에 에러가 좀 있었지만 넘어갈 수 있었습니다.

 

에러 코드를 계속 chatgpt에게 물어보면 되더라구요.