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 -l against the fingerprints in your settings.
  • Repository not found. The path is <org>/<repo> with the organisation slug, not your username. pln repo list prints 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.