Giter Site home page Giter Site logo

iaincollins / docker-deploy-webhook Goto Github PK

View Code? Open in Web Editor NEW
93.0 5.0 35.0 13 KB

A Docker Service for Continuous Deployment (Git Hub -> Docker Hub -> Docker Swarm)

Home Page: https://medium.com/@iaincollins/docker-swarm-automated-deployment-cb477767dfcf

License: ISC License

JavaScript 90.13% Dockerfile 9.87%
docker-swarm webhook docker-hub github-webhooks

docker-deploy-webhook's Introduction

๐Ÿง” About me

I'm an engineering lead with ~30 years experience developing cross platform software for the web, desktop, server, mobile and devices with open source contributions going back over two decades.

I've worked in startups, large enterprises, on non-profit/civic-tech, started two companies and more side projects that I can remember.

I live in Edinburgh (Scotland) and I work at Unity on game backends for Unity Gaming Services.

You can find me on mastodon.social as @iaincollins, sometimes I post on Medium

โœ Side Projects

Most of my public work on GitHub is on personal side projects and spans different types of software. These are some of the smaller things I've worked on more recently. Most of the open source projects I've worked on over the last 20-30 years are lost to the wind (or maybe sitting around in an SVN or CVS repository, on sitting on a disk on a shelf somewhere).

A collection of scenes that can be explored in a first person view. The terrain and objects in the scenes are created and placed at runtime using procedural generation.

It's built with Next.js and with custom components created for React Three Fibre, a wrapper for Three.js, which is in turn an abstraction for WebGL.

This an unconventional stack and it's a very simple demo, but it was a fun exercise in seeing what's possible using those components and has helped me better understand how RTF and Three.js work in practice.

๐Ÿ’ฝ Ardent Industry

A constantly live-updating database of over 100,000,000 locations, tracking millions of commodity prices across galactic trade markets in the year 3038, using data from players of the game Elite Dangerous, collected from game clients using an API provided by the games developer.

It's a performant, robust backend tht runs on low-end hardware. It is built entirely in JavaScript and SQLite and has a similarly low-fi asthetic for the UI.

๐Ÿ›ฐ ICARUS Terminal

ICARUS Terminal is a companion app / second screen for the game Elite: Dangerous, the latest follow up to the 1984 classic space game Elite. Designed for both desktop/laptop computers and for tablets/phones, the app hooks into the game to provide context-sensitive real time information (event driven and socket based) by combining the game API with third party APIs. Built with Next.js, React, Node.js, Go and C++.

๐Ÿ”‘ NextAuth.js

I created NextAuth.js a few years ago because there wasn't anything like it already and was getting tired of needing to write the same logic over and over.

It now has millions of downloads a month and is apparently of the top 1000 open source projects on GitHub (according to GitHub). It's an open source, community supported project based around interoperability with open standards. NextAuth.js has grown to support dozens of auth providers and a wide range of SQL and no-SQL databases. Originally developed for React - and specifically Next.js, hence the name - it has been ported to other popular frameworks, including Vue.js and Svelte and can be used with non-JavaScript frameworks, such as Drupal.

I've since moved on to other projects and am no longer actively involved, other than to look in and see how things are going now and then. To ensure it remains open source, collaborative and independent it has been spun off into a dedicated organization, with it's own core team.

๐ŸŽฌ Mercury

I developed Mercury with funding from Google DNI. Mercury is a web based video and transcript editor and translation workflow tool that lets you drop-and-drag a video in one language in and then watch it back in other languages, with an editable, timestamped transcript in each language, that can also be exported as subtitles or text.

Designed for news and media organisations, Mercury allows teams to upload, edit, transcode, transcribe and translate audio and video files (in a wide range of formats, including large, unprocessed files) from anywhere in the world on any web enabled device (including a smartphone) and share them in a secure and searchable way.

Designed to fill a gap in tooling in Google Lighthouse and Google's own Structured Data Testing Tool, by providing an extendible command line tool and API that includes out of the box support for checking both Schema.org entities and social media markup.

While useful for any website but especially useful for news and media organizations as ensuring markup quality can have a significant impact on traffic coming from Google News and Google Discover, as well as organic traffic from search engines.

๐Ÿ›  Table to JSON

A library useful for data scraping, originally created to support work on civic tech and data journalism. Table to JSON is used by dozens of other packages, in other higher level scraper libraries and in projects to track a wide range of things from COVID-19 data to TV shows, news and weather to class times for students. Table to JSON is now maintained by @maugenst.

docker-deploy-webhook's People

Contributors

bopoha avatar iaincollins avatar levino avatar raaymax 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  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

docker-deploy-webhook's Issues

How to call docker-deploy-webhook service

Can you give details on the below points on how to call docker-deploy-webhook to execute the docker commands when the whitelisted images in config.json are refreshed.

  • Configure Docker Hub to call this service via webhook when a new image is available.
  • Configure and deploy this service to your Docker Swarm cluster.

I have created webhook for whitelisted images but couldn't link to call docker-deploy-webhook service.

Suggest creating DockerHub accounts with read-only access

As far as I can tell I have to give the service the login for docker hub. Is there no way to have a less permissive authentication method? If this service gets hacked, you have a real problem. Especially if third parties use your images.

webhook and gitlab

Hello,

i'm a absolute begginner in docker.
My simple question is:
Can i use gitlab for the docker-deploy-webhook ?

Your sincerly

Stephan

Optional credentials

As far as I can see, the only reason for having to provide credentials for this software is to be able to pull images from private repos on docker hub.

Would it be possible to make the software not crash, but skip docker login, if the credentials are omitted? This way, one wouldn't have expose credentials and having to keep them updated, if passwords change, etc.

No license

Can you consider adding a OSS license to this project. I would like to make an adjustment to it for my own needs, but without license, I won't do it.

Thanks in advance
~InDieTasten

Do we want a simple web based management UI?

I could do a very simple web based management UI to view the status of deployments.

It could provide status info, with a list of last deploys for each service and a button to trigger a deployment and restart a service. It could tell you if a service or image could not be found.

It could also provide buttons for other actions like 'downloading an image of a host for backup' (useful for instances that are databases and don't use shared storage; an actual use case I have).

It could easily store the data in simple SQL lite / neDB database as the amount of data would be small.

As it's just for debugging / administration the data store could be transient (and just store the data in it's local DB) or you could give it a shared volume if you wanted that info to persist.

We could also make this how the app is configured - and have it write/ it's configuration info to a JSON file that lives on the host it's running on (with an option to view / download it for backup).

This would mean you would not have to fork the repo just to deploy an instance as the config would be outside the app.

( Interested in your thoughts on this @imjosh !)

I don't want to replicate the functionality of something like Portainer so would have authentication maybe use basic auth and environment variable or a simple .htaccess file for users.

Would love feedback on if this is - or isn't - a thing people care about, and if they do, where we should draw the line.

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.