self-hosting
-
[쿠버네티스 SMTP #1] Postal이냐 Stalwart냐 — 메일함까지 만들기로 하니 답이 하나로 좁혀졌다
예전에 C++로 짠 SMTP 클라이언트로 네이버에, Node.js로 다시 짜서 Gmail에 보냈는데 두 번 다 스팸함으로 갔습니다. 언어도 구현도 수신처도 다른데 결과가 같았다는 게 원인을 가리키는…
-
[로컬 서버 운영기] Docker Compose에서 K3s로 — 집 서버 쿠버네티스 이주기
잘 도는 Docker Compose 스택을 굳이 K3s로 옮길 이유가 있을까요. 단일 노드라도 선언형 배포와 셀프힐링은 매력적입니다. 서비스 이름을 그대로 유지해 이관 표면적을 줄인 방법과, 집…
-
[로컬 서버 운영기] 한 번 로그인으로 다 쓰기 — 커스텀 JWT에서 Keycloak으로, 무중단으로
여러 서비스가 같은 비밀키로 서명한 HS256 JWT를 공유하면 SSO 흉내는 납니다. 하지만 중앙 관리·키 회전·표준 로그인 화면이 없습니다. 잘 도는 인증을 멈추지 않고 Keycloak(OIDC)으로 옮긴…
-
[로컬 서버 운영기] 집 PC를 공개 서버로 — 포트 하나 열지 않고 도메인 붙이기
집에 있는 PC 한 대로 실서비스를 공개하려면 보통 공유기 포트포워딩과 고정 IP를 떠올립니다. 하지만 아웃바운드 터널(Cloudflare Tunnel)을 쓰면 인바운드 포트를 하나도 열지 않고 도메인을 붙일…
-
[인프라 비용] Bitnami Helm으로 무료 인프라? — 라이선스 피와 개발자 시간, 무엇이 진짜 싼가
Bitnami Helm 차트는 프로덕션급 Postgres·RabbitMQ·Redis를 한 줄로 띄워주던 무료 지름길이었다. 그런데 2025년 라이선스 변경으로 무료 사용이 크게 제약됐다. 무료 인프라를 목표로 할 때 이게 무슨…
-
[채팅 백엔드 보안] WebSocket은 무엇으로 지키고, 셀프호스팅한 메시지 큐는 누가 들여다보나
WebSocket 채팅을 무엇으로 인증·격리하는지(JWT HS256 + TLS + 테넌트 네임스페이싱), 메시지 큐로 RabbitMQ를 고른 이유와 PV 구성, 그 큐를 headless ClusterIP로 바깥에 안 여는 접근…