Vuncloud 블로그
← 개발 노트로 돌아가기

2026년 문제를 실제로 푸는 GitHub 무료 오픈소스 30선: 개발, 사무, 자동화

스타 수가 아니라 작업으로 고른다 · 10+10+10 · LICENSE부터약 16분

MacBook 앞에서 코드를 쓰는 두 개발자. 개발과 사무에 쓰는 GitHub 실용 도구에 해당하는 장면

GitHub에는 매주 「2026년 필수 오픈소스」 목록이 올라옵니다. Star 수는 누군가 Star를 눌렀다는 뜻이지, 어떤 구체적인 일을 대신 해 줬다는 증거는 아닙니다. 아래 30개는 문제별로 골랐습니다: 개발·오피스·자동화 각 10개. 선정 기준은 세 가지뿐입니다—본인 장비에서 돌릴 수 있고, 라이선스가 개인 사용을 허용하고, 말로 설명 가능한 노동을 대체한다: 코드 검색, diff 읽기, PDF 병합, 가계부, 사이트 모니터링, 백업을 진짜 다른 곳에 두기.

n8n과 여러 「오픈소스 패널」은 흔하지만 MIT·Apache·GPL 같은 라이선스가 아니어서 넣지 않았습니다. 워크플로 오케스트레이션은 Activepieces의 MIT 코어와 Node-RED에 맡깁니다. 이미지 태그와 조항은 바뀔 수 있으니 설치 전 해당 저장소의 LICENSE와 README를 열어보세요. 이 30개를 한 번에 모두 설치할 필요는 없습니다.

30
Star 순위가 아니라 풀려는 문제로 고르기
10×3
개발·오피스·자동화, 각각 실행 가능한 한 줄
LICENSE
라이선스를 먼저 읽고 일상 사용에 넣을지 결정

이 목록을 어떻게 골랐는지

세 가지 분류면 충분합니다. 「AI / 생산성 / 괴짜」로 또 나눌 필요는 없습니다.

  • 명령줄: 오늘 개발기에 설치해 코드 검색·diff·언어 버전·API 호출을 처리.
  • 데스크톱 또는 로컬 노트: 데이터를 먼저 내 디스크에 두고, 동기화는 그 다음.
  • 자체 호스팅: 저장소의 Docker Compose 사용. 관리 페이지는 로컬 루프백에 묶고 SSH로 자신의 브라우저로 전달.
같은 종류는 하나만

노트, 폴더 동기화, 워크플로 오케스트레이션, 백업은 각각 한 세트만. 노트 두 개가 같은 디렉터리를 쓰면 파일을 지울 때 동기화인지 백업인지 구분이 안 됩니다. Syncthing은 삭제도 동기화하고, restic이 암호화 백업입니다.

개발: 매일 열게 될 저장소 열 개

이 묶음은 거의 전부 명령줄이고 라이선스가 깔끔합니다. macOS는 Homebrew로 설치할 수 있습니다. Linux는 배포판 패키지나 upstream 설치 스크립트를 쓰고, 명령 자체는 같습니다.

도구해결하는 것라이선스형태
ripgrep저장소 안에서 내용 검색Unlicense명령줄
lazygit스테이징·브랜치·커밋을 한눈에MIT터미널 UI
deltadiff를 읽고 수정할 수 있는 형태로MIT명령줄
GitHub CLIPR·Issue·Actions를 터미널에MIT명령줄
act로컬에서 GitHub Actions 시험 실행MIT명령줄 + Docker
uvPython 버전·가상환경·설치MIT OR Apache-2.0명령줄
RuffPython 린트·포맷MIT명령줄
miseNode·Python·Go 버전을 프로젝트에 맞춤MIT명령줄
k9s터미널에서 Kubernetes 보기Apache-2.0터미널 UI
BrunoAPI 요청 컬렉션을 Git에MIT데스크톱

1. ripgrep: 저장소에서 내용으로 찾기

BurntSushi/ripgrep · Unlicense · 명령줄

시스템 grep도 되지만, 큰 저장소에서는 .gitignore를 존중하고 줄 번호를 붙이며 에디터 속도를 따라가는 도구가 필요합니다. ripgrep이 그 역할입니다. VS Code 검색 밑단이 종종 ripgrep입니다. 터미널에도 하나 두면 스크립트와 에디터가 같은 무시 규칙을 씁니다.

macOS: brew install ripgrep, 저장소 루트에서 rg "TODO|FIXME". 일 년에 한 번 작은 프로젝트만 검색한다면 ack나 ag를 더 쌓을 필요는 없습니다.

2. lazygit: 이번에 뭐가 바뀌었는지 분명히

jesseduffield/lazygit · MIT · 터미널 UI

Git을 가르치지 않습니다. 스테이징 블록·브랜치·최근 커밋을 한 화면에 펼칩니다. 블록 단위 스테이징·stash·reflog 보기가 git status를 왔다 갔다 하는 것보다 빠릅니다. 위험한 키도 같은 UI에 있으니, 커밋을 잃기 전에 git reset과 git revert 차이를 알아두세요.

brew install lazygit, 저장소에서 lazygit. 뷰로 쓰고 「명령을 외울 필요 없음」으로 쓰지 마세요.

3. delta: diff는 읽을 수 있어야 함

dandavison/delta · MIT · 명령줄

기본 git diff는 큰 변경에서 빨강·초록 덩어리만 남습니다. delta는 구문 강조·나란히 또는 인라인 비교로 자신의 커밋을 리뷰할 때 실수를 줄입니다. brew install git-delta 후:

git config --global core.pager delta
git config --global interactive.diffFilter "delta --color-only"

이미 익숙한 diff 도구가 있으면 색만 바꾸려고 또 설치할 필요는 없습니다.

4. GitHub CLI: PR을 터미널에서 끝내기

cli/cli · MIT · 명령줄

gh는 GitHub 위의 일: PR 열기, Checks 보기, Issue, Actions 로그. 저장소 역사는 여전히 git. 로그인은 gh auth login, 토큰은 시스템 키체인이나 gh 자체 credential 저장소에 두고 shell history나 저장소에 넣지 마세요.

brew install gh
gh pr create
gh run watch

5. act: push 전에 워크플로를 로컬에서 한 번

nektos/act · MIT · 명령줄 + Docker

act는 Docker로 로컬에서 GitHub Actions를 실행합니다. workflow를 고칠 때 먼저 act -l로 작업 목록을 보고, 고친 것만 돌려 「열 번 push해서 녹색」을 피합니다. brew install act, Docker가 떠 있어야 합니다.

흔한 Linux runner를 흉내 내지, GitHub의 macOS runner는 아닙니다. workflow에 Xcode·서명·시뮬레이터가 필요하면 act는 진짜 Mac을 대체하지 못합니다. 그런 작업은 Mac에서 직접 실행하세요.

6. uv: Python 환경을 도구 세 겹으로 쌓지 않기

astral-sh/uv · MIT OR Apache-2.0 · 명령줄

한 대에 pip·venv·pyenv·pip-tools가 같이 있으면 신규는 첫날 「왜 설치했는데 import가 안 되지」에 시간을 씁니다. uv는 Python 설치·가상환경·의존성 추가를 한 세트 명령으로 모읍니다.

brew install uv
uv python install 3.12
uv init
uv add ruff

팀이 Poetry나 PDM을 문서와 CI에 이미 썼다면, lock 파일과 설명을 바꿀 준비 없이 uv를 병행 도입하지 마세요.

7. Ruff: 린트와 포맷을 같은 도구로

astral-sh/ruff · MIT · 명령줄

많은 팀이 Flake8·isort·Black에 나눠 준 일을 커버하고, 속도가 저장 시·CI에 맞습니다. ruff check .로 문제, ruff format .로 포맷. Ruff format과 Black이 같은 저장소를 동시에 고치게 두지 마세요. 두 포맷이 서로 덮어씁니다.

규칙은 pyproject.toml에. 기본 규칙으로 일주일 돌린 뒤 오탐에 맞춰 조이고, 첫날 전 플러그인을 켜지 마세요.

8. mise: 버전이 저장소를 따라감

jdx/mise · MIT · 명령줄

Node 22·Python 3.12·Go 1.23을 각자 ~/.zshrc 구두 약속에 맡기면 안 됩니다. mise는 프로젝트에 .mise.toml을 두고, 디렉터리 들어가면 이 저장소가 요구하는 버전으로, 나가면 복구합니다. 「nvm + pyenv + 아무도 안 고치는 asdf」 같은 겹층을 대체하는 것이지 언어 자체를 대체하지 않습니다.

brew install mise 후 README대로 shell 설정에 활성화 줄을 넣으세요. 바이너리만 두고 hook을 빼면 디렉터리 따라 버전이 안 바뀝니다.

9. k9s: 클러스터 문제는 먼저 보고, 먼저 고치지

derailed/k9s · Apache-2.0 · 터미널 UI

Pod가 안 뜨고, 서비스에 엔드포인트가 없고, 로그가 방금 날아갔을 때 kubectl에서는 명령을 세네 번 이어 붙입니다. k9s는 네임스페이스·Pod·로그·포트 포워드를 키보드 UI 하나에 넣습니다. brew install k9s, 그다음 k9s.

프로덕션 클러스터는 읽기 전용 kubeconfig. 삭제·컨테이너 진입 단축키가 있으니 공유 머신에 cluster-admin을 달지 마세요.

10. Bruno: API 컬렉션을 저장소에

usebruno/bruno · MIT · 데스크톱

Postman 컬렉션이 한 사람 계정에만 있으면 환경 URL과 예시 요청이 사라집니다. Bruno는 요청을 텍스트(.bru)로 두어 코드와 같이 리뷰합니다. brew install --cask bruno.

비밀은 Git이 무시하는 환경 파일에, 커밋할 .bru에 넣지 마세요. 팀이 다른 API 클라이언트로 통일했다면 「나만 쓰는」 컬렉션을 또 추가하지 마세요.

한 모니터는 코드 에디터, 다른 한 대는 플로차트 소프트웨어—개발 도구와 오피스 문서에 해당
왼쪽은 매일 검색하고 diff 볼 코드, 오른쪽은 문서와 플로차트. 뒤 20개는 이 경계로 고릅니다.

오피스: 구독을 대체할 도구 열 개

오피스는 PDF·노트·도표·표·작업·가계·파일 동기화·스캔 문서 보관을 뜻합니다. 로컬에서 먼저 돌릴 수 있으면 좌석 구독을 먼저 내지 않습니다. 자체 호스팅 서비스 라이선스가 「코어」와 「엔터프라이즈 디렉터리」로 나뉘면 아래에 적습니다.

도구해결하는 것라이선스형태
Stirling-PDFPDF 병합·분할·압축코어 MIT, 별도 전용 디렉터리자체 호스팅
SiYuan (시위안 노트)블록 참조, 데이터 로컬AGPL-3.0데스크톱 / 자체 호스팅
JoplinMarkdown 노트·암호화 동기화클라이언트 AGPL-3.0데스크톱 / 모바일
draw.io 데스크톱플로차트를 Git에GPL-3.0데스크톱
PenpotUI 디자인 파일을 자신이 보관MPL-2.0자체 호스팅
Grist스프레드시트가 사실 DBApache-2.0자체 호스팅
Vikunja작업·칸반·캘린더AGPL-3.0자체 호스팅
Actual봉투식 예산MIT로컬 우선
Syncthing기기 간 폴더 동기화MPL-2.0데스크톱 / 서버
Paperless-ngx스캔 OCR·보관GPL-3.0자체 호스팅

11. Stirling-PDF: PDF를 낯선 사이트에 올리지 않기

Stirling-Tools/Stirling-PDF · 코어 MIT, 별도 전용 디렉터리 · 자체 호스팅

병합·분할·회전·압축은 계약서를 임시 웹에 넘기면 안 됩니다. Stirling-PDF는 흔한 PDF 작업을 자신이 배포한 페이지로 모읍니다. 저장소 LICENSE: proprietary·saas·engine 등 디렉터리 밖은 MIT; 그 디렉터리가 있으면 각각 LICENSE를 따릅니다. 일부 기능에는 별도 프로덕션 이용 약관이 있습니다.

배포 전 README가 권하는 이미지와 tag를 보고, 그 tag의 LICENSE를 읽으세요. 개인 장비에서 파일 처리는 먼저 써 볼 수 있습니다. 남에게 서비스로 주거나 재판매하려면 전용 디렉터리 조항을 끝까지 읽으세요. 중국어 OCR은 기본 이미지에 언어 팩이 깔렸다고 가정하지 마세요.

12. SiYuan (시위안 노트): 지식을 먼저 내 디스크에

siyuan-note/siyuan · AGPL-3.0 · 데스크톱 / 자체 호스팅

블록 참조·양방향 링크·로컬 우선. 노트 본문은 이 기기 데이터 디렉터리에 있고, 절반만보내는 계정 안에 있지 않습니다. 공식 동기화는 선택 유료; 자체 동기화는 문서의 S3 방안을 쓸 수 있습니다. 라이선스 AGPL-3.0—개인 사용·수정은 되고, 공개에 네트워크 서비스로 제공하면 AGPL 의무를 따라야 합니다.

커널이 웹을 켜면 127.0.0.1에 묶으세요. 폰 편의로 0.0.0.0을 열고 인증 없이 두지 마세요.

13. Joplin: 클리핑과 암호화 동기화

laurent22/joplin · 클라이언트 AGPL-3.0 · 데스크톱 / 모바일

블록 에디터보다 공책에 가깝습니다: Markdown·웹 클리핑·종단간 암호화. 동기화 대상은 자신의 Joplin Server·WebDAV·객체 스토리지. 저장소 루트는 기본 AGPL-3.0, packages/server에 별도 LICENSE가 있으면 서버 배포 전에 열어보세요.

암호화 비밀번호를 잃으면 동기화된 노트도 못 엽니다. 복구 방법은 노트가 아니라 비밀번호 관리자에 적으세요. SiYuan을 지식 베이스로 쓰면 같은 노트를 Joplin에 또 미러하지 마세요. 두 개의 목차가 갈라집니다.

14. draw.io 데스크톱: 아키텍처 다이어그램이 저장소를 따라감

jgraph/drawio-desktop · GPL-3.0 · 데스크톱

플로차트·네트워크 다이어그램·시퀀스 다이어그램을 .drawio(XML)로 두어 Git에 넣을 수 있습니다. diff는 예쁘지 않지만 PNG만보내는 계정에 갇히지는 않습니다. 데스크톱 저장소는 현재 GPL-3.0. 협업 커서가 필요 없으면 데스크톱만으로 충분하고 그림 서버를 또 띄울 필요는 없습니다.

디자인 시스템은 아닙니다. 컴포넌트 스타일과 주석 규칙은 팀이 정해야 합니다. VS Code 공식 확장도 있어, 에디터를 떠나지 않고 한 장 고칠 때 맞습니다.

15. Penpot: 디자인 파일을 자신이 남길 수 있게

penpot/penpot · MPL-2.0 · 자체 호스팅

UI 시안·컴포넌트·프론트엔드용 주석이 전부 남의 클라우드에 있으면 계정이 멈추면 스크린샷만 남습니다. Penpot은 자체 배포 가능하고 파일은 열린 SVG/CSS 쪽에 가깝습니다. 라이선스 MPL-2.0. 스택에 프론트·백엔드·PostgreSQL·Redis가 있어, 혼자 두 장 스케치만 그릴 때 이 스택을 유지할 가치는 없습니다.

팀이 정말 「디자인 파일이 우리 머신에」가 필요할 때 저장소 Docker Compose를 쓰고, 읽은 버전을 고정하세요. 그렇지 않으면 draw.io나 로컬 파일을 계속 쓰세요.

16. Grist: Excel이 이미 DB가 됐을 때

gristlabs/grist-core · Apache-2.0 · 자체 호스팅

한 시트를 열 사람이 메신저로 주고받고, 열에 번호·상태·메모가 섞이면 이건 스프레드시트가 아니라 제약 없는 DB입니다. Grist는 표 느낌을 유지하고 아래는 관계형 열, 수식도 씁니다. 코어 Apache-2.0.

BI는 아닙니다. 대시보드와 복잡한 권한이 필요하면 데이터 모델을 먼저 정리한 뒤 시각화를 말하세요. 자체 호스팅 시 백업은 DB이지, 한 번보낸 xlsx가 아닙니다.

17. Vikunja: 할 일 목록에 무거운 PM부터는 불필요

go-vikunja/vikunja · AGPL-3.0 · 자체 호스팅

할 일·리스트·칸반·몇 명과 공유는 종종 「완전한 프로젝트 관리부터 배포」로 갑니다. Vikunja는 더 작고 SQLite로 시작, 사람이 늘면 PostgreSQL. 라이선스 AGPL-3.0.

티켓을 코드 저장소·고객 메일·SLA 시계에 묶어야 하면 부족합니다. 그 흐름은 이미 쓰는 시스템에 두고, 작업의 제2 진실을 또 키우지 마세요.

18. Actual: 가계는 먼저 어느 봉투에 있는지

actualbudget/actual · MIT · 로컬 우선

봉투 예산: 수입을 먼저 월세·세금·서버·기타 봉투로 나눕니다. Actual은 장부를 로컬에 두고 선택적으로 자체 동기 서버. 라이선스 MIT. 은행 자동 가져오기는 지역·커넥터에 달려 있고, 국내 카드로 자동 거래내역이 된다고 가정하지 마세요.

개인·소규모 팀 장부이지 세무 소프트웨어나 회사 총계정이 아닙니다. 증빙·인보이스 보관은 Paperless에 맡기고, PDF 인보이스를 예산 앱 첨부에만 두어 유일한 사본으로 쓰지 마세요.

19. Syncthing: 폴더 동기화, 남의 클라우드 없이

syncthing/syncthing · MPL-2.0 · 데스크톱 / 서버

두 PC·한 폰 사이에 디렉터리를 맞추려고 파일을 먼저 클라우드 드라이브에 올릴 필요는 없습니다. 기기 ID로 서로 승인하고 트래픽은 P2P. 라이선스 MPL-2.0.

삭제도 동기화됩니다. 한 대에서 실수로 지우면 다른 기기도 따라 지웁니다. 그래서 백업이 아닙니다. 중요 디렉터리는 동기화 밖에 restic으로 암호화 복제와 이전 버전을 남기세요.

20. Paperless-ngx: 스캔 문서에서 글자를 찾을 수 있게

paperless-ngx/paperless-ngx · GPL-3.0 · 자체 호스팅

계약·영수증·택배 전표를 한 디렉터리에 넣으면 OCR·태그·발신자별 보관. 라이선스 GPL-3.0. 중국어는 Tesseract 언어 팩(예: chi_sim)이 필요하고, 기본 이미지에 항상 포함되지 않습니다.

원본은 디스크, OCR은 CPU를 씁니다. iOS 빌드 중인 16GB 머신과 같은 대에 두지 마세요. 관리 UI를 공인터넷에 노출하지 말고, 원본 디렉터리와 DB를 함께 백업하세요.

자동화: 반복 노동을 줄이는 프로젝트 열 개

자동화는 한 흐름·한 알림·한 백업·한 의존성 업데이트입니다. 스크립트와 cron으로 말할 수 있으면 오케스트레이션 플랫폼부터 올리지 마세요.

도구해결하는 것라이선스형태
ActivepiecesSaaS와 webhook을 흐름으로코어 MIT, ee 디렉터리 별도자체 호스팅
Node-RED이벤트와 API 접착Apache-2.0자체 호스팅
Windmill스크립트를 cron·내부 페이지로커뮤니티는 주로 AGPL자체 호스팅
ntfyHTTP로 폰에 알림Apache-2.0(서버)자체 호스팅
Uptime Kuma사이트·포트 생존MIT자체 호스팅
changedetection.io웹이 바뀌면 알림Apache-2.0자체 호스팅
Renovate의존성 업그레이드를 PR로AGPL-3.0GitHub App / 자체 호스팅
restic암호화 백업과 복구BSD-2-Clause명령줄
Vaultwarden비밀번호 금고를 자신이AGPL-3.0자체 호스팅
IT-Tools인코딩·해시·JWT·cron 식GPL-3.0브라우저 / 자체 호스팅

21. Activepieces: 시각적 흐름 전에 MIT인 부분을 구분

activepieces/activepieces · 코어 MIT, ee 디렉터리 별도 · 자체 호스팅

폼 들어와 표에 쓰고 메일 한 통—스크립트로도 되지만 인수인계는 그림이 낫습니다. Activepieces LICENSE: packages/ee/ 밖은 MIT; 엔터프라이즈 디렉터리는 별도 엔터프라이즈 라이선스, 프로덕션에서 그 기능을 쓰려면 구독 조항을 맞춰야 합니다.

n8n의 Sustainable Use License는 자체 실행은 허용하지만 남에게 호스팅 서비스로 제공하는 것을 제한하므로 이 30개에 없습니다. 이미 n8n을 자체 배포하고 외부에 안 준다면 이 목록 때문에 이사할 필요는 없습니다. 새 흐름을 짜고 코어가 MIT를 원하면 Activepieces 커뮤니티 부분을 쓰고, 엔터프라이즈 기능은 계약 없이 켜지 마세요.

22. Node-RED: webhook에서 다음 시스템까지 한 메시지

node-red/node-red · Apache-2.0 · 자체 호스팅

이벤트에 맞습니다: webhook 수신, JSON 변환, 다른 API나 메시지 큐로 전달. Apache-2.0. 흐름은 Git으로 보낼 수 있습니다. 토큰은 credential 저장소에, 커밋하는 흐름 JSON에 넣지 마세요.

대량 데이터와 복잡한 재시도는 커지는 캔버스에 쌓지 마세요. 그런 작업은 Windmill이나 기존 job 시스템을 쓰세요.

23. Windmill: 스크립트가 서랍에 쌓였을 때 내부 페이지

windmill-labs/windmill · 커뮤니티는 주로 AGPL · 자체 호스팅

저장소 LICENSE: 기본 AGPL, Apache-2.0 파일도 있고, 엔터프라이즈 기능은 전용 라이선스. Python이나 TypeScript 스크립트를 「동료가 폼 채우고 실행」하는 내부 도구로 바꾸고 스케줄을 붙이기에 맞습니다.

cron 하나와 스크립트 하나뿐이면 올릴 필요 없습니다. 올릴 때는 커뮤니티 기능인지 엔터프라이즈인지 나누고 AGPL을 받을 수 있는지 결정하세요.

24. ntfy: 알림이 로그에만 있으면 안 됨

binwiederhier/ntfy · 서버 Apache-2.0 · 자체 호스팅

백업 실패·인증서 만료 임박·빌드 실패가 서버 로그에만 있으면 알림이 없습니다. ntfy는 HTTP 한 번으로 폰·데스크톱에 밉니다. 서버 Apache-2.0. 공용 ntfy.sh에서는 토픽 이름이 추측될 수 있으니 자체 배포하고 접근 토큰을 쓰세요.

curl -d "backup failed" -H "Authorization: Bearer TOKEN" https://ntfy.example/ops

토큰과 도메인은 자신의 것으로 바꾸세요. 예시 토픽 이름을 프로덕션에 쓰지 마세요.

25. Uptime Kuma: 먼저 죽었는지 알기

louislam/uptime-kuma · MIT · 자체 호스팅

HTTP·TCP·Ping·인증서 만료, 소규모 팀에 상태 페이지 하나면 됩니다. MIT. 메트릭 시스템이 아닙니다. CPU·지연 히스토그램은 Prometheus류에 맡기고 Kuma에 쌓지 마세요.

공개 상태 페이지는 내부 호스트명을 드러냅니다. 내부 점검은 내부망이나 SSH 뒤에 두고, 외부에는 사용자에게 보여줄 항목만. 알림은 자신의 ntfy에 연결하세요.

26. changedetection.io: 매일 새로고침 대신 페이지가 바뀌면

dgtlmoon/changedetection.io · Apache-2.0 · 자체 호스팅

가격·문서 단락·채용 페이지·릴리스 노트—선택자를 두고 바뀔 때만 알림. Apache-2.0. JavaScript가 필요한 페이지는 브라우저를 쓰므로 CPU가 정적 HTML보다 높고, 간격을 넉넉히.

상대 사이트 약관과 robots를 지키세요. 로그인 후 페이지나 명시적 금지 콘텐츠를 긁지 마세요. 알림은 ntfy로, 이 일만 위해 챗봇을 또 설치하지 마세요.

27. Renovate: 의존성 업그레이드를 거절 가능한 PR로

renovatebot/renovate · AGPL-3.0 · GitHub App / 자체 호스팅

lock 파일이 낡는 건 모르는 게 아니라 거대한 diff에서 breaking change를 찾기 싫어서입니다. Renovate는 패키지별 PR로 나누고 설정은 저장소 renovate.json. 라이선스 AGPL-3.0. 공개 저장소는 호스팅 GitHub App이 흔하고, 비공개에서 써드파티 App을 안 쓰려면 자체 호스팅.

첫 주에 major 자동 병합은 켜지 마세요. Dependabot은 GitHub 제품이라 이 자체 호스팅 목록에 없습니다. 이미 익숙하면 바꿀 필요 없습니다.

28. restic: 백업은 복구를 연습해 봤을 때의 정의

restic/restic · BSD-2-Clause · 명령줄

암호화·중복 제거·로컬 디스크·SFTP·객체 스토리지. BSD-2-Clause. Syncthing은 현재 상태를 맞추고, restic은 과거 스냅샷을 남깁니다.

restic init --repo /path/to/repo
restic -r /path/to/repo backup "$HOME/Documents"
restic -r /path/to/repo snapshots
restic -r /path/to/repo restore latest --target /tmp/restore-test

비밀번호는 Git에 안 들어가는 파일을 가리키는 RESTIC_PASSWORD_FILE. 분기마다 한 번은 복구해 스냅샷이 비어 있지 않은지 확인하세요.

29. Vaultwarden: 비밀번호 금고 서버를 자신이

dani-garcia/vaultwarden · AGPL-3.0 · 자체 호스팅

Bitwarden 클라이언트와 호환되는 서버 API를 구현하고, 공식 서버보다 가볍습니다. 라이선스 AGPL-3.0. 커뮤니티 구현이지 Bitwarden 회사 공식 서버가 아닙니다. 클라이언트는 여전히 공식 Bitwarden 앱.

HTTPS는 필수. 관리 토큰은 저장소에 넣지 마세요. 데이터 디렉터리를 백업하고 암호화 암호는 다른 곳에—데이터만 백업하고 암호는 머릿속만이면 기기가 죽으면 금고도 없습니다. 인증 없는 공인터넷 포트에 노출하지 마세요.

30. IT-Tools: 잔무는 브라우저에

CorentinTh/it-tools · GPL-3.0 · 브라우저 / 자체 호스팅

Base64·해시·JWT 디코드·cron 식 설명·정규식—매주 한 번씩 하는 일인데 출처 불명 웹마다 찾을 가치는 없습니다. IT-Tools는 로컬로 열거나 자체 배포. GPL-3.0. 많은 도구는 브라우저에서 계산합니다.

그래도 프로덕션 토큰을 회사 전체가 쓰는데 감사 안 한 인스턴스에 붙이지 마세요. 자신 PC에서 한 번 열면 충분합니다.

첫 주에 실제로 설치할 것

30개는 메뉴이지 설치 스크립트가 아닙니다. 첫 주는 아래만 두고, 일주일 채운 뒤 더하세요.

하는 일먼저나중에
매일 코드mise, uv, Ruff, ripgrep, lazygit, delta, ghact(고칠 Actions 없을 때), k9s(클러스터 없을 때)
노트·파일SiYuan 또는 Joplin 하나, Syncthing 추가두 번째 노트, Penpot
돈·계약Actual, PDF는 LICENSE 읽은 Stirling 이미지Paperless(디스크·OCR 준비 전)
머신을 직접 관리ntfy, Uptime Kuma, restic, 복구 한 번Activepieces, Windmill(두 번째 흐름 없을 때)
개발기 첫 명령 묶음
brew install ripgrep lazygit git-delta gh uv ruff mise
git config --global core.pager delta
git config --global interactive.diffFilter "delta --color-only"
uv python install 3.12

mise shell 활성화 줄은 현재 README를 따르세요. gh는 gh auth login, 토큰을 저장소에 넣지 마세요.

자체 호스팅 시 피할 함정

  1. 관리 페이지는 127.0.0.1에 묶고 SSH 로컬 포워딩으로 노트북 브라우저에. Uptime Kuma, Vaultwarden, SiYuan, Paperless, Activepieces도 같습니다.
  2. 엔터프라이즈 디렉터리는 clone만으로 쓸 수 없습니다. Activepieces packages/ee, Stirling 전용 디렉터리, Windmill 엔터프라이즈, AFFiNE처럼 「프론트 MIT·서버 별도 엔터프라이즈」—프로덕션에서는 그 LICENSE를 먼저 읽으세요. 이 글이 SiYuan을 쓰고 AFFiNE 자체 호스팅 백엔드를 무료로 넣지 않은 이유입니다.
  3. AGPL 개인 사용은 보통 문제없음, 공개에 네트워크 서비스로 제공하면 소스 공개 의무가 따릅니다. 확실치 않으면 마케팅의 「open source」가 아니라 라이선스를 읽으세요.
  4. 동기화는 백업이 아닙니다. Syncthing은 삭제를 전파하고, restic은 스냅샷을 남깁니다. 금고 암호와 데이터 디렉터리는 분리 보관.
  5. 버전 고정. Compose에 읽은 tag를 쓰고 떠다니는 latest는 쓰지 마세요. 업그레이드 전 그 버전 마이그레이션 안내를 보세요.
  6. 비밀은 Git에 넣지 않습니다. Bruno 환경 파일, Node-RED 토큰, restic 비밀번호 파일, ntfy Bearer—무시되는 경로에만.

Cloud Mac에 올릴 때

명령줄 묶음은 Mac에 Homebrew로 설치하면 되고 메모리를 많이 쓰지 않습니다. Docker 안 OCR·디자인 협업·워크플로 오케스트레이션은 메모리와 디스크를 씁니다. 16GB에서 Xcode와 시뮬레이터도 돌리면 Paperless 중국어 OCR이나 Penpot 전체 DB를 같은 대에 두지 마세요. PDF와 스캔은 디스크가 크고 컴파일과 CPU를 안 겪는 머신이 낫습니다.

act는 Linux 컨테이너라 Xcode가 필요한 GitHub Actions를 대체하지 못합니다. iOS 빌드·서명·시뮬레이터는 Mac에 두고, workflow가 lint나 Linux 테스트만이면 act로 로컬 예행.

관리 UI는 계속 루프백에 묶으세요. 자신 PC에서 SSH 포워딩으로 원격 포트를 로컬 브라우저로—Vaultwarden이나 Kuma 포트를 공인 IP에 매핑하지 마세요. restic 저장소는 객체 스토리지나 다른 디스크에, Mac만이 유일한 복제가 되면 안 됩니다. 노트와 .mise.toml, Ruff 설정은 Git에; 비밀번호와 API 토큰은 Git에 넣지 마세요.

FAQ

Star가 많으면 설치할 만한가요? 그 이유로는 부족합니다. Star는 널리 퍼졌다는 뜻이지, 라이선스가 맞거나 내 문제를 푼다는 뜻이 아닙니다. 이번 주 줄이고 싶은 노동 하나를 적고 위 표에서 고르세요.

왜 n8n이 없나요? Sustainable Use License라 MIT·Apache·GPL이 아닙니다. 자체 배포하고 외부 호스팅으로 안 주면 많이 쓰고, 이 목록 때문에 이사할 필요는 없습니다. 이 목록이 원하는 대안은 라이선스 경계가 더 분명한 것: Activepieces MIT 코어, 또는 Apache-2.0 Node-RED.

30개를 모두 설치해야 하나요? 아니요. 첫 주는 「첫 주에 실제로 설치할 것」 표에서 자신과 맞는 줄만. 노트·동기화·오케스트레이션·백업은 종류별 하나.

AGPL과 MIT를 개인이 쓸 때 차이는? 자신의 기기에서 사용·수정은 둘 다 됩니다. 차이는 주로 배포와 네트워크 서비스: AGPL은 네트워크로 제공할 때 소스 의무가 있고, MIT는 저작권 표시를 남기는 정도입니다. 엔터프라이즈 디렉터리와 전용 추가 조항은 따로 읽고, 「저장소 첫 화면에 MIT」로 전체를 말할 수 없습니다.

자체 호스팅 비밀번호 금고는 안전한가요? Vaultwarden은 데이터를 내 디스크에 두고 HTTPS·업데이트·백업·암호 보관은 내 책임입니다. 공식 Bitwarden 호스팅은 다른 트레이드오프입니다. 어느 쪽이든 암호와 데이터 백업은 나누고 복구를 연습했어야 합니다.

전부 한 대 Cloud Mac에 올릴 수 있나요? 명령줄 도구는 됩니다. OCR·Penpot·여러 DB는 16GB에서 Xcode와 같이 두기 부적합합니다. 관리 페이지는 SSH 포워딩, restic 복제는 이 Mac만에 두지 마세요.

개발 노트 · 오픈소스

CLI는 Homebrew, 관리 화면은 SSH 터널

ripgrep · restic · Cloud Mac

Cloud Mac 플랜 보기
한정 혜택 플랜 보기