Pushing code
Add an SSH key and push to Plain over the standard git protocol.
Plain repositories are plain git. Anything that speaks the git protocol can clone, fetch, and push; there is no proprietary client and no wrapper command.
Add an SSH key
Pushes authenticate with SSH keys registered under Settings → SSH keys. Paste your public key (the .pub file). Plain identifies you by the key's fingerprint on every push.
If you have never made a key:
ssh-keygen -t ed25519 -C "you@example.com"
cat ~/.ssh/id_ed25519.pub
The settings page has per-OS instructions if you get stuck.
Add the remote and push
Copy the remote URL from your repository page. Plain's SSH endpoint runs on its own port, so the URL uses the long ssh:// form with the port included; copy it exactly rather than retyping it:
git remote add plain ssh://git@<host>:<port>/<org>/<repo>.git
git push plain main
The first push to an empty repository sets its default branch.
Clone an existing repository
The same URL clones:
git clone ssh://git@<host>:<port>/<org>/<repo>.git
Troubleshooting
- Permission denied (publickey). The key you are offering is not registered. Check
ssh-add -lagainst the fingerprints in your settings. - Repository not found. The path is
<org>/<repo>with the organisation slug, not your username.pln repo listprints the repositories you can reach. - Wrong port. The port is part of the URL. If you dropped it, your SSH client is knocking on port 22 of a server that is not listening there.