{"id":37088753,"url":"https://github.com/skycoin/skywire-updater","last_synced_at":"2026-01-14T10:53:55.468Z","repository":{"id":64303624,"uuid":"157163122","full_name":"skycoin/skywire-updater","owner":"skycoin","description":null,"archived":false,"fork":false,"pushed_at":"2019-04-19T08:34:50.000Z","size":4543,"stargazers_count":10,"open_issues_count":3,"forks_count":4,"subscribers_count":7,"default_branch":"develop","last_synced_at":"2024-06-20T00:40:13.735Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/skycoin.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-11-12T05:53:12.000Z","updated_at":"2020-11-24T16:59:31.000Z","dependencies_parsed_at":"2023-01-15T10:00:34.097Z","dependency_job_id":null,"html_url":"https://github.com/skycoin/skywire-updater","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/skycoin/skywire-updater","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skycoin%2Fskywire-updater","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skycoin%2Fskywire-updater/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skycoin%2Fskywire-updater/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skycoin%2Fskywire-updater/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skycoin","download_url":"https://codeload.github.com/skycoin/skywire-updater/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skycoin%2Fskywire-updater/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28417723,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T10:47:48.104Z","status":"ssl_error","status_checked_at":"2026-01-14T10:46:19.031Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-14T10:53:53.912Z","updated_at":"2026-01-14T10:53:55.450Z","avatar_url":"https://github.com/skycoin.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.com/skycoin/skywire-updater.svg?branch=mainnet)](https://travis-ci.com/skycoin/skywire-updater)\n\n# Skywire Updater\n\n`skywire-updater` is responsible for updating services associated with Skywire. Actions include checking for updates, and actually updating the service.\n\n```\n$ skywire-updater -h\n\nskywire-updater is responsible for checking for updates, and updating services\nassociated with skywire. \n\nIt takes one optional argument [config-path] which specifies the path to the\nconfiguration file to use. If no [config-path] is specified, the following \ndirectories are searched in order:\n\n  1. /your_working_directory/config.yml\n  2. /home/anonymous/.skycoin/skywire-updater/config.yml\n  3. /usr/local/skycoin/skywire-updater/config.yml\n\nUsage:\n  skywire-updater [config-path] [flags]\n  skywire-updater [command]\n\nAvailable Commands:\n  help        Help about any command\n  init-config generates a configuration file\n\nFlags:\n  -h, --help   help for skywire-updater\n\nUse \"skywire-updater [command] --help\" for more information about a command.\n\n```\n\n## Installation\n\nThese instructions details the installation and configuration of `skywire-updater` in a user's home directory.\n\nPrerequisites:\n- Have [golang](https://golang.org/dl/) installed. We need a version that supports [go modules](https://github.com/golang/go/wiki/Modules).\n\n```bash\n# Clone.\n$ git clone https://github.com/watercompany/skywire-updater\n$ cd ./skywire-updater\n\n# Build.\n$ GO111MODULE=on go build -o ~/.skycoin/bin/skywire-updater ./cmd/skywire-updater\n\n# Export path (would be a good idea to add this line to ~/.profile).\n$ export PATH=$PATH:$HOME/.skycoin/bin\n\n# Generate default config to ~/.skycoin/skywire-updater/config.yml\n$ skywire-updater init-config\n\n# Copy scripts.\n$ cp -R ./scripts ~/.skycoin/skywire-updater/scripts\n\n# Run.\n$ skywire-updater\n\n```\n\n## Configuration\n\nA configuration file contains the following sections:\n- `paths:` - Specifies paths for the `skywire-updater`.\n- `interfaces:` - Specifies network interface settings.\n- `services.defaults:` - Specifies default values for `services`.\n- `services.services:` - Specifies services that the `skywire-updater` is responsible for.\n\nHere is an example configuration with comments:\n\n```yaml\npaths: # Configures paths.\n  db-file: \"/usr/local/skywire-updater/db.json\"      # Database file location (\"/usr/local/skywire-updater/db.json\" if unspecified).\n  scripts-path: \"/usr/local/skywire-updater/scripts\" # Scripts folder location (\"/usr/local/skywire-updater/scripts\" if unspecified).\n\ninterfaces: # Configures network interfaces.\n  addr: \":8080\"     # Address to bind and listen from (\":7280\" if unspecified).\n  enable-rest: true # Whether to enable RESTful interface served from {addr}/api/ (true if unspecified).\n  enable-rpc: true  # Whether to enable RPC interface served from {addr}/rpc/ (true if unspecified).\n\n\nservices: # Configures services.\n  defaults: # Configures default field values.\n    main-branch: \"master\"     # Default 'main-branch' field value.\n    bin-dir: \"/usr/local/bin\" # Default bin directory filed value.\n    interpreter: \"/bin/sh\"    # Default 'interpreter' field value.\n    envs:                     # Default 'envs' field values.\n      - \"APP_DIR=/usr/local/skywire/apps/bin\"\n  services:\n    skywire: # Service name/ID. This service is named \"skywire\".\n      repo:         \"github.com/skycoin/skywire\" # Repository URL. Should be of format: \u003cdomain\u003e/\u003cowner\u003e/\u003cname\u003e . Will be saved in SWU_REPO env for scripts.\n      main-branch:  \"stable\"                     # Main branch's name. Default will be used if not set. Will be saved in SWU_MAIN_BRANCH env for scripts.\n      bin-dir:      \"/usr/local/skycoin/bin\"     # Bin Directory to build into. Will be saved in SWU_BIN_DIR for scripts.\n      main-process: \"skywire-node\"               # Main executable's name. Will be saved in SWU_MAIN_PROCESS env for scripts.\n      checker:                                            # Defines the service's checker (used to check for available updates).\n        type: \"script\"                                    # Type of checker. Valid: \"script\"(default), \"github_release\".\n        script: \"check/bin-diff\"                          # Required if checker type is \"script\": Specifies script to run (within '--scripts-dir' arg).\n        interpreter: \"/bin/bash\"                          # Required if checker type is \"script\": Specifies script interpreter. Default will be used if not set.\n        args: - \"-v\"                                      # Optional: Additional arguments for checker scripts.\n        envs:                                             # Optional: Set environment variables that can be used by checker.\n          - \"APP_DIR=/usr/local/skywire/default-apps/bin\" # This overrides default's APP_DIR definition.\n      updater:                                            # Defines the service's updater (actually updates the service's binaries and relevant files).\n        type: \"script\"                                    # Type of updater. Only \"script\"(default) is supported.\n        script: \"update/skywire\"                          # Required if updater type is \"script\": Specifies script to run (within '--scripts-dir' arg).\n        interpreter: \"/bin/bash\"                          # Required if updater type is \"script\": Specifies script interpreter. Default will be used if not set.\n        args: - \"-v\"                                      # Optional: Additional arguments for updater scripts.\n        envs:                                             # Optional: Set environment variables that can be used by updater.\n          - \"APP_DIR=/usr/local/skywire/default-apps/bin\" # This overrides default's APP_DIR definition.\n\n    another-service: # Another service. This service is named \"another-service\".\n      # The config for 'another-service' goes here ...\n```\n\n## RESTful Endpoints\n\n- **List services**\n    ```\n    GET /api/services\n    ```\n\n- **Check for updates for given service**\n    ```\n    GET /api/services/:service_name/check\n    ```\n\n- **Update given service**\n    ```\n    POST /api/services/:service_name/update/:version\n    ```\n\n## RPC Endpoints\n\nAn RPC Client is provided in [/pkg/api/rpc.go](/pkg/api/rpc.go).\n\n```go\npackage main\n\nimport \"github.com/skycoin/skywire-updater/pkg/api\"\n\nfunc main() {\n\tclient, err := api.DialRPC(\":7280\")\n\t// interact with client ...\n}\n```\n\nNote that the RPC and REST interfaces of the `skywire-updater` are served on the same port (but on different paths).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskycoin%2Fskywire-updater","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskycoin%2Fskywire-updater","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskycoin%2Fskywire-updater/lists"}