All Projects → nanopack → Hoarder

nanopack / Hoarder

Licence: mit
A simple, api-driven storage system for storing code builds and cached libraries for cloud-based deployment services.

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Hoarder

Shaman
Small, lightweight, api-driven dns server.
Stars: ✭ 426 (+368.13%)
Mutual labels:  devops, developer-tools, devtools
Pulse
Dynamic, api-driven stats collector service for realtime stats publishing and historical aggregation with Influxdb.
Stars: ✭ 48 (-47.25%)
Mutual labels:  devops, developer-tools, devtools
Logvac
Simple, lightweight, api-driven log aggregation service with realtime push capabilities and historical persistence.
Stars: ✭ 61 (-32.97%)
Mutual labels:  devops, developer-tools, devtools
Shon
A simple tool to convert json or yaml into a shell-compliant data structure.
Stars: ✭ 47 (-48.35%)
Mutual labels:  devops, developer-tools, devtools
Grpcc
A gRPC cli interface for easy testing against gRPC servers
Stars: ✭ 1,078 (+1084.62%)
Mutual labels:  devops, developer-tools, devtools
Kubefwd
Bulk port forwarding Kubernetes services for local development.
Stars: ✭ 2,713 (+2881.32%)
Mutual labels:  devops, developer-tools, devtools
Copilot Cli
The AWS Copilot CLI is a tool for developers to build, release and operate production ready containerized applications on Amazon ECS and AWS Fargate.
Stars: ✭ 1,285 (+1312.09%)
Mutual labels:  devops, developer-tools
Terragrunt
Terragrunt is a thin wrapper for Terraform that provides extra tools for working with multiple Terraform modules.
Stars: ✭ 5,446 (+5884.62%)
Mutual labels:  devops, developer-tools
Openebs
Leading Open Source Container Attached Storage, built using Cloud Native Architecture, simplifies running Stateful Applications on Kubernetes.
Stars: ✭ 7,277 (+7896.7%)
Mutual labels:  storage, devops
Fiddler Plus
自定义的Fiddler规则,多环境切换、解决跨域开发、快速调试线上代码必备|高效调试分析利器
Stars: ✭ 325 (+257.14%)
Mutual labels:  developer-tools, devtools
Wappalyzer
Identify technology on websites.
Stars: ✭ 7,245 (+7861.54%)
Mutual labels:  developer-tools, devtools
Radosgw Admin4j
A Ceph Object Storage Admin SDK / Client Library for Java ✨🍰✨
Stars: ✭ 50 (-45.05%)
Mutual labels:  storage, devops
Re Frisk
Take full control of re-frame app
Stars: ✭ 396 (+335.16%)
Mutual labels:  developer-tools, devtools
Artemis Dev Tool
An Apollo GraphQL Query Schema Testing Tool
Stars: ✭ 66 (-27.47%)
Mutual labels:  developer-tools, devtools
Mist
A distributed, tag-based pub-sub service for modern web applications and container-driven cloud.
Stars: ✭ 634 (+596.7%)
Mutual labels:  developer-tools, devtools
Ply
CSS inspection aided by visual regression pruning
Stars: ✭ 370 (+306.59%)
Mutual labels:  developer-tools, devtools
Envkey App
Secure, human-friendly, cross-platform secrets and config.
Stars: ✭ 83 (-8.79%)
Mutual labels:  devops, developer-tools
Magento2 Developer Quickdevbar
Developer Toolbar for Magento2
Stars: ✭ 306 (+236.26%)
Mutual labels:  developer-tools, devtools
Hela
🍦 Powerful software development experience and management. Enhancing @tc39 JS, @denoland and @nodejs, because we need a bit of magic. ✨ You can think of it as Cargo for the JavaScript ecosystem.
Stars: ✭ 320 (+251.65%)
Mutual labels:  devops, developer-tools
Spm Agent Nodejs
NodeJS Monitoring Agent
Stars: ✭ 51 (-43.96%)
Mutual labels:  devops, developer-tools

Hoarder

Build Status GoDoc

Hoarder is a simple, api-driven, storage system for storing anything for cloud based deployment services.

Usage

As a server

To start hoarder as a server run:

hoarder --server

An optional config file can also be passed on startup:

hoarder --server --config /path/to/config

As a CLI

Simply run hoarder <COMMAND>

hoarder or hoarder -h will show usage and a list of commands:

Usage:
  hoarder [flags]
  hoarder [command]

Available Commands:
  add         Add file to hoarder storage
  list        List all files in hoarder storage
  remove      Remove a file from hoarder storage
  show        Display a file from the hoarder storage
  update      Update a file in hoarder

Flags:
  -b, --backend string       Hoarder backend (default "file:///var/db/hoarder")
  -g, --clean-after uint     Age, in seconds, after which data is deemed garbage (default 0)
  -c, --config string        Path to config file (with extension)
  -H, --listen-addr string   Hoarder listen uri (scheme defaults to https) (default "https://127.0.0.1:7410")
      --log-level string     Output level of logs (TRACE, DEBUG, INFO, WARN, ERROR, FATAL) (default "INFO")
  -s, --server               Run hoarder as a server
  -t, --token string         Auth token used when connecting to a secure Hoarder
  -v, --version              Display the current version of this CLI

Use "hoarder [command] --help" for more information about a command.

Configuration

To configure hoarder, a config.yml file can be passed with --config. Configuration read in through a file will overwrite the same configuration specified by a flag. If no config file is passed, and no flags are set, reasonable defaults will be used.

backend     : "file:///var/db/hoarder"    # the pluggable backend the api will use for storage
listen-addr : "https://127.0.0.1:7410"    # the connection host uri (scheme defaults to https)
log-level   : "INFO"                      # the output log level (trace, debug, info, warn, error, fatal)
server      : false                       # run as a server
token       : ""                          # the secure token used to connect with (no auth by default)

API:

| Method |     Route     | Functionality |
------------------------------------------
| GET    | /blobs/{:id} | Retrieve a blob
| HEAD   | /blobs/{:id} | Retrieve file information about a blob
| POST   | /blobs/{:id} | Publish a new blob
| PUT    | /blobs/{:id} | Update an existing blob
| DELETE | /blobs/{:id} | Remove an existing blob
| GET    | /blobs       | List all blobs
| HEAD   | /blobs       | Retrieve file information for all blobs

Examples

ping:
$ curl -k https://localhost:7410/ping
=> pong
create:
$ curl -k https://localhost:7410/blobs/test -d "data"
=> 'test' created!
get:
$ curl -k https://localhost:7410/blobs/test
=> data
get head:
$ curl -k https://localhost:7410/blobs/test -I
=> HTTP/1.1 200 OK
=> Content-Length: 4
=> Date: Tue, 01 Mar 2016 21:14:28 UTC
=> Last-Modified: Tue, 01 Mar 2016 21:13:57 UTC
=> Content-Type: text/plain; charset=utf-8
update:
$ curl -k https://localhost:7410/blobs/test -d "new data" -X PUT
=> 'test' created!
list:
$ curl -k https://localhost:7410/blobs
=> [{"Name":"test","Size":4,"ModTime":"2016-03-01T21:13:57.534706044Z"}]
delete:
$ curl -k https://localhost:7410/blobs/test -X DELETE
=> 'test' destroyed!

Note: all examples are run without auth. If auth was enabled when the server was started then an additional header needs to be present:

-H "X-AUTH-TOKEN: TOKEN"

Data

Hoarder simply stores whatever data you give it as a string. So you can literally store whatever you want as long is it can be "stringified".

Some examples of what data could look like when creating a new blob:

string
$ curl -k https://localhost:7410/blobs/test -d "some string"
JSON
$ curl -k https://localhost:7410/blobs/test -d "{\"key\":\"value\"}"

When it retrieves data it might look like the following:

{
	"Name": "test",
	"Size": 4,
	"ModTime": "2016-03-01T21:13:57.534706044Z"
}

Todo

Contributing

Contributions to hoarder are welcome and encouraged. Hoarder is a Nanobox project and contributions should follow the Nanobox Contribution Process & Guidelines.

open source

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].