(c) 2023 Sam Caldwell. See LICENSE.txt
-
MVP: Establish an internal git repository which is accessible via SSH using key-based authentication.
-
ITERATION: Ensure that a user can view the code and other content of a git repository via HTTP for any repository in this internal git server.
-
ITERATION: Implement githooks which will execute linters, build jobs and other automation.
-
ITERATION: Implement HA replication and fail-over between svr00 and svr01.
- By default, data is stored at
$(HOME)/git_server/
where home is the home directory of the user running the docker container
-
see Git-SCM. This material is the source used to create this project, specifically chapter 4.
-
The
git-tools
repository contains tools that makegit-server
easier to use with customgit
scripts forgit create
,git use
,git list
andgit delete
.
To build the container...
- Clone this repo
- Navigate to the directory
- Run
make git_server/build
To run this locally (e.g. bootstrapping an environment):
- Build the container locally (see above).
- Run
make git_server/run_local
To upload the container image:
- Build the container (see above)
- Run
make git_server/upload
Disclaimer: This currently is not implemented and by design it will only upload to my local docker hub.
To stop the git server, run make git_server/stop
To tail the logs, run make git_server/logs
Allow the user to add an ssh key to the ~/.ssh/authorized_keys
file.
Return the enumerated list of keys in ~/.ssh/authorized_keys
.
Create a new empty git repository
Delete a git repository
Show help content
List the repositories in the server
Clone a remote repository to this server as a proxy
Push changes in this server to the remote proxied repository
Rename a repository