Git Product home page Git Product logo

silver's Introduction

SILVER

A cross-platform service/daemon wrapper with in-build auto-update, crash resilience and more.

Current in development. Documentation pending.

Features:

  • Cross platform - Windows (Service), Mac (Launchd), Linux (systemd)
  • Simple way to host a service (just write a command-line program)
  • Automatic service install
  • Automatic resilience and service crash recovery
  • Application status monitoring with auto restart. Monitor via:
    • HTTP status ping
    • TCP socket echo ping
    • TCP open connection ping
    • File change ping
  • Automatic update support with a framework supporting:
    • validation,
    • signing,
    • atomic commits
    • pre and post install actions (copy, move, rename, exec)
  • Run startup tasks (again just command-line programs)
  • Run tasks on a cron schedule
  • Advanced task/service control:
    • Graceful shutdown
    • Start delay
    • Option to randomize task time(s) (e.g. ensure update checks don't all arrive at the same time of day)
  • Lots of other stuff:
    • Logging and log rotation
    • Pid file
    • Simple text based configuration in JSON format

silver's People

Contributors

amir-khassaia avatar aselalee avatar aselaleelaratne avatar behzad-mozaffari avatar codedance avatar dan-dongcheol-lee avatar hiroxy avatar imgarlic avatar joachants avatar larsol avatar nimeshnsat 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

Watchers

 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

silver's Issues

Vulnerability

It has come to my understanding that PaperCut plans to use Silver in an upcoming release (~1 year). I was told that the idea behind Silver and the product it will be included in is to "host an agent service installed at customer sites that needs to operate reliably with zero on-site maintenance and configuration." Unfortunately, this is not easily done. Here is my take on the security of Silver. This basic, common mistake that most software makes is that it updates over HTTP (or binaries are distributed over HTTP). However, Silver takes that a step further by allowing arbitrary command injection. Read more here.

silver make.go failed

I met a problem about silver and had been trying two day without progress.

I got the source of silver, alse setup go lang in my pc.

Then I executed "go run make.go setup" without any error, when I executed "go run make.go",

The error msg was "Godeps_workspace\src\code.google.com\p\winsvc\mgr\service.go:8:2: C source files not allowed when not using cgo: sys.c."

I set CGO_ENABLED=1 ,but it didn't work.

Using cgo seems necessary during "go run make.go", but I could not how to use cgo, are there any clue for solving it?

Windows edition : Windows 7 ultimate 32 bit

This is my environment varibles in pc.
-----------------env begin-------------------
set GOARCH=386
set GOBIN=
set GOCHAR=8
set GOEXE=.exe
set GOHOSTARCH=386
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\go_path;D:\mygo;
set GORACE=
set GOROOT=C:\Go
set GOTOOLDIR=C:\Go\pkg\tool\windows_386
set CC=gcc
set GOGCCFLAGS=-m32 -mthreads -fmessage-length=0
set CXX=g++
set CGO_ENABLED=1
-----------------env end-------------------

Config "include" option

Add support to "include" config from other locations or versioned subdirectories. This will allow application configuration to evolve over time with updates.

Ideas

  • Review of config labels:
    • *Timeout has no time units
    • Is seconds the right resolution?
  • Need to document update JSON format used for update.exe - top of file?
  • Upgrade checksums - remove MD5? Secure?
  • Certificate enforcement in update check - lock to a domain
  • .reload vs .restart ?
  • Review check check "operations". The name "actions" and "args" seem inconsistent.

GracefulShutdownTimeout config option ignored

In startServices : main.go. Runconfig.GracefulShutdownTimeoutSecs is not set.

Meaning the default is always used, not the GracefulShutdownTimeoutSec from the config.

sc.RunConfig.GracefulShutdownTimeoutSecs = service.GracefulShutdownTimeout

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.