모두가 GitHub를 떠나면서 git의 본래 정신을 잊는 것처럼 보임
git은 원래 탈중앙화를 의도했고, 문제는 GitHub가 더 깔끔하고 잘 확장되며 관리도 잘돼서 git 주변 도구가 모두 GitHub로 중앙화됐다는 데 있음
그래도 GitHub에 자동 동기화되는 미러는 남아 있으면 좋겠음. 몇 년 동안 프로젝트가 자체 호스팅이나 틈새 호스팅으로 갔다가 GitHub 미러가 죽거나 삭제되고, 결국 프로젝트가 시간 속으로 사라지는 걸 봐왔기 때문임
git은 탈중앙화되어 있고 GitHub는 코드를 올릴 수 있는 장소 중 하나일 뿐이며, 여러 원격 서버에 push할 수 있음
git의 정신을 잊은 건 아니지만, GitHub가 아무에게도 말하지 않고 모든 공개 저장소로 첫 Copilot을 학습시킨 것도 기억함
그래서 더는 개인 코드를 거기에 커밋하지 않겠음
발견 가능성, 별표, AI 봇이 쏟아내는 이슈 같은 사회적 기능에도 관심 없음. 지금 상태로 충분함
그리고 “Open Source is not about You”도 기억해야 함
맞지만 GitHub는 git 이상임
모두가 잊는 플랫폼의 가장 중요한 측면은 사회적 구성요소이고, 지속적인 외부 저장소를 만들고 저장소 간 협업을 아주 쉽게 해줬다는 점임
Forgejo는 도구까지 탈중앙화하려고 많은 작업을 하고 있음
자체 호스팅 forge들을 서로 연결하기 위해 공개 프로토콜과 표준을 사용함
모두가 “git의 정신”에 매료돼서 git을 쓰는 건 아님
원래 의도됐던 이메일 패치 모델로 써본 사람은 아주 소수이고, 나머지 대부분은 배울 생각도 없을 가능성이 큼
사람들은 기본적으로 GitHub가 쓰니까 git을 쓰거나, 조금 더 후하게 말하면 GitHub 같은 중앙 호스트와 결합했을 때 잘 동작하기 때문에 씀
로컬에서 코드를 개발하고 웹 포털에서 이슈와 패치를 논의하는 모델에 끌리는 것이고, 그중 git 자체가 제공하는 부분은 작음
동의함. git 저장소를 옮기는 건 쉽지만, 프로젝트 전체 표면적을 옮기는 게 어려움
이슈, 릴리스, CI, 문서, 보안 권고, 검색과 발견 가능성은 시간이 지나며 모두 GitHub에 묶이는 경향이 있음
오픈소스 프로젝트라면 자체 호스팅을 진실의 원천으로 두되, 사람들이 실제로 찾을 수 있게 읽기 전용 GitHub 미러를 유지하는 방식이 좋다고 봄
내 git 저장소도 자체 호스팅 NUC로 옮겼음
아직 세상에 공유할 HTTP 프론트엔드는 안 붙였는데, AI 스크래퍼에게 콘텐츠를 제공하고 싶지 않고 그것들을 막는 작업도 하고 싶지 않기 때문임
오픈소스 덕을 본 회사들이 업계를 이렇게 오염시킨 건 부끄러운 일임
NUC에서 Gitea를 쓰고 있고, 중고 하드웨어라 50파운드 정도 들었음
3년째 돌아가는 중임. LAN에서만 접근 가능하게 잠그고 인터넷에 공개하지 않으면 견고하고 오래가는 사용감임
Pi에서 자체 호스팅 Forgejo를 GitHub 미러로 돌리고 있지만 아마 오래가진 않을 듯함
저장소는 몇 주 동안은 잘 미러링되다가 멈춤. 만료되지 않는 PAT 토큰을 넣었는데도 만료됐다고 주장하고, 다른 곳에서 테스트하면 토큰은 정상 동작함
로그에 아무것도 없을 때도 있고, 어떤 때는 데이터베이스가 잠겨 있음. 데이터베이스를 쓰는 건 Forgejo뿐임
지금까지는 이게 Forgejo 문제인지, Pi의 형편없는 SD 카드 입출력 때문에 데이터베이스 잠금이 생기는 건지, Forgejo가 미러 역할을 못하는 건지 구분하지 못했음
오픈소스와 OSI는 업계가 심어둔 장치임. 누가 후원하는지 보면 됨
독점 초대형 클라우드 기업들은 공짜 노동을 얻고, 그걸로 추적 감시망, 마음대로 설치할 수 없는 휴대폰, 기기 증명, 광고 차단 없는 브라우저 단일 문화 같은 우리가 싫어하는 세상을 만듦
Google은 사람들이 BSD/MIT를 사랑하게 만들었고, 그 결과를 보면 됨
전형적인 수법 중 하나는 “이제 그건 우리 것”임. Elasticsearch나 Redis 같은 걸 벤더가 만들면, 초대형 클라우드가 자기 독점 상품으로 가져가 이익을 다 가져가고, 원 저자와 회사는 굶게 됨
또 하나는 “수용, 확장, 말살”임. KHTML이나 Linux 같은 오픈소스 프로젝트를 가져와 자기 버전을 만들고, 시장에 뿌려 경쟁자를 밀어낸 뒤, 반경쟁적 수단으로 모두의 눈앞에 자기 제품을 놓고, 점유율을 얻으면 추적을 넣고 자유를 제거함
오픈소스는 “사람에게는 자유, 회사는 돈을 내야 함”으로 대체돼야 함. 초대형 클라우드에 맞설 이빨이 있는 소스 공개 셰어웨어가 필요함
Richard Stallman의 라이선스조차 충분히 강하지 않고, CC BY-NC-SA가 더 낫다고 봄
“순수” 오픈소스는 기업 복지였고 실수였음. 거인들이 우리 밧줄로 우리를 매달 수 있게 해줬음
누군가 자기 작업을 기꺼이 오픈소스로 제공하면서, AI가 읽고 지식으로 삼아 나중에 더 많은 프로그래머를 돕는 건 선을 긋는 이유를 모르겠음
내 코드는 AI가 적극적으로 읽어주길 바람
글의 “What I gave up” 절에서 저자가 자기 사회적 그래프를 언급했는데, GitSocial을 쓰면 사회적 그래프와 협업 이력을 가져갈 수 있음
어떤 git 호스트 사이에서도 forge 간 pull request를 가능하게 해주며, 전부 제3자 의존성 없이 동작함
GitHub는 소셜 네트워크이고 git 호스팅은 작은 기능일 뿐임
그래서 이런 대안들이 좀처럼 뜨지 못함
“CTO가 공개 사과했고 AI 기반 부하를 감당하려면 용량을 30배 키워야 한다고 말했다”는 대목을 보면, GitHub의 일반 사용에 과금을 시작하지 않길 바람
하지만 일부 바이브 코더들이 하루에 수천 커밋을 만드는 걸 보면 점점 더 회의적이 됨
코드를 무료로 공유하고 협력할 수 없게 되면 정말 아쉬울 것임
일정 개수 이후에는 하루 커밋 수에 과금하면 됨. 문제 해결임
솔직히 LLM이 자신들이 만든 이 문제를 해결하는 데도 도움을 줄 것 같음
숙련된 사람은 저장소가 이런 문제를 갖고 있으면 몇 초 만에 알아보니, 조정된 시스템도 가능할 것임
까다로운 부분은 바이브 할당량을 적용할 수 있게 하는 법적 약관을 쓰는 일임
Anthropic이 이미 CC에서 하는 방식이고, GitHub와 GitLab도 아마 비슷하게 하고 있을 것 같음. 대가는 Twitter 개발자들과 작은 subreddit 일부의 미움이겠지만, 충분히 감수할 만할 듯함
한편 /r/vibecoding 같은 곳에서 사람들이 월 200달러 구독료를 내고 취미 프로젝트나 장난감 사이트에 가까운 것을 만드는 걸 자주 보면 꽤 놀라움
감당 가능할 때 어리석은 지출을 해본 적은 있지만 이건 좀 다르게 느껴짐
어쩌면 의미와 목적을 제공하는 서비스에 연 2400달러를 내는 것일 수도 있음. 40대쯤 되어 부자나 유명인이 될 수 없다는 걸 깨닫는다면, 다른 대안들에 비해 감당 가능한 가격일지도 모름
Bluesky처럼 AT Protocol 위에 만들어진 탈중앙화 서비스 Tangled도 들었음
GitHub가 구현을 질질 끌어서, 그 기능을 GitHub에 추가하는 회사들이 생길 정도였던 pull request 쌓기 같은 실제로 유용한 기능도 있음
써본 사람이 있는지 궁금함 https://tangled.org/
최근에 자체 호스팅 Knot을 설정했지만, 다른 기능은 아직 많이 써보지 못했음 https://tangled.org/h14h.com/knot
전반적으로 플랫폼은 꽤 유망해 보임. AtProto가 개인 데이터 서버, 릴레이, AppView를 분리하는 방식은 적절한 절충으로 보임
git 저장소를 헤드리스 데이터 전용 서버로 호스팅할 수 있어서, 자체 호스팅치고는 거의 고통이 없음
Forgejo 같은 ActivityPub 해법과 비교하면, 내가 신경 쓰는 건 데이터 통제뿐인데 웹앱 전체를 호스팅하고 확장하는 지루함을 피할 수 있어 좋음
초기 설정 이후 운영 유지보수는 knot-server 버전을 올리고 다시 배포한 것뿐임. tangled.org가 오래된 버전이면 경고 배너를 보여줌
다른 프로젝트에서 Tangled를 더 써보고 기능도 테스트해보고 싶음. 특히 jj와 stacked PR의 네이티브 지원에 관심 있음
확실히 알파 소프트웨어지만 오픈소스 용도로는 쓸 수 있음
맞춤 CI를 연결하는 tack 같은 흥미로운 실험도 있음
ATProto가 비공개 데이터를 지원하게 되면 언젠가 비공개 저장소도 지원할 수 있겠지만, 시간이 좀 걸릴 수 있음 https://tangled.org/mitchellh.com/tack
큰 벤처 투자를 막 받았음
아직 사업 모델에 대한 언급은 없어서, 무엇이 될지 정말 궁금함
jj 호환성과 깔끔한 CI 구현 때문에 쓰고 싶지만, 비공개 저장소가 필요해서 아직은 나한테 맞지 않음
내 취향에는 너무 탈중앙화되어 있음
대신 radicle.xyz를 쓰는 게 좋음
Fossil도 고려해볼 만함
코드 이력, 위키, 티켓, 포럼을 포함한 전체 저장소 상태를 단일 파일로 묶고, 그 상태가 복제됨
호스팅 제공자를 바꿔야 할 때도 Fossil에서는 그 때문에 잃는 데이터가 없음 https://fossil-scm.org/
Fossil을 좋아함. 고집 있는 작업 흐름이 내 생각과 맞는 무언가가 있음
하지만 네트워크 효과가 문제임. 팀을 Fossil로 데려올 수가 없음
팀은 다른 사람들, 다른 부서와 코드를 공유해야 하고 모두, 사실상 99% 이상이 git을 씀
Fossil을 쓰라고 강제하는 건 오히려 해를 끼치는 느낌이고, 진퇴양난임
기술 분야의 다른 많은 일과 비슷함. 동료 개발자에게 함수형 스타일 관용구를 쓰게 하거나 불변성을 강제하려 할 때도 그렇음
Facebook이나 Google 프로젝트 같은 큰 무언가가 커뮤니티를 강제로 움직여야 하는 것처럼 느껴짐
몇 년 전에 Fossil을 검토했고 정말 멋지다고 생각했음. 모든 것이 통합돼 있는 점은 훌륭함
하지만 철학적으로는 Fossil이 마음에 들지 않음. 이력을 정리할 방법이 없고 모든 것을 그대로 보존함
그게 원하는 바면 좋지만, 내 git 작업 흐름에서는 이것저것 실험한 뒤 push하기 전에 커밋을 정리하고 조직하는 걸 좋아함
사람들은 끊임없이 탈중앙화를 외침
하지만 현실에서는 대부분의 시스템이 결국 중앙화됨
어쩌면 사람들이 탈중앙화를 요구할 때 실제로 찾는 건, 자신들이 새 개척자가 될 수 있는 새로운 중심일지도 모름
기존 규칙으로는 이길 가능성이 없다고 느끼면, 탈중앙화를 명분 삼아 판을 뒤집으려는 것처럼 보임
글 제목 바로 아래 첫 줄만 읽었어도 됐을 텐데: “I moved my code from GitHub to a self-hosted Forgejo”
탈중앙화는 단일 중심이 없다는 뜻임
사람들이 원하는 이유는 그 단일 중앙 관리가 이런저런 이유로 충분하지 않기 때문임
사람들이 외친다는 것과 실제로 원한다는 것 사이에는 차이가 없음
사람들은 탈중앙화의 장점을 원하지만, 그 대가를 치르기는 원하지 않음
더 나쁜 건 중앙화 시스템이 대부분의 시간에는 훌륭하고, 고통은 합병이나 갑작스러운 가격 인상처럼 짧은 기간에 매우 강하게 온다는 점임
탈중앙화는 항상 조금씩 아픈 대신, 중앙화 대안이 무너지는 드문 순간에 큰 행복을 줌
개발자라서 탈중앙화라고 말하는 것뿐임
보통 말로는 불매운동임. “과자가 Nestlé에 너무 중앙화됐으니 과자를 탈중앙화해야 한다”고 말하진 않음
1년 전부터 홈랩에서 자체 호스팅 Gitea로 옮겼고, 공개 접근은 막아뒀음
HTTPS도 없고, 가입은 비활성화했으며 저장소도 공개가 아님
공개 인스턴스를 만들고 HTTPS를 쓰되 공격 표면을 최소화할까 고민 중인데, 특히 Gitea/Forgejo 관련 추천이 궁금함
그렇게 해봤음. fly.io 프록시에서 nginx와 fail2ban을 돌리고, 내 tailnet으로 전달하면 Caddy가 실제 인스턴스로 해석함
로컬 가입을 비활성화하는 게 중요함. 내 경우 authentik을 IdP로 쓰는데 tailnet에서만 접근 가능함. 아니면 자기 계정을 만든 뒤 가입을 끄면 됨
robots.txt로 개별 렌더링된 git 커밋 보기 같은 일부를 막아뒀음. 안 그러면 스크래퍼가 끝없는 루프에 빠짐
Forgejo 패키지 저장소 접근도 엄격히 금지했는데, 비공개 패키지가 있고 그쪽 권한 세분성이 내가 원하는 수준이 아니라서 아직 조정 중임
계속 지켜보고 있으며 지금까지 큰 문제는 없었음. 자세한 내용은 docs.eblu.me에 있고, 원하면 인프라 코드로 바로 연결해줄 수도 있음
과거에 해봤고, 지금도 내부/LAN Forgejo 인스턴스는 돌리지만 공개 인스턴스는 현재 없음
예전에는 내부 인스턴스를 미러링하는 공개 읽기 전용 인스턴스를 세웠고, 내부에서 공개 인스턴스로 가는 reverse proxy 연결 하나를 두어 공개 쪽이 git 데이터를 가져가게 했음
이후에는 대체로 알아서 잘 돌아갔고, 내부 Forgejo에서 무언가 바꾸면 공개 쪽도 갱신됐음
이슈, CI 등은 완전히 비공개로 LAN 안에 유지할 수 있었음
Forgejo를 도입한 건, Forgejo가 Gitea에 제기했지만 Gitea가 무시했다는 보안 이슈를 둘러싼 정치적 논쟁들이 마음에 들지 않았기 때문임
계속 Gitea를 쓰는 이유가 궁금함. 이제 Forgejo 대신 Gitea를 다시 시도해봐야 할지 고민됨
Hacker News 의견들
모두가 GitHub를 떠나면서 git의 본래 정신을 잊는 것처럼 보임
git은 원래 탈중앙화를 의도했고, 문제는 GitHub가 더 깔끔하고 잘 확장되며 관리도 잘돼서 git 주변 도구가 모두 GitHub로 중앙화됐다는 데 있음
그래도 GitHub에 자동 동기화되는 미러는 남아 있으면 좋겠음. 몇 년 동안 프로젝트가 자체 호스팅이나 틈새 호스팅으로 갔다가 GitHub 미러가 죽거나 삭제되고, 결국 프로젝트가 시간 속으로 사라지는 걸 봐왔기 때문임
git은 탈중앙화되어 있고 GitHub는 코드를 올릴 수 있는 장소 중 하나일 뿐이며, 여러 원격 서버에 push할 수 있음
그래서 더는 개인 코드를 거기에 커밋하지 않겠음
발견 가능성, 별표, AI 봇이 쏟아내는 이슈 같은 사회적 기능에도 관심 없음. 지금 상태로 충분함
그리고 “Open Source is not about You”도 기억해야 함
모두가 잊는 플랫폼의 가장 중요한 측면은 사회적 구성요소이고, 지속적인 외부 저장소를 만들고 저장소 간 협업을 아주 쉽게 해줬다는 점임
자체 호스팅 forge들을 서로 연결하기 위해 공개 프로토콜과 표준을 사용함
원래 의도됐던 이메일 패치 모델로 써본 사람은 아주 소수이고, 나머지 대부분은 배울 생각도 없을 가능성이 큼
사람들은 기본적으로 GitHub가 쓰니까 git을 쓰거나, 조금 더 후하게 말하면 GitHub 같은 중앙 호스트와 결합했을 때 잘 동작하기 때문에 씀
로컬에서 코드를 개발하고 웹 포털에서 이슈와 패치를 논의하는 모델에 끌리는 것이고, 그중 git 자체가 제공하는 부분은 작음
이슈, 릴리스, CI, 문서, 보안 권고, 검색과 발견 가능성은 시간이 지나며 모두 GitHub에 묶이는 경향이 있음
오픈소스 프로젝트라면 자체 호스팅을 진실의 원천으로 두되, 사람들이 실제로 찾을 수 있게 읽기 전용 GitHub 미러를 유지하는 방식이 좋다고 봄
진짜 판도를 바꿀 건 완성된 연합 지원임
그래서 Forgejo와 Codeberg에 기부하고 있고, Forgejo 팀이 제대로 구현할 수 있도록 모두가 시간과 자원을 더 보태길 권함
또 다른 좋은 후보는 Git 위에 완전히 탈중앙화된 Radicle임
https://codeberg.org/forgejo-contrib/federation/src/branch/m...
https://liberapay.com/forgejo
https://donate.codeberg.org/
https://radicle.dev/
https://radicle.network/nodes/seed.radicle.dev
내 git 저장소도 자체 호스팅 NUC로 옮겼음
아직 세상에 공유할 HTTP 프론트엔드는 안 붙였는데, AI 스크래퍼에게 콘텐츠를 제공하고 싶지 않고 그것들을 막는 작업도 하고 싶지 않기 때문임
오픈소스 덕을 본 회사들이 업계를 이렇게 오염시킨 건 부끄러운 일임
3년째 돌아가는 중임. LAN에서만 접근 가능하게 잠그고 인터넷에 공개하지 않으면 견고하고 오래가는 사용감임
저장소는 몇 주 동안은 잘 미러링되다가 멈춤. 만료되지 않는 PAT 토큰을 넣었는데도 만료됐다고 주장하고, 다른 곳에서 테스트하면 토큰은 정상 동작함
로그에 아무것도 없을 때도 있고, 어떤 때는 데이터베이스가 잠겨 있음. 데이터베이스를 쓰는 건 Forgejo뿐임
지금까지는 이게 Forgejo 문제인지, Pi의 형편없는 SD 카드 입출력 때문에 데이터베이스 잠금이 생기는 건지, Forgejo가 미러 역할을 못하는 건지 구분하지 못했음
독점 초대형 클라우드 기업들은 공짜 노동을 얻고, 그걸로 추적 감시망, 마음대로 설치할 수 없는 휴대폰, 기기 증명, 광고 차단 없는 브라우저 단일 문화 같은 우리가 싫어하는 세상을 만듦
Google은 사람들이 BSD/MIT를 사랑하게 만들었고, 그 결과를 보면 됨
전형적인 수법 중 하나는 “이제 그건 우리 것”임. Elasticsearch나 Redis 같은 걸 벤더가 만들면, 초대형 클라우드가 자기 독점 상품으로 가져가 이익을 다 가져가고, 원 저자와 회사는 굶게 됨
또 하나는 “수용, 확장, 말살”임. KHTML이나 Linux 같은 오픈소스 프로젝트를 가져와 자기 버전을 만들고, 시장에 뿌려 경쟁자를 밀어낸 뒤, 반경쟁적 수단으로 모두의 눈앞에 자기 제품을 놓고, 점유율을 얻으면 추적을 넣고 자유를 제거함
오픈소스는 “사람에게는 자유, 회사는 돈을 내야 함”으로 대체돼야 함. 초대형 클라우드에 맞설 이빨이 있는 소스 공개 셰어웨어가 필요함
Richard Stallman의 라이선스조차 충분히 강하지 않고, CC BY-NC-SA가 더 낫다고 봄
“순수” 오픈소스는 기업 복지였고 실수였음. 거인들이 우리 밧줄로 우리를 매달 수 있게 해줬음
내 코드는 AI가 적극적으로 읽어주길 바람
글의 “What I gave up” 절에서 저자가 자기 사회적 그래프를 언급했는데, GitSocial을 쓰면 사회적 그래프와 협업 이력을 가져갈 수 있음
어떤 git 호스트 사이에서도 forge 간 pull request를 가능하게 해주며, 전부 제3자 의존성 없이 동작함
그래서 이런 대안들이 좀처럼 뜨지 못함
“CTO가 공개 사과했고 AI 기반 부하를 감당하려면 용량을 30배 키워야 한다고 말했다”는 대목을 보면, GitHub의 일반 사용에 과금을 시작하지 않길 바람
하지만 일부 바이브 코더들이 하루에 수천 커밋을 만드는 걸 보면 점점 더 회의적이 됨
코드를 무료로 공유하고 협력할 수 없게 되면 정말 아쉬울 것임
숙련된 사람은 저장소가 이런 문제를 갖고 있으면 몇 초 만에 알아보니, 조정된 시스템도 가능할 것임
까다로운 부분은 바이브 할당량을 적용할 수 있게 하는 법적 약관을 쓰는 일임
Anthropic이 이미 CC에서 하는 방식이고, GitHub와 GitLab도 아마 비슷하게 하고 있을 것 같음. 대가는 Twitter 개발자들과 작은 subreddit 일부의 미움이겠지만, 충분히 감수할 만할 듯함
한편 /r/vibecoding 같은 곳에서 사람들이 월 200달러 구독료를 내고 취미 프로젝트나 장난감 사이트에 가까운 것을 만드는 걸 자주 보면 꽤 놀라움
감당 가능할 때 어리석은 지출을 해본 적은 있지만 이건 좀 다르게 느껴짐
어쩌면 의미와 목적을 제공하는 서비스에 연 2400달러를 내는 것일 수도 있음. 40대쯤 되어 부자나 유명인이 될 수 없다는 걸 깨닫는다면, 다른 대안들에 비해 감당 가능한 가격일지도 모름
Bluesky처럼 AT Protocol 위에 만들어진 탈중앙화 서비스 Tangled도 들었음
GitHub가 구현을 질질 끌어서, 그 기능을 GitHub에 추가하는 회사들이 생길 정도였던 pull request 쌓기 같은 실제로 유용한 기능도 있음
써본 사람이 있는지 궁금함
https://tangled.org/
https://tangled.org/h14h.com/knot
전반적으로 플랫폼은 꽤 유망해 보임. AtProto가 개인 데이터 서버, 릴레이, AppView를 분리하는 방식은 적절한 절충으로 보임
git 저장소를 헤드리스 데이터 전용 서버로 호스팅할 수 있어서, 자체 호스팅치고는 거의 고통이 없음
Forgejo 같은 ActivityPub 해법과 비교하면, 내가 신경 쓰는 건 데이터 통제뿐인데 웹앱 전체를 호스팅하고 확장하는 지루함을 피할 수 있어 좋음
초기 설정 이후 운영 유지보수는 knot-server 버전을 올리고 다시 배포한 것뿐임. tangled.org가 오래된 버전이면 경고 배너를 보여줌
다른 프로젝트에서 Tangled를 더 써보고 기능도 테스트해보고 싶음. 특히 jj와 stacked PR의 네이티브 지원에 관심 있음
맞춤 CI를 연결하는 tack 같은 흥미로운 실험도 있음
ATProto가 비공개 데이터를 지원하게 되면 언젠가 비공개 저장소도 지원할 수 있겠지만, 시간이 좀 걸릴 수 있음
https://tangled.org/mitchellh.com/tack
아직 사업 모델에 대한 언급은 없어서, 무엇이 될지 정말 궁금함
대신 radicle.xyz를 쓰는 게 좋음
Fossil도 고려해볼 만함
코드 이력, 위키, 티켓, 포럼을 포함한 전체 저장소 상태를 단일 파일로 묶고, 그 상태가 복제됨
호스팅 제공자를 바꿔야 할 때도 Fossil에서는 그 때문에 잃는 데이터가 없음
https://fossil-scm.org/
하지만 네트워크 효과가 문제임. 팀을 Fossil로 데려올 수가 없음
팀은 다른 사람들, 다른 부서와 코드를 공유해야 하고 모두, 사실상 99% 이상이 git을 씀
Fossil을 쓰라고 강제하는 건 오히려 해를 끼치는 느낌이고, 진퇴양난임
기술 분야의 다른 많은 일과 비슷함. 동료 개발자에게 함수형 스타일 관용구를 쓰게 하거나 불변성을 강제하려 할 때도 그렇음
Facebook이나 Google 프로젝트 같은 큰 무언가가 커뮤니티를 강제로 움직여야 하는 것처럼 느껴짐
하지만 철학적으로는 Fossil이 마음에 들지 않음. 이력을 정리할 방법이 없고 모든 것을 그대로 보존함
그게 원하는 바면 좋지만, 내 git 작업 흐름에서는 이것저것 실험한 뒤 push하기 전에 커밋을 정리하고 조직하는 걸 좋아함
사람들은 끊임없이 탈중앙화를 외침
하지만 현실에서는 대부분의 시스템이 결국 중앙화됨
어쩌면 사람들이 탈중앙화를 요구할 때 실제로 찾는 건, 자신들이 새 개척자가 될 수 있는 새로운 중심일지도 모름
기존 규칙으로는 이길 가능성이 없다고 느끼면, 탈중앙화를 명분 삼아 판을 뒤집으려는 것처럼 보임
사람들이 원하는 이유는 그 단일 중앙 관리가 이런저런 이유로 충분하지 않기 때문임
사람들이 외친다는 것과 실제로 원한다는 것 사이에는 차이가 없음
더 나쁜 건 중앙화 시스템이 대부분의 시간에는 훌륭하고, 고통은 합병이나 갑작스러운 가격 인상처럼 짧은 기간에 매우 강하게 온다는 점임
탈중앙화는 항상 조금씩 아픈 대신, 중앙화 대안이 무너지는 드문 순간에 큰 행복을 줌
보통 말로는 불매운동임. “과자가 Nestlé에 너무 중앙화됐으니 과자를 탈중앙화해야 한다”고 말하진 않음
Tangled로 옮기는 중이고, AT Protocol 위에 만들어져서 Bluesky 등과 같은 계정을 씀
써보니 꽤 마음에 듦
https://vale.rocks/micros/20260511-0440
1년 전부터 홈랩에서 자체 호스팅 Gitea로 옮겼고, 공개 접근은 막아뒀음
HTTPS도 없고, 가입은 비활성화했으며 저장소도 공개가 아님
공개 인스턴스를 만들고 HTTPS를 쓰되 공격 표면을 최소화할까 고민 중인데, 특히 Gitea/Forgejo 관련 추천이 궁금함
로컬 가입을 비활성화하는 게 중요함. 내 경우 authentik을 IdP로 쓰는데 tailnet에서만 접근 가능함. 아니면 자기 계정을 만든 뒤 가입을 끄면 됨
robots.txt로 개별 렌더링된 git 커밋 보기 같은 일부를 막아뒀음. 안 그러면 스크래퍼가 끝없는 루프에 빠짐
Forgejo 패키지 저장소 접근도 엄격히 금지했는데, 비공개 패키지가 있고 그쪽 권한 세분성이 내가 원하는 수준이 아니라서 아직 조정 중임
계속 지켜보고 있으며 지금까지 큰 문제는 없었음. 자세한 내용은 docs.eblu.me에 있고, 원하면 인프라 코드로 바로 연결해줄 수도 있음
예전에는 내부 인스턴스를 미러링하는 공개 읽기 전용 인스턴스를 세웠고, 내부에서 공개 인스턴스로 가는 reverse proxy 연결 하나를 두어 공개 쪽이 git 데이터를 가져가게 했음
이후에는 대체로 알아서 잘 돌아갔고, 내부 Forgejo에서 무언가 바꾸면 공개 쪽도 갱신됐음
이슈, CI 등은 완전히 비공개로 LAN 안에 유지할 수 있었음
계속 Gitea를 쓰는 이유가 궁금함. 이제 Forgejo 대신 Gitea를 다시 시도해봐야 할지 고민됨