Skip to content

Instantly share code, notes, and snippets.

@distracteddev
Created November 22, 2012 22:14
Show Gist options
  • Select an option

  • Save distracteddev/4133121 to your computer and use it in GitHub Desktop.

Select an option

Save distracteddev/4133121 to your computer and use it in GitHub Desktop.

Revisions

  1. distracteddev revised this gist Nov 22, 2012. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions spec.md
    Original file line number Diff line number Diff line change
    @@ -10,6 +10,7 @@ A Personal Deployment Tool for Node.js developers that want to run their applica
    - `seam logs` from within your app's directory runs a `ssh tail -f` against the seam server to give you instant access to your logs while integrated 3rd party logging platforms like Loggly, Ratchet.io, etc are also an option for those more demanding situations).
    - Runs Your Application's Tests via `npm test` and hosts the output as a static file
    - Provides a simple singe-page dashboard for all deployed applications with uptime, restart count, etc.
    - Alerts for important events (errors, app restart/exit, etc)

    ### Seam's Core Functionality

  2. distracteddev revised this gist Nov 22, 2012. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions spec.md
    Original file line number Diff line number Diff line change
    @@ -57,6 +57,7 @@ Simply go to the admin panel of your reposity, and add the URL `[your-hostname-h
    ##### Optional Seam Plugins

    - Integration with Cloud-Based Logging Platforms (Loggly, Logmetrics, Ratchet.io, etc)
    - Email Notifications/Alerts
    - OSX Notifications (Credit goes to the `node-osx-notifier` module)
    - Have any ideas or suggestions for more? I would love to hear them :)

  3. distracteddev revised this gist Nov 22, 2012. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions spec.md
    Original file line number Diff line number Diff line change
    @@ -57,6 +57,7 @@ Simply go to the admin panel of your reposity, and add the URL `[your-hostname-h
    ##### Optional Seam Plugins

    - Integration with Cloud-Based Logging Platforms (Loggly, Logmetrics, Ratchet.io, etc)
    - OSX Notifications (Credit goes to the `node-osx-notifier` module)
    - Have any ideas or suggestions for more? I would love to hear them :)


  4. distracteddev revised this gist Nov 22, 2012. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions spec.md
    Original file line number Diff line number Diff line change
    @@ -46,6 +46,8 @@ domainMap: {
    ```


    ### Installation & Repo Set-up

    ##### Setting up the Seam Server
    Seam is a node app itself, a simple `npm install seam` is all you would need.

  5. distracteddev revised this gist Nov 22, 2012. 1 changed file with 12 additions and 3 deletions.
    15 changes: 12 additions & 3 deletions spec.md
    Original file line number Diff line number Diff line change
    @@ -45,10 +45,19 @@ domainMap: {
    }
    ```

    ##### Seam Plugins

    - Integration with Cloud-Based Logging Platforms (Loggly, Logmetrics, Ratchet.io, etc)
    -
    ##### Setting up the Seam Server
    Seam is a node app itself, a simple `npm install seam` is all you would need.

    ##### Setting up a git repo with Seam
    Simply go to the admin panel of your reposity, and add the URL `[your-hostname-here].com/hook/` as a web-hook end-point.

    ##### Optional Seam Plugins

    - Integration with Cloud-Based Logging Platforms (Loggly, Logmetrics, Ratchet.io, etc)
    - Have any ideas or suggestions for more? I would love to hear them :)





  6. distracteddev revised this gist Nov 22, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion spec.md
    Original file line number Diff line number Diff line change
    @@ -45,7 +45,7 @@ domainMap: {
    }
    ```

    ### Seam Plugins
    ##### Seam Plugins

    - Integration with Cloud-Based Logging Platforms (Loggly, Logmetrics, Ratchet.io, etc)
    -
  7. distracteddev revised this gist Nov 22, 2012. 1 changed file with 6 additions and 6 deletions.
    12 changes: 6 additions & 6 deletions spec.md
    Original file line number Diff line number Diff line change
    @@ -17,9 +17,9 @@ Seam uses git post-recieve webhooks to deploy your applications while integratin

    This workflow is best described by a couple of examples:

    - I push the master branch of my Soapbox repo to my seam server living at distracteddev.com, Soapbox now is now living at soapbox.distracteddev.com
    - I push the staging branch of my Soapbox repo... This version of Soapbox is now living at soapbox-staging.distracteddev.com
    - I push the development branch of my Soapbox repo... This version of Soapbox is now living at soapbox-dev.distracteddev.com
    - I push the master branch of my Soapbox repo to my seam server living at distracteddev.com, Soapbox now is now living at `soapbox.distracteddev.com`
    - I push the staging branch of my Soapbox repo... This version of Soapbox is now living at `soapbox-staging.distracteddev.com`
    - I push the development branch of my Soapbox repo... This version of Soapbox is now living at `soapbox-dev.distracteddev.com`

    - I push the master branch of my Soapbox repo which has the following lines in it's package.json.

    @@ -29,9 +29,9 @@ domains: [
    ]
    ```

    master will accept requests from zeus.ly
    staging will accept requests from staging.zeus.ly
    dev will accept requests from dev.zeus.ly
    master will accept requests from `zeus.ly`
    staging will accept requests from `staging.zeus.ly`
    dev will accept requests from `dev.zeus.ly`

    Note: If these conventions are not to your liking, you can define overrides via a domainMap:

  8. distracteddev revised this gist Nov 22, 2012. 1 changed file with 3 additions and 2 deletions.
    5 changes: 3 additions & 2 deletions spec.md
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,5 @@
    # Seam
    ##### Seam is the invisible stitching between your Node.js applications and the real world.
    ###### Seam is the invisible stitching between your Node.js applications and the real world.

    ### What is Seam?

    @@ -8,7 +8,8 @@ A Personal Deployment Tool for Node.js developers that want to run their applica
    - Deploy Multiple Applications, each with multiple environments (prod, staging, dev, etc)
    - Handles your applications logs in a sane and user friendly way.
    - `seam logs` from within your app's directory runs a `ssh tail -f` against the seam server to give you instant access to your logs while integrated 3rd party logging platforms like Loggly, Ratchet.io, etc are also an option for those more demanding situations).
    -
    - Runs Your Application's Tests via `npm test` and hosts the output as a static file
    - Provides a simple singe-page dashboard for all deployed applications with uptime, restart count, etc.

    ### Seam's Core Functionality

  9. distracteddev revised this gist Nov 22, 2012. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion spec.md
    Original file line number Diff line number Diff line change
    @@ -6,7 +6,8 @@
    A Personal Deployment Tool for Node.js developers that want to run their applications on a VPS rather than a hosted solution like Nodejitsu or Heroku but still crave the simplicity that comes with having the basic deployment details handled for you. So what problems does Seam.io solve?

    - Deploy Multiple Applications, each with multiple environments (prod, staging, dev, etc)
    - Handles your applications logs in a sane and user friendly way. `seam logs` from within your app's directory runs a `ssh tail -f` against the seam server to give you instant access to your logs while integrated 3rd party logging platforms like Loggly, Ratchet.io, etc are also an option).
    - Handles your applications logs in a sane and user friendly way.
    - `seam logs` from within your app's directory runs a `ssh tail -f` against the seam server to give you instant access to your logs while integrated 3rd party logging platforms like Loggly, Ratchet.io, etc are also an option for those more demanding situations).
    -

    ### Seam's Core Functionality
  10. distracteddev revised this gist Nov 22, 2012. 1 changed file with 5 additions and 4 deletions.
    9 changes: 5 additions & 4 deletions spec.md
    Original file line number Diff line number Diff line change
    @@ -14,11 +14,12 @@ A Personal Deployment Tool for Node.js developers that want to run their applica
    Seam uses git post-recieve webhooks to deploy your applications while integrating seamlessly with your current git workflow. For example, if you push to a project's master branch, Seam will create/sync your repo, install dependencies via npm, and launch your script at a specified port. It then updates the proxy table and uses Nodejitsu's battle-hardened node-http-proxy to route traffic to your newly deployed app. It determines which domains/subdomains to forward to the newly deployed app based on the the domains/subdomains properties of the repo's package.json. If no option is specified, it simply uses the dasherized name of the git repo as the subdomain. Once the deploy has completed/failed you will get a email/osx-notification with some status info for your app such as the output of `npm test` or any issues with dependency installation/launching the application.

    This workflow is best described by a couple of examples:
    -- I push the master branch of my Soapbox repo to my seam server living at distracteddev.com, Soapbox now is now living at soapbox.distracteddev.com
    -- I push the staging branch of my Soapbox repo... This version of Soapbox is now living at soapbox-staging.distracteddev.com
    -- I push the development branch of my Soapbox repo... This version of Soapbox is now living at soapbox-dev.distracteddev.com

    - I push the master branch of my Soapbox repo to my seam server living at distracteddev.com, Soapbox now is now living at soapbox.distracteddev.com
    - I push the staging branch of my Soapbox repo... This version of Soapbox is now living at soapbox-staging.distracteddev.com
    - I push the development branch of my Soapbox repo... This version of Soapbox is now living at soapbox-dev.distracteddev.com

    -- I push the master branch of my Soapbox repo which has the following lines in it's package.json.
    - I push the master branch of my Soapbox repo which has the following lines in it's package.json.

    ```javascript
    domains: [
  11. distracteddev revised this gist Nov 22, 2012. 1 changed file with 12 additions and 5 deletions.
    17 changes: 12 additions & 5 deletions spec.md
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,13 @@
    ### Seam's Purpose
    # Seam
    ##### Seam is the invisible stitching between your Node.js applications and the real world.

    Deploy your Node.js applications in multiple environments (prod, staging, dev) to any VPS that you control without any user interaction. Seam is the invisible stitching between your Node.js applications and the real world.
    ### What is Seam?

    A Personal Deployment Tool for Node.js developers that want to run their applications on a VPS rather than a hosted solution like Nodejitsu or Heroku but still crave the simplicity that comes with having the basic deployment details handled for you. So what problems does Seam.io solve?

    - Deploy Multiple Applications, each with multiple environments (prod, staging, dev, etc)
    - Handles your applications logs in a sane and user friendly way. `seam logs` from within your app's directory runs a `ssh tail -f` against the seam server to give you instant access to your logs while integrated 3rd party logging platforms like Loggly, Ratchet.io, etc are also an option).
    -

    ### Seam's Core Functionality

    @@ -13,7 +20,7 @@ This workflow is best described by a couple of examples:

    -- I push the master branch of my Soapbox repo which has the following lines in it's package.json.

    ```JSON
    ```javascript
    domains: [
    'zeus.ly'
    ]
    @@ -23,9 +30,9 @@ master will accept requests from zeus.ly
    staging will accept requests from staging.zeus.ly
    dev will accept requests from dev.zeus.ly

    Note: If these conventions are not to your liking, you can define a domainMap:
    Note: If these conventions are not to your liking, you can define overrides via a domainMap:

    ```JSON
    ```javascript
    // branch->domain pairs
    domainMap: {
    master: 'zeus.ly',
  12. distracteddev revised this gist Nov 22, 2012. 1 changed file with 8 additions and 3 deletions.
    11 changes: 8 additions & 3 deletions spec.md
    Original file line number Diff line number Diff line change
    @@ -1,10 +1,10 @@
    ### Seam Purpose
    ### Seam's Purpose

    Deploy your Node.js applications in multiple environments (prod, staging, dev) to any VPS that you control without any user interaction. Seam is the invisible stitching between your Node.js applications and the real world.

    ### Seam's Workflow and Requirements
    ### Seam's Core Functionality

    Seam uses git post-recieve webhooks to deploy your applications while integrating seamlessly with your current git workflow. For example, if you push to a project's master branch, Seam will create/sync your repo, install dependencies via npm, and launch your script at a specified port. It then updates the proxy table and uses Nodejitsu's battle-hardened node-http-proxy to route traffic to your newly deployed webapp. It determines which domains/subdomains to forward to the newly deployed app based on the the domains/subdomains properties of the repo's package.json. If no option is specified, it simply uses the name of the git repo as the subdomain.
    Seam uses git post-recieve webhooks to deploy your applications while integrating seamlessly with your current git workflow. For example, if you push to a project's master branch, Seam will create/sync your repo, install dependencies via npm, and launch your script at a specified port. It then updates the proxy table and uses Nodejitsu's battle-hardened node-http-proxy to route traffic to your newly deployed app. It determines which domains/subdomains to forward to the newly deployed app based on the the domains/subdomains properties of the repo's package.json. If no option is specified, it simply uses the dasherized name of the git repo as the subdomain. Once the deploy has completed/failed you will get a email/osx-notification with some status info for your app such as the output of `npm test` or any issues with dependency installation/launching the application.

    This workflow is best described by a couple of examples:
    -- I push the master branch of my Soapbox repo to my seam server living at distracteddev.com, Soapbox now is now living at soapbox.distracteddev.com
    @@ -35,5 +35,10 @@ domainMap: {
    }
    ```

    ### Seam Plugins

    - Integration with Cloud-Based Logging Platforms (Loggly, Logmetrics, Ratchet.io, etc)
    -



  13. distracteddev created this gist Nov 22, 2012.
    39 changes: 39 additions & 0 deletions spec.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,39 @@
    ### Seam Purpose

    Deploy your Node.js applications in multiple environments (prod, staging, dev) to any VPS that you control without any user interaction. Seam is the invisible stitching between your Node.js applications and the real world.

    ### Seam's Workflow and Requirements

    Seam uses git post-recieve webhooks to deploy your applications while integrating seamlessly with your current git workflow. For example, if you push to a project's master branch, Seam will create/sync your repo, install dependencies via npm, and launch your script at a specified port. It then updates the proxy table and uses Nodejitsu's battle-hardened node-http-proxy to route traffic to your newly deployed webapp. It determines which domains/subdomains to forward to the newly deployed app based on the the domains/subdomains properties of the repo's package.json. If no option is specified, it simply uses the name of the git repo as the subdomain.

    This workflow is best described by a couple of examples:
    -- I push the master branch of my Soapbox repo to my seam server living at distracteddev.com, Soapbox now is now living at soapbox.distracteddev.com
    -- I push the staging branch of my Soapbox repo... This version of Soapbox is now living at soapbox-staging.distracteddev.com
    -- I push the development branch of my Soapbox repo... This version of Soapbox is now living at soapbox-dev.distracteddev.com

    -- I push the master branch of my Soapbox repo which has the following lines in it's package.json.

    ```JSON
    domains: [
    'zeus.ly'
    ]
    ```

    master will accept requests from zeus.ly
    staging will accept requests from staging.zeus.ly
    dev will accept requests from dev.zeus.ly

    Note: If these conventions are not to your liking, you can define a domainMap:

    ```JSON
    // branch->domain pairs
    domainMap: {
    master: 'zeus.ly',
    staging: 'hopefully-this-works.zeus.ly'
    dev: 'shit-is-broken-here.zeus.ly'

    }
    ```