2
0
Fork
You've already forked manganin
0
Forge with git-based vouch trees and local-first issue tracking.
  • Zig 94.5%
  • Go 5.2%
  • CSS 0.3%
2026年07月09日 13:56:48 -04:00
assets Display username instead of login link when user is logged in 2026年07月07日 15:28:16 -04:00
lib Add vouch flow to termbox interface 2026年07月09日 13:56:48 -04:00
manganin-http/src Display username instead of login link when user is logged in 2026年07月07日 15:28:16 -04:00
manganin-ssh SSH: create PTY 2026年06月30日 10:47:46 -04:00
src Add vouch flow to termbox interface 2026年07月09日 13:56:48 -04:00
.gitignore Add repo method 2026年06月14日 23:32:18 -04:00
build.zig Fix translating TB_IMPL bodies 2026年06月30日 11:30:39 -04:00
build.zig.zon Display username instead of login link when user is logged in 2026年07月07日 15:28:16 -04:00
LICENSE Add LICENSE 2026年06月27日 17:49:46 -04:00
manganin.png Add README.md 2026年06月01日 20:32:35 -04:00
README.md Create issues repo on repo creation. 2026年07月06日 15:06:10 -04:00

Manganin

Manganin

Manganin is an alloy of manganese and copper known for maintaining a relatively constant electrical resistivity with changes in temperature. It is also a git forge with:

Vouch trees

Only those who have had their pubkey vouched by another trusted contributer can open issues or PRs, reducing spam and increasing the overall trust of the community environment.

Local-first issue tracking

TODO: Issues are stored in git, so you can clone a repository to edit issues locally using your own editor.

Terminal native design

WIP: termbox-based TUI for vouching, issue and PR management, and server configuration.

Configurable CI

TODO

User quick start

  1. Get vouched.
  2. SSH into the instance to set a username and password.
  3. You can now clone and push based on your permissions, and sign into the web UI.
  4. To push to a username prefixed branch (required for non-maintainers): git push origin HEAD:refs/{username}/{branch}.

Developing

  • You will need Go and Zig
  • Make a directory to store the server information, referred to as MANGANIN_ROOT
  • Make vouchlog in MANGANIN_ROOT/admin/vouchlog and add a line like ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAPUBKEY,root,vouch,null
  • Run the HTTP server with env MANGANIN_ROOT=/path/to/root zig build serve
  • Build the Go program in manganin-ssh/ and move it to zig-out/bin (want to improve this workflow in particular)
  • Run the Go SSH server with env MANGANIN_ROOT=/path/to/root MANGANIN_DEBUG=1 ./manganin-ssh

Deploy steps

  • Zig build with ReleaseSafe
  • go build and move to bin/
  • Copy bin/ and assets/
  • Make MANGANIN_ROOT dir, and admin/ and issues/ inside that
  • dd if=/dev/urandom of=$MANGANIN_AUTH_KEYFILE count=32 bs=1
  • Make vouchlog and add a line like ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAPUBKEY,root,vouch,null
  • Run the http and ssh modules