Commits

Michael Granger committed fe62128

Updated installation instructions

Comments (0)

Files changed (3)

 
 ## Description
 
-This is an experimental minimalist Rubygems index and gem server for 
-serving private gems.
+This is an experimental minimalist Rubygems index and gem server for deploying private gems.
 
-It authenticates against an LDAP server, but it should be fairly easy
-to replace the authentication bits with something different.
+It authenticates against an LDAP server, but it should be fairly easy to replace the authentication bits with something different.
+
+Some notable features:
+
+* Serves gems and gem indexes, just like rubygems.org
+* Supports uploading via 'gem push'
+* Integrates with your LDAP directory for authentication
+* Spiffy web interface which supports drag-and-drop, multi-file uploads for 
+  modern browsers, and degrades into a simpler upload form for older browsers.
+
+Caveats:
+
+* Not designed or tested in high-traffic situations
+* Not super-configurable; assumes you have an environment similar to ours or 
+  are willing to hack it a bit
 
 
 ## Installation
     gem install gemserver
 
 
+## Running It
+
+The gem installs a 'gemserver' binary, which can be run out of the box with no
+configuration to test out the software, provided the machine it's running on
+has LDAP authentication configured correctly. It runs on all interfaces on
+port 9292, stores its gems under a temporary directory, and keeps an in-memory
+authtoken database.
+
+Should you wish to run it in a permanent fashion, you'll want to create a
+`gemserver.conf` file in the directory you wish to run it from that allows
+customization of what interface and port it listens to, where it keeps its
+gems and authentication tokens, etc. An example config is distributed with the
+gem.
+
 ## Contributing
 
-You can check out the current development source with Mercurial like so:
-
-    hg clone https://bitbucket.org/ged/gemserver
-
-Or if you prefer Git, via its Github mirror:
-
-    https://github.com/ged/gemserver
+You can check out the current development source with Mercurial [from BitBucket][bitbucket], or if you prefer Git, via [its Github mirror][github].
 
 After checking out the source, run:
 
 	$ rake newb
 
-This task will install any missing dependencies, run the tests/specs,
-and generate the API documentation.
+This task will install any missing dependencies, run the tests/specs, and
+generate the API documentation.
 
 
 ## License
 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+[bitbucket]: https://bitbucket.org/ged/gemserver
+[github]: https://github.com/ged/gemserver
+

data/gemserver/gemserver.conf.example

+---
+
+# How verbosely to log (debug,info,warn,error,fatal)
 loglevel: info
+
+# Configure the Rack adapter
+#   env:: may be set to 'development' to turn on various settings suitable for doing
+#         development. Any other setting is current treated as 'production'.
 rack:
   host: 127.0.0.1
   port: 9292
-  env: development
+  env: production
+
+# Configure the gemserver
+#   name::    the name of the server displayed in the web interface
+#   gemsdir:: the directory to store uploaded gems, their indexes, and the 
+#             authtoken database
+#   ldapuri:: the URI of the LDAP server to bind to for authentication. 
+#             Setting this to nil (~) will cause it to use the system LDAP
+#             configuration.
 gemserver:
   name: Unconfigured
   gemsdir: /tmp/uploaded_gems
-  ldapuri: "ldap://localhost/dc=localhost"
+  ldapuri: ~
 
 	DEFAULT_PORT = 9292
 
 	# The default Rack environment
-	DEFAULT_RACK_ENV = 'development'
+	DEFAULT_RACK_ENV = 'production'
 
 	# The path to the directory that contains the gem data
 	DEFAULT_GEMSDIR = Pathname( Dir.tmpdir ) + 'uploaded_gems'