피드로 돌아가기
Building a Self-Hosted Newsletter Setup with n8n & Gemini
Dev.toDev.to
Infrastructure

n8n·Supabase 기반 Self-hosted 뉴스레터로 비용 0원 및 데이터 주권 확보

Building a Self-Hosted Newsletter Setup with n8n & Gemini

Soufian | The Peripheral Stack2026년 6월 6일9intermediate

Context

SaaS 뉴스레터 플랫폼의 구독 비용 상승과 데이터 락인(Lock-in) 문제 해결 필요. 기존 마케팅 스택의 무거운 트래킹 스크립트와 제한적인 디자인 커스텀 가능 여부가 시스템 설계의 병목 지점으로 작용.

Technical Solution

  • Astro 프론트엔드와 n8n 웹훅 간 Cross-Origin 요청 처리를 위한 Access-Control-Allow-Origin 헤더 명시적 설정
  • Supabase Upsert 시 DB Default 값 미작동 문제를 해결하기 위해 n8n Expression을 통한 UUID 토큰 수동 생성 및 주입
  • LLM 생성 콘텐츠의 XSS 공격 방지를 위한 HTML 템플릿 필드 딥 새니타이징(Deep Sanitization) 적용
  • Gemini API 직접 호출 방식을 통한 JSON 출력 제약 조건 강화 및 페이로드 정밀 제어
  • Resend API Rate Limit(10 req/s) 준수를 위해 n8n의 Serial Loop 처리 방식 채택
  • Raspberry Pi 기반 Self-hosting을 통한 인프라 운영 비용 제거 및 Supabase Free Tier 활용

- Client-side Webhook 호출 시 와일드카드(*) 대신 명확한 Origin 도메인 제한 설정 - DB Upsert 로직 설계 시 Default 값이 갱신되지 않는 엣지 케이스 확인 및 애플리케이션 레벨의 값 생성 검토 - LLM 출력값을 HTML에 렌더링할 경우 반드시 Sanitization 프로세스 포함 - API Rate Limit 규모에 따라 Sequential Loop와 Batch API 중 적절한 전송 전략 선택

원문 읽기