셀프호스팅
직접 배포하고 장애를 확인한 운영 기록입니다. 현재 10편을 모았습니다.
- 15분
Coolify API deploy: GitHub 자동 배포와 겹쳐 같은 커밋을 두 번 빌드한 기록
Coolify API deploy를 git push 뒤에 습관처럼 불렀더니 GitHub 자동 배포와 겹쳐 같은 커밋을 다시 빌드하고 있었습니다. 이 사이트에서만 12번입니다. 배포 기록의 is_webhook·is_api로 찾은 방법과 push 뒤 확인 순서를 적었습니다.
- 셀프호스팅
- Docker
- 트러블슈팅
- 10분
사진 2,000장에 갤러리가 5.6초 걸렸습니다: SQLite FTS5 CTE에 MATERIALIZED 한 단어를 붙인 기록
카드 편집 도구의 사진 갤러리가 사진이 늘수록 제곱으로 느려졌습니다. SQLite가 전문 검색 CTE를 LEFT JOIN 안으로 펼쳐서 행마다 MATCH를 다시 돌린 것이 원인이었고, AS MATERIALIZED로 2,000장 기준 5.6초가 0.04초가 됐습니다.
- SQLite
- 트러블슈팅
- 셀프호스팅
- 제품 개발
- 시행착오
- 10분
Cloudflare를 거친 게임 소켓 핑이 279ms였습니다: 소켓만 DNS 전용 호스트로 빼서 8ms로 줄인 기록
웹 메카 슈팅 RAYFRAME을 배포한 날, Cloudflare 프록시를 거친 경기 핑이 279ms로 나왔습니다. 한국에서 보낸 요청이 미국 데이터센터를 거쳐 춘천 서버로 돌아오는 경로를 확인하고, 게임 소켓만 DNS 전용 호스트로 빼서 8ms로 줄인 과정과 그 대가를 적었습니다.
- RAYFRAME
- 셀프호스팅
- 웹게임
- 트러블슈팅
- 11분
오래된 탭 하나가 새 일정을 지울 수 있었습니다: 전체 덮어쓰기 저장을 항목 단위 API와 409로 바꾼 기록
Plan Wall은 편집할 때마다 목록 전체를 PUT으로 올렸고, 서버는 업로드에 없는 행을 지웠습니다. updated_at 비교와 409 응답으로 저장 경로를 다시 짠 과정입니다.
- Plan Wall
- 제품 개발
- API
- 셀프호스팅
- 8분
no-cache를 걸었는데 4시간 캐시가 됩니다: Cloudflare Browser Cache TTL
three.js로 만든 웹게임을 nginx로 배포하다가 옛 코드가 캐시된 채 새 에셋을 404로 찾는 문제를 겪었습니다. no-cache 헤더를 걸어도 안 됐고, 원인은 Cloudflare의 기본 Browser Cache TTL 4시간이었습니다.
- EBB & GRAB
- 웹게임
- 셀프호스팅
- 트러블슈팅
- 11분
Coolify 사용법: 서버 한 대에 apex와 서브도메인 6개를 올린 Cloudflare 구성
Coolify 사용법으로 서버 한 대에 루트 도메인과 서브도메인 서비스를 올렸습니다. Cloudflare 전역 리다이렉트가 ads.txt까지 301로 넘기던 문제, SSL 모드 불일치, 헬스체크 경로를 실제 장애 순서대로 정리했습니다.
- 셀프호스팅
- Docker
- 제품 개발
- 트러블슈팅
- 21분
애드센스 서브도메인: 따로 심사하지 않고 루트 도메인 승인을 따라갑니다
애드센스는 서브도메인을 따로 승인하지 않습니다. 루트 도메인이 승인되면 서브도메인은 광고 코드만 넣으면 됩니다. "가치가 별로 없는 콘텐츠" 반려 3번과 공식 문서로 확인한 판정 기준을 정리했습니다.
- 애드센스
- SEO
- 셀프호스팅
- 트러블슈팅
- 경험담
- 10분
Next.js를 Coolify로 셀프호스팅한 기록
Vercel 대신 Coolify + Docker standalone 빌드로 직접 배포하며 헬스체크 프로브 실패를 잡은 과정.
- 셀프호스팅
- Docker
- 제품 개발
- 14분
n8n 셀프호스팅 방법: Coolify 서버에서 직접 운영하며 겪은 문제
n8n 셀프호스팅 방법으로 오라클 Arm 서버에서 월 0원으로 돌립니다(제 계정 기준). 설치 순서, 프록시 뒤에 꼭 넣을 WEBHOOK_URL과 타임존, 실제 워크플로우 3개, 이전 때 credential이 끊긴 경험을 정리했습니다.
- 셀프호스팅
- 자동화
- n8n
- 15분
Uptime Kuma 설치: Coolify에 Docker 컨테이너로 올려 모니터 11개와 알림을 붙인 기록
Uptime Kuma 설치는 Coolify에 Docker 컨테이너 하나를 올리는 것으로 끝났고, 시간을 쓴 곳은 /health 설계와 알림 설정이었습니다. Docker HEALTHCHECK와 외부 모니터의 역할을 나누고 같은 서버 감시의 한계까지 적었습니다.
- 셀프호스팅
- 모니터링
- 제품 개발