summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2023-08-12Configure via docker-composev0.1.1Malfurious1-0/+34
Signed-off-by: Malfurious <m@lfurio.us>
2023-08-12gitolite: Make admin pubkey an optional input to Docker imageMalfurious2-9/+9
Automating the build of this image will be awkward if we need a user-supplied input file each time. At best, it will probably lead to building out of per-instance configuration branches that store the file... The initial administrator pubkey is only really needed to include in the first image that is run at any given site, since a new install doesn't have a config/repository datastore yet. Once that is the case, the procedure in the Dockerfile to init the /var/lib/gitolite directory (now refactored to a shell script file) can be skipped, since that directory will be replaced by the previous container's volume. This is probably not the final form of this kind of build design change, but will work for now to get up and running easily with cychedelic. Signed-off-by: Malfurious <m@lfurio.us>
2022-08-18cgit: Show proper idle times on the index pagev0.1Malfurious2-1/+4
By default, the idle times shown by cgit only reflect the most recent push to the master branch - and that is the time of the push, not of the actual commit. This patch causes the age/timestamp to be set by pushes to any branch. The times will reflect the age of the youngest commit on any branch or tag. Signed-off-by: Malfurious <m@lfurio.us>
2022-08-18gitolite: Set default branch on first pushMalfurious2-1/+21
The non-core feature 'symbolic-ref' that ships with gitolite opens a bigger hole than I would intend to (in the form of allowing arbitrary git-symbolic-ref commands to be executed). As an alternative, a post-git gitolite trigger is added. Its only purpose at the moment is to check on the state of HEAD following any pushes. Under normal circumstances, HEAD will point to a valid branch, or on a first push, the master branch will be provided, validating HEAD. If after the first push, there is no branch called master, we assume the creator wishes to use another name for the default branch, and so will update the ref if doing so is unambiguous (there is only one other branch). If multiple non-master branches are present in this case, a warning is issued, and HEAD is left invalid, awaiting a later push to master. This _should_ only be an issue for the first push. Once HEAD refers to a valid branch (of any name), this action is bypassed going forward. Signed-off-by: Malfurious <m@lfurio.us>
2022-08-16cgit: Fix ssh clone urlMalfurious1-1/+1
Although user@server:path would be the preferred URL form, cgit interprets this as an HTTP link, relative to the repository base URL. That is, even though the desired text appears on screen, the text's link is broken. Someone copying the link, as opposed to copying the text, to use with an actual clone (or git-remote add) will have a bad time. Using a full URL with the ssh:// protocol scheme solves this problem. '.git' is omitted from the end of the path for consistency with the HTTP url (it's use is optional for ssh protocol). Signed-off-by: Malfurious <m@lfurio.us>
2022-08-16gitolite: Override default sshd_configMalfurious2-2/+26
Provide a config file for the back-end SSH daemon. Primarily, this explicitly disables root login, password auth, and additional unnecessary frills. Additionally, the sftp subsystem is omitted. Now that this file is added, hostkey files (and the external volume containing them) are moved to a new dedicated location (/hostkeys/...). This allows us to bake sshd_config into the built gitolite image, instead of it also living in the external volume. This makes it easier for future changes to be incorporated by simply updating the image. Signed-off-by: Malfurious <m@lfurio.us>
2022-08-13Add port expose directives to DockerfilesMalfurious2-0/+2
This is useful as documentation to the user, but can be necessary to work with some docker-compose setups. Signed-off-by: Malfurious <m@lfurio.us>
2022-08-07cgit: Configure cgit for normalmode useMalfurious1-6/+20
Signed-off-by: Malfurious <m@lfurio.us>
2022-08-07gitolite: Save repository owner for front-endMalfurious2-1/+3
cgit is unable to resolve the owner of repositories, since they are all owned by the same unix user account. By adopting this gitweb-specific config key, we can communicate the end-user name via git-config. Signed-off-by: Malfurious <m@lfurio.us>
2022-08-07Add cgit docker imageMalfurious3-0/+73
Apache webserver (httpd) is setup minimally to host cgit on a website (sub)domain root. cgitrc config file is based on that from my previous installation, in my personal website. Signed-off-by: Malfurious <m@lfurio.us>
2022-08-06Fix datastore permissionsMalfurious2-1/+3
For compatibility with the front-end docker image, ensure git repositories (and their parent directories) have mode 0755, aka: go+rx. Signed-off-by: Malfurious <m@lfurio.us>
2022-08-02Allow users to create wildcard repositoriesMalfurious1-0/+6
Signed-off-by: Malfurious <m@lfurio.us>
2022-08-02Create administrators groupMalfurious1-1/+3
Signed-off-by: Malfurious <m@lfurio.us>
2022-08-02Remove testing repositoryMalfurious1-3/+0
Signed-off-by: Malfurious <m@lfurio.us>
2022-08-02Add gitolite gitconfig fileMalfurious2-0/+7
Signed-off-by: Malfurious <m@lfurio.us>
2022-08-02Disable the 'writable' commandMalfurious1-1/+1
Signed-off-by: Malfurious <m@lfurio.us>
2022-08-02Allow users to delete wildcard repositoriesMalfurious1-1/+1
Signed-off-by: Malfurious <m@lfurio.us>
2022-08-02Define custom access levelsMalfurious1-2/+2
Signed-off-by: Malfurious <m@lfurio.us>
2022-08-02Replace git-daemon/gitweb presets with cgitMalfurious1-3/+3
Signed-off-by: Malfurious <m@lfurio.us>
2022-08-02Add default gitolite RC fileMalfurious2-1/+203
Signed-off-by: Malfurious <m@lfurio.us>
2022-08-02Add Dockerfile for gitolite/ssh serviceMalfurious2-0/+26
Signed-off-by: Malfurious <m@lfurio.us>
2022-08-02Add default config file from gitoliteMalfurious1-0/+5
Signed-off-by: Malfurious <m@lfurio.us>