b4d6c99669933c8f6e773047757e26a30cc26d5b

Author
Toby Padilla <toby@charm.sh>
Committer
Toby Padilla <toby@charm.sh>
Date

Message

Update README with auth and config info

Diff

  1diff --git a/README.md b/README.md
  2index b2ff40a1715682cb016e017b99febabfa68e6654..8e3c1d4a99e503d66630732abddb40bb6303ab7f 100644
  3--- a/README.md
  4+++ b/README.md
  5@@ -1,31 +1,80 @@
  6-# Soft-Serve
  7+# Soft Serve
  8 
  9-Distribute your software on the command line with SSH and Git.
 10+A tasty Git server. Self-hosted with a built in SSH powered TUI.
 11 
 12-## What is it
 13+## What is it?
 14 
 15-Soft-Serve is a SSH server that hosts a Git server and interactive TUI built from
 16-the repos you push to it. Authors can easily push their projects to Soft-Serve by
 17-adding it as a remote and users can clone repos from Soft-Serve and stay up to
 18-date with the TUI as you push commits.
 19+Soft Serve is a Git server that runs its own SSH service, allows repo creation
 20+on first push, is configured by cloning a `config` repo and provides a TUI
 21+accessible to anyone over SSH without having to worry about setting up accounts
 22+on the host machine. Give it a shot!
 23+
 24+```
 25+ssh beta.charm.sh
 26+```
 27+
 28+## Installing / Building
 29+
 30+The Soft Serve command is called `soft`. You can build it with `go`.
 31+
 32+```
 33+cd cmd/soft
 34+go build
 35+```
 36+
 37+## Setting up a server
 38+
 39+Make sure `git` is installed, then run `soft`.
 40+
 41+## Configuring
 42+
 43+When Soft Serve is run for the first time, it creates a configuration repo that
 44+contains the README displayed for Home and user access control. By default the
 45+`config` repo is publicly writable, so be sure to setup your access as desired.
 46+You can also set the `SOFT_SERVE_AUTH_KEY` environment variable and it will
 47+restrict access to that initial public key.
 48+
 49+```
 50+git clone ssh://localhost:23231/config
 51+```
 52 
 53 ## Pushing a repo
 54 
 55-1. Run `soft-serve`
 56-2. Add soft-serve as a remote on any git repo: `git remote add soft-serve ssh://git@localhost:23231/soft-serve`
 57-3. Push stuff: `git push soft-serve main`
 58+You can add your Soft Serve server as a remote to any existing repo.
 59+
 60+```
 61+git remote add soft ssh://localhost:23231/REPO
 62+```
 63+
 64+After you've added the remote, you can push. If it's a new repo, it will be
 65+automatically added to the server.
 66+
 67+```
 68+git push soft main
 69+```
 70+
 71+## Soft Serve TUI
 72+
 73+Soft Serve provides a TUI over SSH to browse repos, view READMEs, and grab
 74+clone commands.
 75 
 76-## Cloning a repo
 77+```
 78+ssh localhost -p 23231
 79+```
 80 
 81-1. You'll need to know the name (for now, it's not listed anywhere): `git clone ssh://git@localhost:23231/soft-serve`
 82+It's also possible to direct link to a specific repo.
 83 
 84-## Soft-Serve TUI
 85+```
 86+ssh localhost -t -p 23231 REPO
 87+```
 88 
 89-If you `ssh localhost -p 23231` you'll see a list of the latest commits to the repos you've pushed.
 90+### Server Options
 91 
 92-## Auth
 93+You have control over the various options via the following server environment
 94+variables:
 95 
 96-By default anyone can push or pull from the Git repositories. This is mainly
 97-for testing, you can also whitelist public keys that have Git write access by
 98-creating an authorized keys file with the public key for each author. By
 99-default this file is expected to be at `./.ssh/soft_serve_git_authorized_keys`.
100+* `SOFT_SERVE_PORT` - SSH listen port (_default 23231_)
101+* `SOFT_SERVE_HOST` - SSH listen host (_default 0.0.0.0_)
102+* `SOFT_SERVE_KEY_PATH` - SSH host key-pair path (_default .ssh/soft_serve_server_ed25519_)
103+* `SOFT_SERVE_REPO_PATH` - Path where repos are stored (_default .repos_)
104+* `SOFT_SERVE_AUTH_KEY` - Initial admin public key (_default ""_)