nap - nightmare(less) application platform
Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
_scripts
bin
doc
etc
lib
.gitignore
README

README

--                                                                {{{1

File        : README
Maintainer  : Felix C. Stegerman <flx@obfusk.net>
Date        : 2012-11-01

Copyright   : Copyright (C) 2012  Felix C. Stegerman
Version     : v0.1.0

--                                                                }}}1

=== NB ===                                                        {{{1

  Nap is still in beta (< v1.0.0), not fully tested and I can't make
  any guarantees regarding backward-compatibility.  It seems to work
  well enough (we use it in production at the company I work at), and
  I don't intend to break compatibility unless there's a compelling
  reason to do so.  Have fun.
                                                                  }}}1

=== Description ===                                               {{{1

  nap - nightmare(less) application platform

  nap is a configurable and extensible set of tools and templates that
  makes it easier to manage and deploy web applications.

    * Have new apps running in seconds.
    * Get a quick overview of running apps.
    * Update an app in seconds with a single command.
    * Allow developers to have their apps updated automatically when
      they push their code to the server (using git).
                                                                  }}}1

=== Usage ===                                                     {{{1

  See also doc/type-{ruby,clj,...}.


  === The nap command ===                                         {{{2

    nap { <command> [<arg(s)>] | help [<command>] }

    nap new       <name> <type> <repo> [<opt(s)>]
    nap bootstrap <name>
    nap update    <name>
    nap start     <name>
    nap stop      <name>
    nap restart   <name>
    nap status    <name> [ -q | -s ]
    nap info      <name> [ -q ]
    nap log       <name> <subcommand> ...


    === Commands ===                                              {{{3

      new         Creates a new app with <type>, cloned from <repo>.
                  Options:
                    vcs=...                 default is git
                    branch=...              default is master
                    logdir=...              default is no logdir
                    <type>.<option>=...

      bootstrap   Installs dependencies.
      update      Stops (if running), pulls from <repo>, updates
                  dependencies, restarts (if running).
      start       Starts.
      stop        Stops.
      restart     Restarts (if running).
      status      Shows status.
      info        Shows configuration.
                                                                  }}}3

    === Log commands ===                                          {{{3

      These allow you to list and view nap's logfiles.  If you've
      specified a logdir (relative to your app), <logdir>/*.log can
      also be referenced (with a prefix); e.g. <logdir>/foo.log is
      referenced as @foo.

      list                  lists names of logfiles
      files                 lists paths of logfiles
      assoc                 lists names and paths of logfiles
      tail <n> [<log(s)>]   shows the last <n> lines of the specified
                            logfiles (or all logfiles if none are
                            specified)
      monitor <n> <log>     shows the last <n> lines of the specified
                            logfile; shows appended data as the file
                            grows
      hist <n> [-v]         shows the last <n> commits
                                                                  }}}3
                                                                  }}}2

  === The naps command ===                                        {{{2

    naps [ <command> [<app(s)>] | help ]

    naps
    naps list
    naps { update | start | stop | restart | status } [<app(s)>]
    naps pstart [<app(s)>]


    === Commands ===                                              {{{3

      naps          Shows the status of all apps.
      naps list     Lists all apps.

      naps { update | start | stop | restart | status }
                    Runs >> nap <command> <app> << for all apps
                    specified (or all apps if none are specified).

      naps pstart   Same as >> naps start <<, but starts apps in
                    parallel; output looks funny.
                                                                  }}}3
                                                                  }}}2
                                                                  }}}1

=== Installing ===                                                {{{1

  Get it at https://github.com/obfusk/nap.

  See doc/my-server for an example server setup.

  You may also be interested in the web-based "naps" command:
  https://github.com/obfusk/nap-app.
                                                                  }}}1

=== Depends ===                                                   {{{1

  * unix (tested on ubuntu; partially tested on osx)
  * bash
  * git

  Each app type (e.g. ruby, clojure) comes with its own dependencies.

  The only vcs currently supported is git, but others should be easy
  to implement.                                                   TODO
                                                                  }}}1

=== TODO ===                                                      {{{1

  * update docs
  * clj SOCKET ???

  ...
                                                                  }}}1

=== License ===                                                   {{{1

  GPLv3+ [1].
                                                                  }}}1

=== References ===                                                {{{1

  [1] GNU General Public License, version 3
      http://www.gnu.org/licenses/gpl-3.0.html
                                                                  }}}1

--

vim: set tw=70 sw=2 sts=2 et fdm=marker :