gemstash 1.0.4 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGELOG.md +33 -0
- data/lib/gemstash.rb +2 -0
- data/lib/gemstash/api_key_authorization.rb +29 -0
- data/lib/gemstash/authorization.rb +5 -1
- data/lib/gemstash/cli/authorize.rb +1 -1
- data/lib/gemstash/cli/setup.rb +50 -37
- data/lib/gemstash/cli/start.rb +1 -1
- data/lib/gemstash/config.ru +1 -0
- data/lib/gemstash/configuration.rb +35 -3
- data/lib/gemstash/db/version.rb +11 -0
- data/lib/gemstash/env.rb +16 -10
- data/lib/gemstash/gem_fetcher.rb +1 -1
- data/lib/gemstash/gem_pusher.rb +15 -17
- data/lib/gemstash/gem_source/private_source.rb +29 -44
- data/lib/gemstash/gem_source/upstream_source.rb +4 -4
- data/lib/gemstash/gem_unyanker.rb +10 -4
- data/lib/gemstash/gem_yanker.rb +10 -4
- data/lib/gemstash/health.rb +53 -0
- data/lib/gemstash/http_client.rb +5 -3
- data/lib/gemstash/logging.rb +1 -1
- data/lib/gemstash/man/gemstash-authorize.1 +6 -5
- data/lib/gemstash/man/gemstash-authorize.1.txt +14 -13
- data/lib/gemstash/man/gemstash-configuration.5 +90 -8
- data/lib/gemstash/man/gemstash-configuration.5.txt +82 -6
- data/lib/gemstash/man/gemstash-customize.7 +68 -12
- data/lib/gemstash/man/gemstash-customize.7.txt +64 -26
- data/lib/gemstash/man/gemstash-debugging.7 +1 -1
- data/lib/gemstash/man/gemstash-deploy.7 +33 -1
- data/lib/gemstash/man/gemstash-deploy.7.txt +25 -0
- data/lib/gemstash/man/gemstash-mirror.7 +1 -1
- data/lib/gemstash/man/gemstash-multiple-sources.7 +1 -1
- data/lib/gemstash/man/gemstash-private-gems.7 +52 -3
- data/lib/gemstash/man/gemstash-private-gems.7.txt +39 -4
- data/lib/gemstash/man/gemstash-readme.7 +34 -4
- data/lib/gemstash/man/gemstash-readme.7.txt +34 -12
- data/lib/gemstash/man/gemstash-setup.1 +3 -1
- data/lib/gemstash/man/gemstash-setup.1.txt +3 -1
- data/lib/gemstash/man/gemstash-start.1 +4 -3
- data/lib/gemstash/man/gemstash-start.1.txt +5 -4
- data/lib/gemstash/man/gemstash-status.1 +4 -3
- data/lib/gemstash/man/gemstash-status.1.txt +3 -2
- data/lib/gemstash/man/gemstash-stop.1 +4 -3
- data/lib/gemstash/man/gemstash-stop.1.txt +3 -2
- data/lib/gemstash/man/gemstash-version.1 +1 -1
- data/lib/gemstash/puma.rb +2 -2
- data/lib/gemstash/specs_builder.rb +14 -16
- data/lib/gemstash/version.rb +1 -1
- metadata +29 -7
@@ -13,8 +13,15 @@ SYNOPSIS
|
|
13
13
|
:memcached_servers: localhost:11211
|
14
14
|
:db_adapter: postgres
|
15
15
|
:db_url: postgres:///gemstash
|
16
|
+
:db_connection_options:
|
17
|
+
:test: true
|
18
|
+
:pool_timeout: 2
|
16
19
|
:rubygems_url: https://my.gem-source.local
|
20
|
+
:puma_threads: 32
|
17
21
|
:bind: tcp://0.0.0.0:4242
|
22
|
+
:protected_fetch: true
|
23
|
+
:fetch_timeout: 10
|
24
|
+
:log_file: gemstash.log
|
18
25
|
|
19
26
|
BASE PATH
|
20
27
|
:base_path
|
@@ -64,21 +71,22 @@ DB ADAPTER
|
|
64
71
|
Specifies what database adapter to use. When sqlite3 is used, the
|
65
72
|
database will be located at gemstash.db within the directory specified
|
66
73
|
by :base_path. The database will automatically be created when using
|
67
|
-
sqlite3.
|
68
|
-
specified in the :db_url configuration key. The
|
69
|
-
be created when using
|
74
|
+
sqlite3. When postgres, mysql, or mysql2 is used, the database to con-
|
75
|
+
nect to must be specified in the :db_url configuration key. The data-
|
76
|
+
base must already be created when using anything other than sqlite3.
|
70
77
|
|
71
78
|
DEFAULT VALUE
|
72
79
|
sqlite3
|
73
80
|
|
74
81
|
VALID VALUES
|
75
|
-
sqlite3, postgres
|
82
|
+
sqlite3, postgres, mysql, mysql2
|
76
83
|
|
77
84
|
DB URL
|
78
85
|
:db_url
|
79
86
|
|
80
|
-
Specifies the database to connect
|
81
|
-
:db_adapter. Only used
|
87
|
+
Specifies the database to connect to when using postgres, mysql, or
|
88
|
+
mysql2 for the :db_adapter. Only used when the :db_adapter is not
|
89
|
+
sqlite3.
|
82
90
|
|
83
91
|
DEFAULT VALUE
|
84
92
|
None
|
@@ -87,6 +95,22 @@ DB URL
|
|
87
95
|
A valid database URL for the Sequel gem (http://sequel.jeremye-
|
88
96
|
vans.net/)
|
89
97
|
|
98
|
+
DB CONNECTION OPTIONS
|
99
|
+
:db_connection_options
|
100
|
+
|
101
|
+
Specifies additional Sequel.connect options to use. Note that any op-
|
102
|
+
tions here are merged in with the default options, so you need not
|
103
|
+
specify the max_connections if you customize this option.
|
104
|
+
|
105
|
+
DEFAULT VALUE
|
106
|
+
{ max_connections: 1 } for sqlite3 adapter, { max_connections: con-
|
107
|
+
fig[:puma_threads] + 1 } for any other adapter.
|
108
|
+
|
109
|
+
VALID VALUES
|
110
|
+
A valid connection options Hash for the Sequel.connect (http://se-
|
111
|
+
quel.jeremyevans.net/rdoc/files/doc/opening_databases_rdoc.html#label-
|
112
|
+
General+connection+options) method.
|
113
|
+
|
90
114
|
RUBYGEMS URL
|
91
115
|
:rubygems_url
|
92
116
|
|
@@ -101,6 +125,17 @@ RUBYGEMS URL
|
|
101
125
|
VALID VALUES
|
102
126
|
A valid gem source URL
|
103
127
|
|
128
|
+
PUMA THREADS
|
129
|
+
:puma_threads
|
130
|
+
|
131
|
+
Specifies the number of threads used for the Gemstash server.
|
132
|
+
|
133
|
+
DEFAULT VALUE
|
134
|
+
16
|
135
|
+
|
136
|
+
VALID VALUES
|
137
|
+
Integer value with a minimum of 1
|
138
|
+
|
104
139
|
BIND ADDRESS
|
105
140
|
:bind
|
106
141
|
|
@@ -116,6 +151,47 @@ BIND ADDRESS
|
|
116
151
|
Any valid binding that is supported by Puma
|
117
152
|
(https://github.com/puma/puma#binding-tcp--sockets)
|
118
153
|
|
154
|
+
PROTECTED FETCH
|
155
|
+
:protected_fetch
|
156
|
+
|
157
|
+
Tells Gemstash to authenticate via an API key before allowing the
|
158
|
+
fetching of private gems and specs. The default behavior is to allow
|
159
|
+
unauthenticated download of private gems and specs.
|
160
|
+
|
161
|
+
DEFAULT VALUE
|
162
|
+
false
|
163
|
+
|
164
|
+
VALID VALUES
|
165
|
+
Boolean values true or false
|
166
|
+
|
167
|
+
FETCH TIMEOUT
|
168
|
+
:fetch_timeout
|
169
|
+
|
170
|
+
The timeout setting for fetching gems. Fetching gems over a slow con-
|
171
|
+
nection may cause timeout errors. If you experience timeout errors,
|
172
|
+
you may want to increase this value. The default is 20 seconds.
|
173
|
+
|
174
|
+
DEFAULT VALUE
|
175
|
+
20
|
176
|
+
|
177
|
+
VALID VALUES
|
178
|
+
Integer value with a minimum of 1
|
179
|
+
|
180
|
+
LOG FILE
|
181
|
+
:log_file
|
182
|
+
|
183
|
+
Indicates the name of the file to use for logging. The file will be
|
184
|
+
placed in the base path (gemstash help configuration.5).
|
185
|
+
|
186
|
+
DEFAULT VALUE
|
187
|
+
server.log
|
188
|
+
|
189
|
+
VALID VALUES
|
190
|
+
Any valid file name, or :stdout to log to $stdout
|
191
|
+
|
192
|
+
Note: Using :stdout for the :log_file requires running with --no-daemo-
|
193
|
+
nize (gemstash help start.1).
|
194
|
+
|
119
195
|
|
120
196
|
|
121
197
|
October 13, 2015 gemstash-configuration(5)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
.\" Automatically generated by Pandoc 1.
|
1
|
+
.\" Automatically generated by Pandoc 1.19.2.1
|
2
2
|
.\"
|
3
3
|
.TH "gemstash\-customize" "7" "October 28, 2015" "" ""
|
4
4
|
.hy
|
@@ -16,7 +16,6 @@ command.
|
|
16
16
|
Run \f[C]gemstash\ setup\f[] and answer the questions it provides (a
|
17
17
|
blank answer will use the default value):
|
18
18
|
.RS
|
19
|
-
.PP
|
20
19
|
$ gemstash setup
|
21
20
|
.PD 0
|
22
21
|
.P
|
@@ -37,7 +36,7 @@ What is the comma separated Memcached servers?
|
|
37
36
|
.P
|
38
37
|
.PD
|
39
38
|
What database adapter?
|
40
|
-
[SQLITE3, postgres] \f[B]postgres\f[]
|
39
|
+
[SQLITE3, postgres, mysql, mysql2] \f[B]postgres\f[]
|
41
40
|
.PD 0
|
42
41
|
.P
|
43
42
|
.PD
|
@@ -55,16 +54,18 @@ Checking that the database is available
|
|
55
54
|
.P
|
56
55
|
.PD
|
57
56
|
The database is not available
|
57
|
+
.PD 0
|
58
|
+
.P
|
59
|
+
.PD
|
58
60
|
.RE
|
59
61
|
.PP
|
60
|
-
Once you\[aq]ve answered the
|
62
|
+
Once you\[aq]ve answered the questions, some checks will be made to
|
61
63
|
ensure the configuration will work.
|
62
64
|
For example, the database didn\[aq]t exist in the previous example, so
|
63
65
|
the command failed and the configuration wasn\[aq]t saved.
|
64
66
|
If the command passes, you may provide the \f[C]\-\-redo\f[] option to
|
65
67
|
force configuration to be redone:
|
66
68
|
.RS
|
67
|
-
.PP
|
68
69
|
$ gemstash setup \-\-redo
|
69
70
|
.PD 0
|
70
71
|
.P
|
@@ -85,7 +86,7 @@ What is the comma separated Memcached servers?
|
|
85
86
|
.P
|
86
87
|
.PD
|
87
88
|
What database adapter?
|
88
|
-
[SQLITE3, postgres]
|
89
|
+
[SQLITE3, postgres, mysql, mysql2]
|
89
90
|
.PD 0
|
90
91
|
.P
|
91
92
|
.PD
|
@@ -98,6 +99,9 @@ Checking that the database is available
|
|
98
99
|
.P
|
99
100
|
.PD
|
100
101
|
You are all setup!
|
102
|
+
.PD 0
|
103
|
+
.P
|
104
|
+
.PD
|
101
105
|
.RE
|
102
106
|
.PP
|
103
107
|
Once all checks have passed, Gemstash will store your answers in the
|
@@ -130,10 +134,12 @@ The default \f[C]:db_adapter\f[] is
|
|
130
134
|
file located within your \f[C]:base_path\f[].
|
131
135
|
The database file will always be named \f[C]gemstash.db\f[].
|
132
136
|
.PP
|
133
|
-
You may also use \f[C]postgres\f[] (http://www.postgresql.org/)
|
134
|
-
\f[C]
|
135
|
-
|
136
|
-
|
137
|
+
You may also use \f[C]postgres\f[] (http://www.postgresql.org/),
|
138
|
+
\f[C]mysql\f[] (http://www.mysql.com/), or
|
139
|
+
\f[C]mysql2\f[] (http://sequel.jeremyevans.net/rdoc/files/doc/opening_databases_rdoc.html#label-mysql2)
|
140
|
+
for your \f[C]:db_adapter\f[].
|
141
|
+
When using any of these options, you need to specify the
|
142
|
+
\f[C]:db_url\f[] to point to an existing database.
|
137
143
|
Here is an example configuration to use the \f[C]postgres\f[] adapter:
|
138
144
|
.IP
|
139
145
|
.nf
|
@@ -142,13 +148,18 @@ Here is an example configuration to use the \f[C]postgres\f[] adapter:
|
|
142
148
|
\-\-\-
|
143
149
|
:db_adapter:\ postgres
|
144
150
|
:db_url:\ postgres:///gemstash
|
151
|
+
:db_connection_options:\ #\ Sequel.connect\ options
|
152
|
+
\ \ :connect_timeout:\ 10
|
153
|
+
\ \ :read_timeout:\ 5
|
154
|
+
\ \ :timeout:\ 30
|
145
155
|
\f[]
|
146
156
|
.fi
|
147
157
|
.PP
|
148
158
|
Regardless of the adapter you choose, the database will automatically
|
149
159
|
migrate to your version of Gemstash whenever the database is needed.
|
150
|
-
|
151
|
-
|
160
|
+
You only need to ensure the database exists and Gemstash will do the
|
161
|
+
rest, except for \f[C]sqlite3\f[] (for which Gemstash will also create
|
162
|
+
the database for you).
|
152
163
|
.SS CACHE
|
153
164
|
.PP
|
154
165
|
Certain things (like dependencies) are cached in memory.
|
@@ -198,6 +209,36 @@ To change the binding, update the \f[C]:bind\f[] configuration key:
|
|
198
209
|
This maps directly to the Puma bind
|
199
210
|
flag (https://github.com/puma/puma#binding-tcp--sockets), and will
|
200
211
|
support anything valid for that flag.
|
212
|
+
.PP
|
213
|
+
The number of threads Puma uses is also customizable via the
|
214
|
+
\f[C]:puma_threads\f[] configuration key.
|
215
|
+
The default is \f[C]16\f[].
|
216
|
+
.SS PROTECTED FETCH
|
217
|
+
.PP
|
218
|
+
Gemstash by default allows unauthenticated access for private gems.
|
219
|
+
Authenticated access is available via the \f[C]:protected_fetch\f[]
|
220
|
+
configuration key.
|
221
|
+
.IP
|
222
|
+
.nf
|
223
|
+
\f[C]
|
224
|
+
#\ ~/.gemstash/config.yml
|
225
|
+
\-\-\-
|
226
|
+
:protected_fetch:\ true
|
227
|
+
\f[]
|
228
|
+
.fi
|
229
|
+
.PP
|
230
|
+
More details on protected_fetch are here (gemstash help private-gems.7).
|
231
|
+
.SS FETCH TIMEOUT
|
232
|
+
.PP
|
233
|
+
The default fetch timeout is 20 seconds.
|
234
|
+
Use the \f[C]:fetch_timeout\f[] configuration key to change it.
|
235
|
+
.IP
|
236
|
+
.nf
|
237
|
+
\f[C]
|
238
|
+
\-\-\-
|
239
|
+
:fetch_timeout:\ 20
|
240
|
+
\f[]
|
241
|
+
.fi
|
201
242
|
.SS CONFIG FILE LOCATION
|
202
243
|
.PP
|
203
244
|
By default, configuration for Gemstash will be at
|
@@ -222,3 +263,18 @@ If the file doesn\[aq]t exist when providing \f[C]\-\-config\-file\f[]
|
|
222
263
|
to \f[C]gemstash\ start\f[], \f[C]gemstash\ stop\f[],
|
223
264
|
\f[C]gemstash\ status\f[], and \f[C]gemstash\ authorize\f[], the default
|
224
265
|
configuration will be used.
|
266
|
+
.SS ERB PARSED CONFIG
|
267
|
+
.PP
|
268
|
+
You may also create a \f[C]~/.gemstash/config.yml.erb\f[] file.
|
269
|
+
If present, this will be used instead of
|
270
|
+
\f[C]~/.gemstash/config.yml\f[].
|
271
|
+
For example, with this you can use environment variables in the config:
|
272
|
+
.IP
|
273
|
+
.nf
|
274
|
+
\f[C]
|
275
|
+
#\ ~/.gemstash/config.yml.erb
|
276
|
+
\-\-\-
|
277
|
+
:db_adapter:\ postgres
|
278
|
+
:db_url:\ <%=\ ENV["DATABASE_URL"]\ %>
|
279
|
+
\f[]
|
280
|
+
.fi
|
@@ -13,35 +13,34 @@ CUSTOMIZING THE SERVER
|
|
13
13
|
Several customizable options are available via an interactive Gemstash
|
14
14
|
command. Run gemstash setup and answer the questions it provides (a
|
15
15
|
blank answer will use the default value):
|
16
|
-
|
17
16
|
$ gemstash setup
|
18
17
|
Where should files go? [~/.gemstash]
|
19
18
|
Cache with what? [MEMORY, memcached] memcached
|
20
19
|
What is the comma separated Memcached servers? [local-
|
21
20
|
host:11211]
|
22
|
-
What database adapter? [SQLITE3, postgres]
|
21
|
+
What database adapter? [SQLITE3, postgres, mysql, mysql2] post-
|
22
|
+
gres
|
23
23
|
Where is the database? [postgres:///gemstash]
|
24
24
|
Checking that the cache is available
|
25
25
|
Checking that the database is available
|
26
26
|
The database is not available
|
27
27
|
|
28
|
-
Once
|
28
|
+
Once you've answered the questions, some checks will be made to ensure
|
29
29
|
the configuration will work. For example, the database didn't exist in
|
30
|
-
the
|
30
|
+
the previous example, so the command failed and the configuration
|
31
31
|
wasn't saved. If the command passes, you may provide the --redo option
|
32
32
|
to force configuration to be redone:
|
33
|
-
|
34
33
|
$ gemstash setup --redo
|
35
34
|
Where should files go? [~/.gemstash]
|
36
35
|
Cache with what? [MEMORY, memcached] memcached
|
37
|
-
What
|
36
|
+
What is the comma separated Memcached servers? [local-
|
38
37
|
host:11211]
|
39
|
-
What database adapter? [SQLITE3, postgres]
|
38
|
+
What database adapter? [SQLITE3, postgres, mysql, mysql2]
|
40
39
|
Checking that the cache is available
|
41
40
|
Checking that the database is available
|
42
41
|
You are all setup!
|
43
42
|
|
44
|
-
Once
|
43
|
+
Once all checks have passed, Gemstash will store your answers in the
|
45
44
|
configuration file located at ~/.gemstash/config.yml.
|
46
45
|
|
47
46
|
FILES
|
@@ -52,31 +51,38 @@ CUSTOMIZING THE SERVER
|
|
52
51
|
---
|
53
52
|
:base_path: "/var/gemstash"
|
54
53
|
|
55
|
-
When
|
54
|
+
When customizing the base_path, the directory must exist, otherwise
|
56
55
|
Gemstash will fail to run. Thus, if you want to use /var/gemstash like
|
57
56
|
in the previous example, make sure to mkdir /var/gemstash and grant ac-
|
58
57
|
cess to the directory for the user you run Gemstash with.
|
59
58
|
|
60
59
|
DATABASE
|
61
|
-
The
|
62
|
-
using.
|
63
|
-
which
|
60
|
+
The :db_adapter configuration key specifies what database you will be
|
61
|
+
using. The default :db_adapter is sqlite3 (https://www.sqlite.org/),
|
62
|
+
which will use a database file located within your :base_path. The
|
64
63
|
database file will always be named gemstash.db.
|
65
64
|
|
66
|
-
You
|
67
|
-
|
68
|
-
|
69
|
-
|
65
|
+
You may also use postgres (http://www.postgresql.org/), mysql
|
66
|
+
(http://www.mysql.com/), or mysql2 (http://sequel.jeremye-
|
67
|
+
vans.net/rdoc/files/doc/opening_databases_rdoc.html#label-mysql2) for
|
68
|
+
your :db_adapter. When using any of these options, you need to specify
|
69
|
+
the :db_url to point to an existing database. Here is an example con-
|
70
|
+
figuration to use the postgres adapter:
|
70
71
|
|
71
72
|
# ~/.gemstash/config.yml
|
72
73
|
---
|
73
74
|
:db_adapter: postgres
|
74
75
|
:db_url: postgres:///gemstash
|
76
|
+
:db_connection_options: # Sequel.connect options
|
77
|
+
:connect_timeout: 10
|
78
|
+
:read_timeout: 5
|
79
|
+
:timeout: 30
|
75
80
|
|
76
|
-
Regardless
|
77
|
-
migrate
|
78
|
-
|
79
|
-
Gemstash will
|
81
|
+
Regardless of the adapter you choose, the database will automatically
|
82
|
+
migrate to your version of Gemstash whenever the database is needed.
|
83
|
+
You only need to ensure the database exists and Gemstash will do the
|
84
|
+
rest, except for sqlite3 (for which Gemstash will also create the data-
|
85
|
+
base for you).
|
80
86
|
|
81
87
|
CACHE
|
82
88
|
Certain things (like dependencies) are cached in memory. This avoids
|
@@ -115,9 +121,31 @@ CUSTOMIZING THE SERVER
|
|
115
121
|
(https://github.com/puma/puma#binding-tcp--sockets), and will support
|
116
122
|
anything valid for that flag.
|
117
123
|
|
124
|
+
The number of threads Puma uses is also customizable via the
|
125
|
+
:puma_threads configuration key. The default is 16.
|
126
|
+
|
127
|
+
PROTECTED FETCH
|
128
|
+
Gemstash by default allows unauthenticated access for private gems.
|
129
|
+
Authenticated access is available via the :protected_fetch configura-
|
130
|
+
tion key.
|
131
|
+
|
132
|
+
# ~/.gemstash/config.yml
|
133
|
+
---
|
134
|
+
:protected_fetch: true
|
135
|
+
|
136
|
+
More details on protected_fetch are here (gemstash help private-
|
137
|
+
gems.7).
|
138
|
+
|
139
|
+
FETCH TIMEOUT
|
140
|
+
The default fetch timeout is 20 seconds. Use the :fetch_timeout con-
|
141
|
+
figuration key to change it.
|
142
|
+
|
143
|
+
---
|
144
|
+
:fetch_timeout: 20
|
145
|
+
|
118
146
|
CONFIG FILE LOCATION
|
119
|
-
By
|
120
|
-
fig.yml.
|
147
|
+
By default, configuration for Gemstash will be at ~/.gemstash/con-
|
148
|
+
fig.yml. This can be changed by providing the --config-file option to
|
121
149
|
the various Gemstash commands:
|
122
150
|
|
123
151
|
$ gemstash setup --config-file ./gemstash-config.yml
|
@@ -126,12 +154,22 @@ CUSTOMIZING THE SERVER
|
|
126
154
|
$ gemstash stop --config-file ./gemstash-config.yml
|
127
155
|
$ gemstash status --config-file ./gemstash-config.yml
|
128
156
|
|
129
|
-
When
|
130
|
-
be
|
131
|
-
existing
|
132
|
-
--config-file
|
157
|
+
When providing --config-file to gemstash setup, the provided file will
|
158
|
+
be output to with the provided configuration. This will overwrite any
|
159
|
+
existing configuration. If the file doesn't exist when providing
|
160
|
+
--config-file to gemstash start, gemstash stop, gemstash status, and
|
133
161
|
gemstash authorize, the default configuration will be used.
|
134
162
|
|
163
|
+
ERB PARSED CONFIG
|
164
|
+
You may also create a ~/.gemstash/config.yml.erb file. If present,
|
165
|
+
this will be used instead of ~/.gemstash/config.yml. For example, with
|
166
|
+
this you can use environment variables in the config:
|
167
|
+
|
168
|
+
# ~/.gemstash/config.yml.erb
|
169
|
+
---
|
170
|
+
:db_adapter: postgres
|
171
|
+
:db_url: <%= ENV["DATABASE_URL"] %>
|
172
|
+
|
135
173
|
|
136
174
|
|
137
175
|
October 28, 2015 gemstash-customize(7)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
.\" Automatically generated by Pandoc 1.
|
1
|
+
.\" Automatically generated by Pandoc 1.19.2.1
|
2
2
|
.\"
|
3
3
|
.TH "gemstash\-deploy" "7" "October 25, 2015" "" ""
|
4
4
|
.hy
|
@@ -34,6 +34,38 @@ $\ bundle\ update
|
|
34
34
|
$\ bundle\ exec\ gemstash\ start
|
35
35
|
\f[]
|
36
36
|
.fi
|
37
|
+
.SS MONITORING
|
38
|
+
.PP
|
39
|
+
Health monitoring is built in to Gemstash using the
|
40
|
+
server_health_check\-rack (https://github.com/on-site/server_health_check-rack)
|
41
|
+
gem.
|
42
|
+
If you request \f[C]/health\f[] from your Gemstash instance, you will
|
43
|
+
get a JSON response along with an HTTP status code indicating success or
|
44
|
+
failure.
|
45
|
+
The JSON response will look something like this for a success case:
|
46
|
+
.IP
|
47
|
+
.nf
|
48
|
+
\f[C]
|
49
|
+
{
|
50
|
+
\ \ "status":\ {
|
51
|
+
\ \ \ \ "heartbeat":\ "OK",
|
52
|
+
\ \ \ \ "storage_read":\ "OK",
|
53
|
+
\ \ \ \ "storage_write":\ "OK",
|
54
|
+
\ \ \ \ "db_read":\ "OK",
|
55
|
+
\ \ \ \ "db_write":\ "OK"
|
56
|
+
\ \ }
|
57
|
+
}
|
58
|
+
\f[]
|
59
|
+
.fi
|
60
|
+
.PP
|
61
|
+
This request will test storage and database access and report on the
|
62
|
+
result.
|
63
|
+
Each key in the status can be requested alone to just report on that
|
64
|
+
status.
|
65
|
+
For example, if you would like a health check that doesn\[aq]t interact
|
66
|
+
with storage or the database, you can use \f[C]/health/heartbeat\f[]
|
67
|
+
which will always respond with a success while your Gemstash server is
|
68
|
+
running.
|
37
69
|
.SS DOWNGRADING
|
38
70
|
.PP
|
39
71
|
It is not recommended to go backwards in Gemstash versions.
|