Skip to content

Commit 22cd2e4

Browse files
vlad-ivanov-nameLMG
authored andcommitted
wip
1 parent 6bd2ecc commit 22cd2e4

File tree

4 files changed

+136
-134
lines changed

4 files changed

+136
-134
lines changed

README.md

Lines changed: 2 additions & 132 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
![Just One Single History](/splash.png)
22

33
Combine the advantages of a monorepo with those of multirepo setups by leveraging a
4-
blazingly-fast, incremental, and reversible implementation of git history filtering.
4+
fast, incremental, and reversible implementation of git history filtering.
55

66
`josh-proxy` can be integrated with any git host:
77

@@ -13,7 +13,7 @@ $ docker run \
1313
joshproject/josh-proxy:latest
1414
```
1515

16-
See [Container options](#container-options) for full list of environment variables.
16+
See [Container options](https://josh-project.github.io/josh/reference/container.html) for full list of environment variables.
1717

1818
## Use cases
1919

@@ -132,133 +132,3 @@ performing many requests to the main git host.
132132
## FAQ
133133

134134
See [here](https://josh-project.github.io/josh/faq.html)
135-
136-
## Configuration
137-
138-
### Container options
139-
140-
<table>
141-
<tr>
142-
<th>
143-
Variable
144-
</th>
145-
<th>
146-
Meaning
147-
</th>
148-
</tr>
149-
<tr>
150-
<td>
151-
<code>JOSH_REMOTE</code>
152-
</td>
153-
<td>
154-
HTTP remote, including protocol.
155-
Example: <code>https://github.com</code>
156-
</td>
157-
</tr>
158-
<tr>
159-
<td>
160-
<code>JOSH_REMOTE_SSH</code>
161-
</td>
162-
<td>
163-
SSH remote, including protocol.
164-
Example: <code>ssh://[email protected]</code>
165-
</td>
166-
</tr>
167-
<tr>
168-
<td>
169-
<code>JOSH_HTTP_PORT</code>
170-
</td>
171-
<td>
172-
HTTP port to listen on.
173-
Default: 8000
174-
</td>
175-
</tr>
176-
<tr>
177-
<td>
178-
<code>JOSH_SSH_PORT</code>
179-
</td>
180-
<td>
181-
SSH port to listen on.
182-
Default: 8022
183-
</td>
184-
</tr>
185-
<tr>
186-
<td>
187-
<code>JOSH_SSH_MAX_STARTUPS</code>
188-
</td>
189-
<td>
190-
Maximum number of concurrent SSH authentication attempts. Default: 16
191-
</td>
192-
</tr>
193-
<tr>
194-
<td>
195-
<code>JOSH_SSH_TIMEOUT</code>
196-
</td>
197-
<td>
198-
Timeout, in seconds, for a single request when serving repos over SSH.
199-
This time should cover fetch from upstream repo, filtering, and serving
200-
repo to client. Default: 300
201-
</td>
202-
</tr>
203-
<tr>
204-
<td>
205-
<code>JOSH_EXTRA_OPTS</code>
206-
</td>
207-
<td>
208-
Extra options passed directly to
209-
<code>josh-proxy</code> process
210-
</td>
211-
</tr>
212-
</table>
213-
214-
### Container volumes
215-
216-
<table>
217-
<tr>
218-
<th>
219-
Volume
220-
</th>
221-
<th>
222-
Purpose
223-
</th>
224-
</tr>
225-
<tr>
226-
<td>
227-
<code>/data/git</code>
228-
</td>
229-
<td>
230-
Git cache volume. If this volume is not
231-
mounted, the cache will be lost every time
232-
the container is shut down.
233-
</td>
234-
</tr>
235-
<tr>
236-
<td>
237-
<code>/data/keys</code>
238-
</td>
239-
<td>
240-
SSH server keys. If this volume is not
241-
mounted, a new key will be generated on
242-
each container startup
243-
</td>
244-
</tr>
245-
</table>
246-
247-
### Configuring SSH access
248-
249-
Josh supports SSH access (just pull without pushing, for now).
250-
To use SSH, you need to add the following lines to your `~/.ssh/config`:
251-
252-
```
253-
Host your-josh-instance.com
254-
ForwardAgent yes
255-
PreferredAuthentications publickey
256-
```
257-
258-
Alternatively, you can pass those options via `GIT_SSH_COMMAND`:
259-
260-
```
261-
GIT_SSH_COMMAND="ssh -o PreferredAuthentications=publickey -o ForwardAgent=yes" git clone ssh://[email protected]/...
262-
```
263-
264-
In other words, you need to ensure SSH agent forwarding is enabled.

docs/src/SUMMARY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
- [Filter syntax](./reference/filters.md)
1313
- [Proxy](./reference/proxy.md)
1414
- [Workspaces](./reference/workspace.md)
15+
- [Container configuration](./reference/container.md)
1516
- [Command line tools](./reference/cli.md)
1617
- [Graphql API](./reference/graphql.md)
1718
- [Handlebar generator]()

docs/src/guide/gettingstarted.t

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33
# starting josh
44
ANCHOR: docker_github
55
$ docker run \
6+
> --name josh-proxy \
67
> --detach \
78
> --publish 8000:8000 \
89
> --env JOSH_REMOTE=https://github.com \
910
> --volume josh-vol:/data/git \
10-
> joshproject/josh-proxy:latest > josh.out
11+
> joshproject/josh-proxy:latest
1112
ANCHOR_END: docker_github
13+
* (glob)
1214

1315
# waiting for josh to be running
1416
$ until curl -s http://localhost:8000/
@@ -87,4 +89,4 @@ ANCHOR_END: ls_doc
8789

8890
# cleanup
8991
$ cd ${TESTTMP}
90-
$ docker stop $(cat josh.out) >/dev/null
92+
$ docker stop josh-proxy >/dev/null

docs/src/reference/container.md

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
# Container configuration
2+
3+
## Container options
4+
5+
<table>
6+
<tr>
7+
<th>
8+
Variable
9+
</th>
10+
<th>
11+
Meaning
12+
</th>
13+
</tr>
14+
<tr>
15+
<td>
16+
<code>JOSH_REMOTE</code>
17+
</td>
18+
<td>
19+
HTTP remote, including protocol.
20+
Example: <code>https://github.com</code>
21+
</td>
22+
</tr>
23+
<tr>
24+
<td>
25+
<code>JOSH_REMOTE_SSH</code>
26+
</td>
27+
<td>
28+
SSH remote, including protocol.
29+
Example: <code>ssh://[email protected]</code>
30+
</td>
31+
</tr>
32+
<tr>
33+
<td>
34+
<code>JOSH_HTTP_PORT</code>
35+
</td>
36+
<td>
37+
HTTP port to listen on.
38+
Default: 8000
39+
</td>
40+
</tr>
41+
<tr>
42+
<td>
43+
<code>JOSH_SSH_PORT</code>
44+
</td>
45+
<td>
46+
SSH port to listen on.
47+
Default: 8022
48+
</td>
49+
</tr>
50+
<tr>
51+
<td>
52+
<code>JOSH_SSH_MAX_STARTUPS</code>
53+
</td>
54+
<td>
55+
Maximum number of concurrent SSH authentication attempts. Default: 16
56+
</td>
57+
</tr>
58+
<tr>
59+
<td>
60+
<code>JOSH_SSH_TIMEOUT</code>
61+
</td>
62+
<td>
63+
Timeout, in seconds, for a single request when serving repos over SSH.
64+
This time should cover fetch from upstream repo, filtering, and serving
65+
repo to client. Default: 300
66+
</td>
67+
</tr>
68+
<tr>
69+
<td>
70+
<code>JOSH_EXTRA_OPTS</code>
71+
</td>
72+
<td>
73+
Extra options passed directly to
74+
<code>josh-proxy</code> process
75+
</td>
76+
</tr>
77+
</table>
78+
79+
## Container volumes
80+
81+
<table>
82+
<tr>
83+
<th>
84+
Volume
85+
</th>
86+
<th>
87+
Purpose
88+
</th>
89+
</tr>
90+
<tr>
91+
<td>
92+
<code>/data/git</code>
93+
</td>
94+
<td>
95+
Git cache volume. If this volume is not
96+
mounted, the cache will be lost every time
97+
the container is shut down.
98+
</td>
99+
</tr>
100+
<tr>
101+
<td>
102+
<code>/data/keys</code>
103+
</td>
104+
<td>
105+
SSH server keys. If this volume is not
106+
mounted, a new key will be generated on
107+
each container startup
108+
</td>
109+
</tr>
110+
</table>
111+
112+
## Configuring SSH access
113+
114+
Josh supports SSH access (just pull without pushing, for now).
115+
To use SSH, you need to add the following lines to your `~/.ssh/config`:
116+
117+
```
118+
Host your-josh-instance.com
119+
ForwardAgent yes
120+
PreferredAuthentications publickey
121+
```
122+
123+
Alternatively, you can pass those options via `GIT_SSH_COMMAND`:
124+
125+
```
126+
GIT_SSH_COMMAND="ssh -o PreferredAuthentications=publickey -o ForwardAgent=yes" git clone ssh://[email protected]/...
127+
```
128+
129+
In other words, you need to ensure SSH agent forwarding is enabled.

0 commit comments

Comments
 (0)