Coder Social home page Coder Social logo

ss-o / i Goto Github PK

View Code? Open in Web Editor NEW
9.0 2.0 0.0 13.34 MB

Server to install/update pre-compiled binaries from GitHub releases.

Home Page: https://i-get.fly.dev

License: GNU General Public License v3.0

Go 62.32% Shell 30.29% Makefile 3.36% Dockerfile 2.22% Ruby 1.81%
binary github-releases download-file assets update install bash go github-api self-hosted

i's Introduction

i-get

Fly CI Docker CI Release CI

✨ A very lightweight `HTTP` server based on `GO` ✨

✨ It will try to detect your OS and architecture and return as `SHELL` script. ✨

📶 Try it

🕸️ See examples in browser

✍ Path API

  • user GitHub user, uses Google to pick most relevant user when repo not found.
  • repo GitHub repository belonging to user (required).
  • release GitHub release name, defaults to the latest release.
  • ! downloads binary directly into /usr/local/bin/, otherwise to current directory.

Note: Based on the shell configuration it may require to escape character !\! or quote 'https://example.com/request!' the URL string.

bash <(curl -sL 'i-get.fly.dev/<user>/<repo>@<release>!')
curl i-get.fly.dev/<user>/<repo>@<release>! | bash
wget -qO- i-get.fly.dev/<user>/<repo>@<release>! | bash

💡 Query Parameters

  • ?type= force the return type: script or text
    • type is normally detected via User-Agent header
  • ?insecure=1 force curl/wget to skip certificate checks
    • client will be prevented to authenticate using the GITHUB_TOKEN for security reasons.
  • ?as= rename binary with appended value.
bash <(curl -sL 'i-get.fly.dev/coredns?type=script')
bash <(curl -sL 'i-get.fly.dev/coredns/coredns?as=dns')
curl i-get.fly.dev/coredns?insecure=1 | bash

Private repositories

Requires GITHUB_TOKEN set as environment variable before starting server and running requests on a client.

Lock user/repository

In some cases, people want an installer server for a single tool

export FORCE_USER=cloudflare
export FORCE_REPO=cloudflared
./i

Then calls to curl 'localhost:3000 will return the install script for cloudflare/cloudflared

  • Will try to find, if found will download it after 6s
bash <(curl -sS https://example.com/<user>)
  • Download the latest release
bash <(curl -sS https://example.com/<user>/<repo>)
  • Download the required version and move to '/usr/local/bin'
bash <(curl -sS https://example.com/<user>/<repo>@<release>\!)
  • Download the required version and move to '/usr/local/bin' using 'sudo'
bash <(curl -sS https://example.com/<user>/<repo>@<release>\!\!)
Usage: i [options]

Options:
  --host, -h        host (env HTTP_HOST)
  --port, -p        port (default 3000, env PORT)
  --user, -u        default user for URL requests (default ss-o, env USER)
  --token, -t       token for GitHub API (env GITHUB_TOKEN)
  --force-user, -f  forcefully use single owner (env FORCE_USER)
  --force-repo      forcefully use a single repository (env FORCE_REPO)
  --version, -v     display version
  --help            display help

authenticating-with-the-api


Self-Host

📥 Go

  • Go install
go install github.com/ss-o/i@latest
  • 💬 Run to see options
i --help

🐳 Docker

docker run -it --rm -p 3000:3000 ghcr.io/ss-o/i:latest \
--token yourgithubtoken --user yourusername
# Run detached
docker run -d -p 3000:3000 --restart always --name i-get ghcr.io/ss-o/i:latest \
--token yourgithubtoken --user yourusername

ℹ️ Check docker-compose.yml

  • 👯 Try
bash <(curl -Ss http://localhost:3000/<user>/<repo>@<release>)

🐧 Installer

bash <(curl -Ss https://i-get.fly.dev/ss-o/i\!\!)
  • 💬 Run to see options
i --help

i's People

Contributors

deepsource-autofix[bot] avatar deepsourcebot avatar dependabot[bot] avatar renovate-bot avatar renovate[bot] avatar ss-o avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

i's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Pending Approval

These branches will be created by Renovate only once you click their checkbox below.

  • chore(deps): update docker/login-action digest to 65b78e6

Detected dependencies

docker-compose
docker-compose.yml
dockerfile
Dockerfile
  • golang 1.20.2-alpine
github-actions
.github/workflows/codeql-analysis.yml
  • actions/checkout v3
  • github/codeql-action v2
  • github/codeql-action v2
  • github/codeql-action v2
.github/workflows/docker-publish.yml
  • actions/checkout v3
  • docker/setup-buildx-action v2
  • actions/cache v3
  • docker/login-action 219c305e1ce92a755f3aa4ba17387c95df31e987
  • docker/metadata-action 9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
  • docker/build-push-action f2a1d5e99d037542a71f64918e516c093c6f3fc4
.github/workflows/fly-action.yml
  • actions/checkout v3
.github/workflows/go-release.yml
  • actions/checkout v3
gomod
go.mod
  • go 1.19
  • github.com/jpillora/opts v1.2.3
  • github.com/rakyll/statik v0.1.7

  • Check this box to trigger a request for Renovate to run again on this repository

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Error type: Preset is invalid JSON (github>ss-o/renovate-config)

📊 Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Pending Approval

These branches will be created by Renovate only once you click their checkbox below.

  • chore(deps): pin dependencies (actions/cache, actions/checkout, actions/setup-go, docker/setup-buildx-action, github/codeql-action, golang, goreleaser/goreleaser-action)
  • chore(deps): update docker/build-push-action digest to 5cd11c3
  • chore(deps): update docker/login-action digest to 9780b0c
  • chore(deps): update docker/metadata-action digest to 60a0d34
  • chore(deps): update superfly/flyctl-actions digest to 63da3ec
  • chore(deps): update golang docker tag to v1.21.13
  • chore(deps): update golang docker tag to v1.23.0
  • chore(deps): update actions/cache action to v4
  • chore(deps): update actions/setup-go action to v5
  • chore(deps): update github/codeql-action action to v3
  • chore(deps): update goreleaser/goreleaser-action action to v6
  • fix(deps): update module github.com/jpillora/requestlog to v2
  • 🔐 Create all pending approval PRs at once 🔐

Detected dependencies

docker-compose
docker-compose.yml
dockerfile
Dockerfile
  • golang 1.21.2-alpine
github-actions
.github/workflows/codeql-analysis.yml
  • actions/checkout v4
  • github/codeql-action v2
  • github/codeql-action v2
  • github/codeql-action v2
.github/workflows/docker-publish.yml
  • actions/checkout v4
  • docker/setup-buildx-action v3
  • actions/cache v3
  • docker/login-action b4bedf8053341df3b5a9f9e0f2cf4e79e27360c6
  • docker/metadata-action 879dcbb708d40f8b8679d4f7941b938a086e23a7
  • docker/build-push-action 0f847266c302569530c95bfa228489494c43b002
.github/workflows/fly-action.yml
  • actions/checkout v4
  • superfly/flyctl-actions ddcac349402ef55840d9870785f4df1890768078
.github/workflows/go-release.yml
  • actions/checkout v4
  • actions/setup-go v4
  • goreleaser/goreleaser-action v5
gomod
go.mod
  • go 1.20
  • github.com/jpillora/opts v1.2.3
  • github.com/jpillora/requestlog v1.0.0

  • Check this box to trigger a request for Renovate to run again on this repository

(DOK-DL3018) Pin versions in `apk add`

Description

Version pinning forces the build to retrieve a limited range of versions, or an exact particular version, regardless of what’s in the cache. This technique can also reduce failures due to unanticipated changes in required packages. > https://docs.docker.com/engine/articles/dockerfile_best-practices/

Occurrences

There is 1 occurrence of this issue in the repository.

See all occurrences on DeepSource → deepsource.io/gh/ss-o/i/issue/DOK-DL3018/occurrences/

(DOK-DL3019) Use the `--no-cache` switch

Description

As of Alpine Linux 3.3 there exists a new --no-cache option for apk. It allows users to install packages with an index that is updated and used on-the-fly and not cached locally: This avoids the need to use --update and remove /var/cache/apk/* when done installing packages.

Occurrences

There is 1 occurrence of this issue in the repository.

See all occurrences on DeepSource → deepsource.io/gh/ss-o/i/issue/DOK-DL3019/occurrences/

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.