rugwirobaker / larissa

an elegant highly performant cloud native image proxy image proxy

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status codebeat badge

Larissa

Larissa is an elegent image server accessible via a S3 like HTTP API.

Project Status

As of now larissa is still a prototype with the design principles not yet set.

Goals

  • support more backends(mongodb, minio, CloudStore, S3, etc...)
  • filter/limit file mimetype (png, jpeg, gif initialy)
  • multifile upload
  • parameter configured processing
  • access sdk for major languages(Go, Js, Python, Php,...)

Run your own

Natively

If you're inside GOPATH, make sure GO111MODULE=on, if you're outside GOPATH, then Go Modules are on by default. The main package is inside cmd and is run like any go project as follows:

  1. clone the repository:

    $ git clone https://github.com/rugwirobaker/larissa.git

  2. cd into the larissa directory:

    $ cd larissa

  3. build the binary:

    $ make build

  4. the outputed binary is saved at the bin directory, and tou can run it with

    $ ./bin/larissa

  5. You can also pass it an optional configuraion file:

    $ ./bin/larissa --config_file "path/config_file"

using docker

using docker compose this options does the following for you:

  1. build the larissa binary from scratch
  2. add larissa configuration
  3. run larissa server

For this to work you need docker and docker-compose setup on your computer

$ make dev

To rebuild the docker image

$ make dev-build

By default in all cases larissa is listening at:

localhost:3000

usage

function Endpoint Options Method
larissa buiild info "/build" GET
server health status "/health" GET
upload image "/put/:bucket" Form Field:image:"image_name" PUT
list alll images a in bucket "/list/:bucket" GET
dowload image "/get/:bucket/:image" GET
delete image "/del/:bucket/:image" DELETE
verify image existance "/exists:bucket/:image" GET

Development

Tips:

Contributing

As of now PRs are not yet accepted. The project's direaction is still shaping up

About

an elegant highly performant cloud native image proxy image proxy


Languages

Language:Go 95.1%Language:Makefile 3.8%Language:Dockerfile 1.2%