42 lines
1.7 KiB
Org Mode
42 lines
1.7 KiB
Org Mode
#+title: lohr
|
|
=lohr= is a Git mirroring tool.
|
|
|
|
I created it to solve a simple problem I had: I host my own git server at
|
|
[[https://git.alarsyo.net]], but want to mirror my public projects to GitHub /
|
|
GitLab, for backup and visibility purposes.
|
|
|
|
GitLab has a mirroring setting, but it doesn't allow for multiple mirrors, as
|
|
far as I know. I also wanted my instance to be the single source of truth.
|
|
|
|
** How it works
|
|
|
|
Gitea is setup to send webhooks to my =lohr= server on every push update. When
|
|
=lohr= receives a push, it clones the concerned repository, or updates it if
|
|
already cloned. Then it pushes the update to *all remotes listed* in the [[file:.lohr][.lohr]]
|
|
file at the repo root.
|
|
|
|
*** Destructive
|
|
|
|
This is a very destructive process: anything removed from the single source of
|
|
truth is effectively removed from any mirror as well.
|
|
|
|
** Contributing
|
|
|
|
I accept patches anywhere! Feel free to [[https://github.com/alarsyo/lohr/pulls][open a GitHub Pull Request]], [[https://gitlab.com/alarsyo/lohr/-/merge_requests][a GitLab
|
|
Merge Request]], or [[https://lists.sr.ht/~alarsyo/lohr-dev][send me a patch by email]]!
|
|
|
|
** Why lohr?
|
|
|
|
I was looking for a cool name, and thought about the Magic Mirror in Snow White.
|
|
Some *[[https://en.wikipedia.org/wiki/Magic_Mirror_(Snow_White)][furious wikipedia searching]]* later, I found that the Magic Mirror was
|
|
probably inspired by [[http://spessartmuseum.de/seiten/schneewittchen_engl.html][the Talking Mirror in Lohr am Main]]. That's it, that's the
|
|
story.
|
|
|
|
** License
|
|
=lohr= is distributed under the terms of both the MIT license and the Apache
|
|
License (Version 2.0).
|
|
|
|
See [[file:LICENSE-APACHE][LICENSE-APACHE]] and [[file:LICENSE-MIT][LICENSE-MIT]] for details.
|