Giter VIP home page Giter VIP logo

lorry-ui's Introduction

Lorry

Lorry is a project from the team at CenturyLink Labs. This utility provides a browser-based validator and builder for Docker Compose YAML files. A docker-compose.yml can be imported or built from scratch. You can even import Panamax templates and convert them to docker-compose.yml files.

The initial import and subsequent modifications of a document triggers validation against a YAML schema derived from the latest Compose documentation. The utility differentiates between errors which prevent the application defined in the docker-compose.yml from being stood up with Compose and warnings which simply point out things in the document that might not be what you want.

The Lorry project will make creating docker-compose.yml files easier with its user-friendly interface that provides documentation for Compose options and limits choices of keys to those specified in the docker-compose.yml reference.

Once you're done crafting the docker-compose.yml, Lorry makes it simple to save your document as a file, copy it to the clipboard, and even share it with others as a Gist or with a Lorry URL for collaborative editing.

NOTE

This repo is no longer being maintained. Users are welcome to fork it, but we make no warranty of its functionality.

Usage

You can access the hosted version of Lorry at lorry.io. For local development, the lorry-ui project requires services provided by the Lorry API. The Lorry API must be available in order for the Lorry UI to function.

Building & development

This project was generated with yo angular generator version 0.11.0.

Setup

  • install node

  • install Yeoman with npm install -g yo

  • install the Grunt cli with npm install -g grunt-cli

  • install Bower with npm install -g bower

  • install the Yeoman AngularJS generator with npm install -g generator-angular

  • git clone this repo

  • install Ruby if you don't already have it

  • install compass with gem install compass

  • install local node modules with npm install

  • install local JS modules with bower install

Execution

Run grunt for building and grunt serve for preview.

Testing

Running grunt test will run the unit tests with karma.

Environment configuration

By default, the application will assume you are running, testing, or building in development mode. If you want to change that for some reason, you can set a 'LORRY_ENV' environment variable to 'develop', 'qa', or 'production'.
It is this environment variable that will determine which of the config files in the '/config' directory are used when the grunt task generates the app.js file.

lorry-ui's People

Contributors

alexwelch avatar bdehamer avatar dharmamike avatar parkerfleming avatar patocox avatar rheinwein avatar rupakg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lorry-ui's Issues

Integrate with kitematic

I know this is not directly related with lorry, but let's just say there's huge demand to have docker-compose editor in kitematic, and you have nice editor already :) It would be really awesome if you could integrate lorry into kitematic docker/kitematic#137

TLS Error because Certificate is Expired

The TLS certificate for https://lorry.io expired on May 18, 2016.

$ openssl s_client  -connect lorry.io:443 < /dev/null | awk '/-----BEGIN CERTIFICATE-----/ {p=1}; p; /-----END CERTIFICATE-----/ {p=0}' | openssl x509 -noout -text
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            83:e5:a3:21:49:e1:fb:4d:24:32:7f:dd:fb:5d:ca:54
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=FR, ST=Paris, L=Paris, O=Gandi, CN=Gandi Standard SSL CA 2
        Validity
            Not Before: May 18 00:00:00 2015 GMT
            Not After : May 18 23:59:59 2016 GMT
        Subject: OU=Domain Control Validated, OU=Gandi Standard SSL, CN=lorry.io
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (2048 bit)
                Modulus (2048 bit):
                    00:ef:fd:f3:f8:7a:b9:31:8b:99:3d:89:b8:0b:26:
                    68:a2:2d:7e:4c:63:56:e9:a7:a8:ee:8b:c9:85:b4:
                    73:9a:8b:57:c0:4b:5d:bf:8f:b4:fc:87:e7:3c:1d:
                    ef:fd:56:cf:8b:37:cc:20:29:0d:3f:62:fd:96:52:
                    ed:9f:a2:fd:fd:d3:67:2c:c4:5f:25:1c:12:26:82:
                    ef:e9:25:38:94:9c:07:5f:68:bd:44:7e:8a:ea:e9:
                    77:aa:5c:2a:c4:52:24:68:00:6f:2c:72:57:e8:82:
                    8d:fe:89:5b:2a:6a:e9:e5:fe:92:41:72:a1:99:a8:
                    59:e4:7f:53:de:b7:21:88:cc:e1:30:e3:bd:c8:2a:
                    65:66:8d:b5:1d:a4:f9:13:f5:5b:60:09:75:d2:9f:
                    9f:82:11:52:81:88:6b:3a:e3:16:35:55:0e:9c:61:
                    25:8e:8d:df:a7:88:6a:dd:b1:05:de:87:b4:92:e4:
                    05:df:08:57:a5:9b:ec:8c:53:47:67:00:ea:2d:86:
                    76:50:f8:b0:49:ed:4a:64:42:fd:71:f7:82:7e:fb:
                    70:2e:cb:3b:c1:f1:20:ed:18:be:80:5e:1a:d9:58:
                    4a:ac:25:f3:20:81:bc:be:d6:99:0f:91:99:c9:67:
                    29:c3:a6:56:4a:2e:5d:06:8f:77:7e:d7:72:bb:a8:
                    9b:07
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Authority Key Identifier: 
                keyid:B3:90:A7:D8:C9:AF:4E:CD:61:3C:9F:7C:AD:5D:7F:41:FD:69:30:EA

            X509v3 Subject Key Identifier: 
                91:3F:F6:D8:DD:89:15:53:5F:D9:79:C2:69:A2:71:15:D3:F4:A4:F1
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Extended Key Usage: 
                TLS Web Server Authentication, TLS Web Client Authentication
            X509v3 Certificate Policies: 
                Policy: 1.3.6.1.4.1.6449.1.2.2.26
                  CPS: https://cps.usertrust.com
                Policy: 2.23.140.1.2.1

            X509v3 CRL Distribution Points: 
                URI:http://crl.usertrust.com/GandiStandardSSLCA2.crl

            Authority Information Access: 
                CA Issuers - URI:http://crt.usertrust.com/GandiStandardSSLCA2.crt
                OCSP - URI:http://ocsp.usertrust.com

            X509v3 Subject Alternative Name: 
                DNS:lorry.io, DNS:www.lorry.io
    Signature Algorithm: sha256WithRSAEncryption
        77:59:55:73:38:a3:05:d4:58:c9:4d:0b:ec:53:d8:25:d0:4c:
        ad:b2:ce:c7:06:1a:cf:26:32:be:88:91:6a:5a:2e:ec:48:66:
        ab:c9:ad:0f:9e:36:da:1a:27:0a:d4:10:c6:68:a1:33:fd:9d:
        de:3c:4f:8b:a1:fc:1f:53:ae:c2:60:04:82:90:72:de:7c:f1:
        d9:47:ae:60:aa:a3:97:87:ed:06:56:fb:e2:b8:18:61:52:ee:
        04:f9:fc:fd:e2:33:32:ad:d8:b2:35:f8:d8:7c:27:ef:f4:67:
        1a:d4:63:e7:97:64:2a:21:9d:3f:75:cf:93:9a:78:5b:93:9f:
        03:74:f1:86:e6:a3:83:9d:27:82:32:d2:00:df:72:8c:42:46:
        5f:f4:c6:99:1e:bf:65:9d:98:1b:66:5b:01:ae:b8:56:59:f8:
        cc:d5:c0:11:07:a3:d2:aa:64:e1:62:99:4e:a2:77:4a:9c:26:
        83:e3:4d:f2:2d:1f:55:9f:03:89:cf:f4:d9:f1:b6:b0:db:dd:
        b6:28:6b:c4:47:c5:38:3d:e4:07:82:d2:fa:39:38:c9:63:3e:
        f8:94:1e:34:2b:f8:1a:bb:c7:08:52:58:35:92:f5:40:59:1a:
        e6:2d:63:00:db:b9:db:89:01:b9:a3:92:66:d9:f2:aa:6b:ba:
        35:14:ea:b6

Command key should accept arrays

@hbokh discovered that the command key only supports strings. The key should also accept arrays as this is legit docker-compose.yml. Thanks for the heads-up!

Support behind-the firewall, Private Registry and GitHub Enterprise

Hi there,

Is this able to be deployed locally? I see the installation instructions requiring all the binaries of Node, Grunt, etc which differs from the current Dockerfile with only nginx... Would I be able to deploy this server locally pointing to our own Docker Registry and GitHub Enterprise? Would that also work to go to the public GitHub Enterprise?

thanks
Marcello

3 possible errors detected, but only 2 shown

Steps to reproduce:

  1. Go to lorry.io and validate your YAML file via direct input
  2. Paste the following:
db:
    image: postgres:9.3

frontend_watcher:
    extends:
        file: docker-compose-base.yml
        service: frontend-watcher

server:
    extends:
        file: docker-compose-base.yml
        service: server
    links:
        - db
        - frontend_watcher

Actual results:

3 possible errors were detected.

But only 2 errors are displayed. I'm assuming I have 2 errors on the same line (line 3).

Feature request: Make Copy Yaml text into Lorry feature more prominent

It would be great if the possibility to copy yaml text directly into an editor inside of Lorry. Many times I find a Yaml inside a blog post for example that I want to verify quickly. I then need to copy the yaml text into my text editor, save the file, then upload the Yaml to Lorry.

Being able to copy directly into Lorry would save a couple steps.

fonts on non-retina screens

The fonts can be a bit hard to read on non-retina displays. Add media queries to CSS (pixel-density, etc) to target non-retina displays and improve font readability.

Invalid service name. Valid characters are [a-zA-Z0-9]

Steps to reproduce:

Try and validate the following YAML business:

db:
    image: postgres:9.3

frontend_watcher:
    extends:
        file: docker-compose-base.yml
        service: frontend-watcher

server:
    extends:
        file: docker-compose-base.yml
        service: server
    links:
        - db
        - frontend_watcher

Actual results:

"Invalid service name. Valid characters are [a-zA-Z0-9]"

Expected results:

It should probably allow hyphens and underscores. I haven't been able to find an official spec on container naming yet, but this is the closest I've gotten:

docker/compose ./compose/config/validation.py:40:

VALID_NAME_CHARS = '[a-zA-Z0-9\._\-]'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.