Troubleshooting

[StreamRec] 멀쩡히 잘 받아지는 스트림인데 계속 강제 종료되던 문제 — “정체 감지” 로직의 숨은 버그

증상 셀프호스팅 스트림 자동 녹화 서비스(yt-dlp + FastAPI 기반)에서, 특정 채널들의 자동 녹화가 시작한 지 2~3분만 지나면 거의 매번 강제 종료됐다. 로그를 보면 이렇게 찍혀 있었다. “120초 동안 데이터가 안 들어와서 정체(stall)로 판단하고 자동으로 껐다”는 내용이었다. 이 자동 종료 기능은 원래 다른 문제(다운로드 프로세스가 죽지도 살지도 않은 채 무한정 방치되는 것)를 막기 위해 얼마 전에 […]

Docker 기반 스트림 녹화 서비스, 라이브도 아닌데 “녹화중”으로 며칠씩 멈춰있던 문제

증상 셀프호스팅으로 운영 중인 스트림 자동 녹화 서비스(yt-dlp + FastAPI 기반, Docker 컨테이너로 구동)의 UI를 열어보니, 특정 채널 2곳이 실제로는 라이브 방송 중이 아닌데도 “RECORDING” 상태로 표시되고 있었다. 경과 시간(elapsed) 카운터는 한 채널은 약 13.5일, 다른 채널은 약 10.5일째 계속 올라가는 중이었는데, 정작 디스크에는 그 시간 동안 새로 쓰인 녹화 파일이 없었다. 다른 채널들은 정상적으로

1GB 클라우드 서버 인스턴스, 왜 이렇게 느렸을까 — 원인 분석과 SSH 보안 강화 기록

작은 클라우드 인스턴스(RAM 약 1GB)에서 도커로 모니터링 스택(netdata, uptime-kuma)을 운영하던 중, 접속이 느려지고 SSH 연결까지 불안정해지는 문제를 겪었습니다. 원인을 하나씩 추적하고 해결한 과정을 정리합니다. 1. 증상: CPU는 멀쩡한데 시스템이 멈춘 것처럼 느림 top으로 확인한 첫 화면에서 눈에 띈 건 CPU 사용률이 아니라 I/O wait(wa) 94.8% 였습니다. CPU 연산은 거의 없는데, 프로세스 대부분이 디스크 응답을 기다리며

Docker로 돌아가는 Transmission, “목록에서 사라진” 파일만 골라서 지우기

문제 상황 토렌트 클라이언트를 오래 쓰다 보면 흔히 겪는 문제가 있다. 다운로드가 끝난 뒤 토렌트를 목록에서 제거하면서 “데이터도 함께 삭제”를 누르지 않는 경우, 파일은 디스크에 그대로 남는다. 시간이 지나면 디스크에는 이 두 종류가 뒤섞여 쌓인다. 후자만 골라서 지우고 싶은데, 파일명만 보고는 구분이 안 된다는 게 문제였다. 환경 핵심 아이디어 Transmission이 “현재 알고 있는” 항목 이름

워드프레스 전체 레이아웃이 갑자기 깨졌던 이유 (feat. siteurl에 숨어있던 공백 한 칸)

Etc / 2026년 08월 18일 문제 상황 오라클 클라우드 ARM 인스턴스에 Docker로 올려서 운영 중인 워드프레스 블로그에서, 글을 쓰다 보니 어느 순간 사이트 레이아웃이 통째로 이상해졌다. 사이드바와 본문 영역이 원래는 여백을 두고 배치돼야 하는데, 화면 양쪽 끝에 여백 없이 딱 붙어버린 모습이었다. 특정 글 하나만 그런 게 아니라 블로그 목록 페이지를 포함해서 사이트 전체가 이런

오라클 클라우드 ARM 인스턴스에 nginx + Let’s Encrypt 인증서 적용기 (feat. 삽질 기록)

Oracle Cloud Infrastructure(OCI)의 Always Free ARM(Ampere) 인스턴스에 nginx 리버스 프록시를 올리고, Let’s Encrypt SSL 인증서를 발급하는 과정에서 예상보다 많은 삽질을 했습니다. 같은 문제를 겪는 분들을 위해 원인과 해결 과정을 정리합니다. 목표 1. nginx 설치 OCI ARM 인스턴스도 Ubuntu 기반이면 apt 저장소에 arm64 빌드가 그대로 있어서 x86과 설치 과정이 동일합니다. bash 설치 여부만 확인하고 싶다면: bash

웹 가계부를 직접 만들어서 내 홈서버에 올려본 이야기

평소 쓰던 가계부 앱들이 다 어딘가 마음에 안 들었다. 광고가 붙어있거나, 원하는 카테고리가 없거나, 무엇보다 내 지출 데이터가 남의 서버에 쌓이는 게 찜찜했다. 그래서 그냥 직접 만들기로 했다. 1. 일단 만들어보기 처음엔 단순하게 시작했다. 브라우저에서 바로 쓸 수 있는 HTML 한 장짜리 가계부. 날짜, 수입/지출 구분, 카테고리, 금액, 메모를 입력하면 표로 쌓이고, 월별로 탭을 넘겨보고,

nginx sites-enabled에서 conf.d로 옮겼더니 서비스가 죽었다 (ERR_CONNECTION_REFUSED 삽질기)

집 서버에서 돌리는 서비스를 nginx 리버스 프록시로 외부에 노출해서 쓰고 있었다. 그런데 어느 날부터 접속하면 이런 에러가 떴다. TLS 핸드셰이크는커녕 포트 자체에 연결이 안 되는 상황. 인증서 문제가 아니라 더 근본적인 곳이 막혀 있다는 신호였다. 1차 점검: nginx는 멀쩡해 보이는데? 가장 먼저 의심한 건 nginx 프로세스 자체였다. 결과는 둘 다 정상. 설정 파일 문법도 문제없고,

OneDrive 파일을 NAS로 복사할 때 “0x80070032: 지원되지 않는 요청” 오류 해결하기

증상 OneDrive 동기화 폴더 안의 파일을 NAS나 다른 원격/네트워크 저장소로 복사하려고 하면 다음과 같은 오류가 뜬다. 명령 프롬프트에서 copy나 robocopy를 써도 마찬가지로 실패한다. Robocopy는 조금 더 자세한 로그를 남긴다. 특이한 점은, 같은 파일을 USB 외장 드라이브로는 문제없이 복사되는데 네트워크 공유(NAS, SMB 드라이브)로는 안 된다는 것이다. 즉 파일 자체나 권한 문제가 아니라, 네트워크 프로토콜과 관련된 문제라는

오라클 클라우드 ARM 서버에 Discourse 게시판 붙이기 — 삽질 기록

운영 중인 사이트에 자유게시판을 하나 추가하기로 했다. 요구사항은 단순했다. 처음엔 “그냥 게시판 하나 다는 건데 얼마나 걸리겠어” 싶었는데, 결과적으로 반나절짜리 트러블슈팅이 됐다. 기록 삼아 정리한다. 1. CMS 선택: 그누보드 vs Discourse 처음엔 한국형 게시판인 그누보드를 생각했다. 한글 UI가 기본이고 커스터마이징 자유도가 높다는 게 장점이었다. 그런데 요구사항을 하나씩 따져보니 얘기가 달라졌다. 디자인 통일성은 그누보드가 유리하지만, “손