Container configuration
Container options
Variable | Meaning |
---|---|
JOSH_REMOTE
|
HTTP remote, including protocol.
Example: https://github.com
|
JOSH_REMOTE_SSH
|
SSH remote, including protocol.
Example: ssh://git@github.com
|
JOSH_HTTP_PORT
|
HTTP port to listen on. Default: 8000 |
JOSH_SSH_PORT
|
SSH port to listen on. Default: 8022 |
JOSH_SSH_MAX_STARTUPS
|
Maximum number of concurrent SSH authentication attempts. Default: 16 |
JOSH_SSH_TIMEOUT
|
Timeout, in seconds, for a single request when serving repos over SSH. This time should cover fetch from upstream repo, filtering, and serving repo to client. Default: 300 |
JOSH_EXTRA_OPTS
|
Extra options passed directly to
josh-proxy process
|
Container volumes
Volume | Purpose |
---|---|
/data/git
|
Git cache volume. If this volume is not mounted, the cache will be lost every time the container is shut down. |
/data/keys
|
SSH server keys. If this volume is not mounted, a new key will be generated on each container startup |
Configuring SSH access
Josh supports SSH access (just pull without pushing, for now).
To use SSH, you need to add the following lines to your ~/.ssh/config
:
Host your-josh-instance.com
ForwardAgent yes
PreferredAuthentications publickey
Alternatively, you can pass those options via GIT_SSH_COMMAND
:
GIT_SSH_COMMAND="ssh -o PreferredAuthentications=publickey -o ForwardAgent=yes" git clone ssh://git@your-josh-instance.com/...
In other words, you need to ensure SSH agent forwarding is enabled.