smolgit offers a minimalist git server, making it perfect for small teams or individual developers. Its minimal simple and just works. It's perfect for those who value simplicity and efficiency in their workflow. Small memory footprint, one binary to go.
- git operations - easily perform
pull,push,cloneandfetchoperations. - repository visualization - browse files, view logs, explore the commit, branch and tag lists.
- user management - simple user management, add users with
ssh-keystoconfig.yaml. - permissions - assign persmissions to user.
- ligh-dark - web theme based on your system settings.
- font - customized fonts.
- auth - web auth middleware.
- Download binary from release page .
- Generate default
config.yamlfile with command./smolgit config > config.yaml.- Use
yqfor inline changes./smolgit config | yq '.server.disabled = true' > config.yaml
- Use
- Run
./smolgit
$> ./smolgit
10:08AM INF set loglevel level=DEBUG
10:08AM INF version version=main-a4f6438
10:08AM INF initialize web server addr=:3080
10:08AM INF initialize ssh server addr=:3081
10:08AM INF start server brand=smolgit address=:3080
10:08AM INF starting SSH server addr=:3081Generate default config.yaml file with command ./bin/smolgit config > config.yaml.
log:
# Color log output
color: true
# Log as json
json: false
# Log level (INFO, DEBUG, TRACE, WARN)
level: DEBUG
server:
jwt_key: "super-salt"
auth_disabled: false
# Disable web server
disabled: false
# Web server address
addr: ":3080"
# Navbar brand string
brand: "smolgit"
ssh:
# SSH server address
addr: ":3081"
git:
# Folder to save git repositories
path: ./tmp
# Base for clone string formating
# (e.g. ssh://git@my-git-server.lan/myuser/project.git)
base: "git@my-git-server.lan"
users:
- name: "bob"
password: "$2y$05$US7wXbew8P9d2h8qL3aC6OMhVcwO.1W6U.hVFBGNj9o9YQO.cSqd2" # htpasswd -nbB admin MySecret123
role: "admin"
keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQ... developer@mail.comcli options:
$> ./smolgit --help
Usage of ./smolgit:
-config string
path to config (default "./config.yaml")In order to run smolgit in docker there is the Dockerfile.
- Build image
make build-docker - Generate
config.yamlfilemake config-docker, it'll createconfig.yamlin the current directory and mount it for docker. - Run
smolgitin docker:
$> make run-docker
docker run -it -p 3080:3080 -p 3081:3081 -v /path-to-smolgit-project/smolgit/:/etc/smolgit smolgit
3:53PM INF set loglevel level=DEBUG
3:53PM INF version version=dev
3:53PM INF initialize web server addr=:3080
3:53PM INF initialize ssh server addr=:3081
3:53PM INF start server brand=smolgit address=:3080
3:53PM INF starting SSH server addr=:3081- git
❤️
- golang
- gin
- go-git
- React - responsive and modern frontend.
- shadcn/ui + Tailwind CSS - clean and flexible UI components.
- gossh
Contributions are more than welcome! Thank you!

