GithubHelp home page GithubHelp logo

cavillo / dployer Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 0.0 3.52 MB

Tool for managing and deploying dockerized applications

License: Apache License 2.0

Dockerfile 0.58% TypeScript 97.14% HTML 2.03% CSS 0.13% Shell 0.12%
dployer docker deployment-automation containers ci-cd typescript node

dployer's Introduction

Dployer

Build Status

Dployer is a tool for easily automating the deployment of dockerized applications to your own server.

  • Server & API
  • Web client (dashboard)

Dployer makes simple the deployment cycle (deploy-monitor-redeploy) of an application or project. What it provides is an abstraction to the docker api and a re-organization of grouped containers that makes sense to your business demands. Dployer structure the deployed containers into applications, namespaces and deployments. Applications have namespaces, namespaces have deployments.

Installation

Note: Dployer assumes your server is already running docker with the needed credentials for registries.

Via docker-compose

The easiest and fastest way is by using docker-compose. In your server create a docker-compose.yml file and copy the following:

Set DPLOYER_API_URL as the external DNS or ip address (including port) for your server.

version: '2'
services:
  mongo:
    image: 'bitnami/mongodb:latest'
    restart: always
    environment:
      - MONGODB_USERNAME=usr_mongo_db
      - MONGODB_PASSWORD=pwd_mongo_db
      - MONGODB_DATABASE=dployer
  api:
    depends_on:
      - mongo
    image: 'cavillo/dployer-api:latest'
    environment:
      - MONGO_AUTH_USER=usr_mongo_db
      - MONGO_AUTH_PASSWORD=pwd_mongo_db
      - MONGO_URL='mongodb://mongo'
    ports:
      - '8002:8002'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
  client:
    image: 'cavillo/dployer-client:latest'
    environment:
      - DPLOYER_API_URL=http://localhost:8002/api
    ports:
      - '3000:3000'

Finally start your Dployer

$ docker-compose up --build --detach

WebClient (Dashboard)

To access the Dashboard open your browser and go to http://YOUR_SERVER_URL:3000 You will be ask for a access token that you will find in the logs of the api service.

[May 12th 2019, 14:18:02.251] [dployer-api]: ==============
[May 12th 2019, 14:18:02.252] [dployer-api]: Authentication token
[May 12th 2019, 14:18:02.252] [dployer-api]: For api calls, set header Authorization: Bearer #AUTH_TOKEN#

*****************************************

If you installed with docker compose, use docker-compose logs api to get the logs of the service.

CI Integrations

The idea of Dployer is to automate the process of Continuous Integration and Continuous Deployment. For integrating Dployer to your CI platform, you can use one of the following.

Drone CI

If you are using Drone.io as your CI Platform, you can integrate Dployer by adding the following step to your pipeline.

  - name: plugin-test
    image: cavillo/dployer-drone-plugin:latest
    settings:
      api_host: YOUR_SERVER_URL
      api_port: 8002
      api_token:
        from_secret: dployer_token
      application: your-app-name
      namespace: prod
      deployment: hello-world
      image: hello-world
    when:
      event: push
      branch: master

dployer's People

Contributors

cavillo avatar victorgmp avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

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.