Little bit of polish
This commit is contained in:
parent
c5df08a72c
commit
eb72c5fc46
|
@ -3,7 +3,7 @@ title: 'Hosting your own Git "server"'
|
|||
date: "2022-09-30T14:27:31+02:00"
|
||||
author: "$HUMANOID"
|
||||
tags: ["git", "ssh"]
|
||||
description: "The basis of a Git server is a machine accessible in a way that git understands with a bunch of bare git repositories"
|
||||
description: "The basis of a Git server is a machine accessible in a way that Git understands with a bunch of bare repositories"
|
||||
toc: true
|
||||
---
|
||||
|
||||
|
@ -51,7 +51,7 @@ ssh-keygen -t ed25519 -f ~/.ssh/<git-key>
|
|||
```
|
||||
I also recommend creating an entry in `~/.ssh/config` for your Git server:
|
||||
```ssh_config
|
||||
Host <host>
|
||||
Host <host>-git
|
||||
Hostname <hostname>
|
||||
User git
|
||||
Identityfile ~/.ssh/<git-key>
|
||||
|
@ -59,7 +59,8 @@ Host <host>
|
|||
|
||||
### Server side
|
||||
Next step is to make the `git` account accessible over SSH.
|
||||
To do this, log in as the `git` user and create a `.ssh` directory with an `authorized_keys` file with the public half of the `<git-key>` keypair:
|
||||
`ssh-copy-id` won't work because the `git` user doesn't have a password.
|
||||
So instead, log in as the `git` user and create a `.ssh` directory with an `authorized_keys` file with the public half of the `<git-key>` keypair:
|
||||
```sh
|
||||
sudo su - git
|
||||
umask 077 # strict read write permissions
|
||||
|
@ -83,13 +84,13 @@ That's it.
|
|||
|
||||
You now have a Git "server" with a repo named `<repo-name>`.
|
||||
|
||||
To add something to this repo, on your client machine create a new repository and add `<host>:/srv/git/<repo-name>.git` as remote and push your project to it.
|
||||
To add something to this repo, on your client machine create a new repository and add `<host>-git:/srv/git/<repo-name>.git` as remote and push your project to it.
|
||||
Common practice dictates that this remote be called `origin`:
|
||||
```sh
|
||||
mkdir my-fancy-project
|
||||
cd my-fancy-project
|
||||
git init
|
||||
git remote add origin <host>:/srv/git/<repo-name>.git
|
||||
git remote add origin <host>-git:/srv/git/<repo-name>.git
|
||||
echo "# Self-hosted repo!" > README.md
|
||||
git add -A
|
||||
git commit -m "Initial commit"
|
||||
|
@ -98,7 +99,7 @@ git push -u origin main # assuming you use main as your default branch name
|
|||
|
||||
To clone this repository on another machine, add the `<git-key>` SSH keypair and related configuration section in `~/.ssh/config` so said machine and run:
|
||||
```sh
|
||||
git clone <host>:/srv/git/<repo-name>.git
|
||||
git clone <host>-git:/srv/git/<repo-name>.git
|
||||
```
|
||||
|
||||
# Automation
|
||||
|
|
Loading…
Reference in a new issue