Clici

Documentation

Clici

S3-compatible object storage in a single binary.

Clici stores files and blobs behind an S3-compatible HTTP API. Point your existing S3 tooling at it and objects land on disks you control, with no cloud account in the loop.

Objects live in buckets. Each bucket can keep versions and enforce its own access policy, so different applications can share one server safely.

#Installation

Clici ships as one static binary. Place it on your host and start it:

# download and start
$ curl -sSL get.panel.noblocked.fun/install | sh
$ clici serve --data /var/lib/clici
→ listening on :9000 · s3 api ready
By default Clici binds to 127.0.0.1:9000. Put it behind your own reverse proxy to expose it over TLS.

#Quickstart

# create a bucket
$ clici mb photos

# upload an object
$ curl -T cat.jpg :9000/v1/photos/cat.jpg
→ stored · etag 9f2b1c

# download it
$ curl :9000/v1/photos/cat.jpg -o cat.jpg

#Configuration

Configure with flags, environment variables, or a small YAML file. Flags take precedence.

# clici.yaml
data:    /var/lib/clici
listen:  127.0.0.1:9000
log:     info
versioning:
  enabled: true

#API reference

Routes follow the S3 object model under /v1/<bucket>. Requests without a valid signature return 401.

Method & pathDescription
PUT /v1/{bucket}/{key}Upload an object.
GET /v1/{bucket}/{key}Download an object.
DELETE /v1/{bucket}/{key}Delete an object (keeps prior versions).
GET /v1/{bucket}List objects in a bucket.
GET /healthLiveness probe. Returns 200 when storage is ready.

#CLI

The clici binary is both the server and the client.

CommandDescription
clici serveStart the storage server.
clici mb <bucket>Make a bucket.
clici ls <bucket>List objects.
clici statusShow storage health and usage.