/sigma

OCI-Native artifact manager

Primary LanguageGoApache License 2.0Apache-2.0

sigma

sigma

GitHub Workflow Status Codecov GitHub repo size

Yet another OCI artifact manager. Harbor is a great product, but it's not easy to use, it is so complex. So I want to make a simple artifact manager, that never depends on distribution like harbor.

Demo Server

It runs on AWS ec2 (2C4G, Disk 40G), Linux distribution is Debian 12.1, Docker version 24.0.6.

# Install Docker from get.docker.com
sh ./scripts/samples/init.sh

# If your docker running with rootless mode,
# make sure add net.ipv4.ip_unprivileged_port_start=0 to /etc/sysctl.conf and run sudo sysctl --system.
docker network create sigma
docker run --name sigma -v /home/admin/config:/etc/sigma \
  -v /var/run/docker.sock:/var/run/docker.sock -p 443:3000 \
  -d --net sigma ghcr.io/go-sigma/sigma:nightly-alpine

# Add sample data
sh ./scripts/samples/samples.sh

Visit: https://sigma.tosone.cn, username/password: sigma/Admin@123

I will periodically reboot the container, and since the container doesn't have any disk mount, every reboot will clear all the data.

Quick Start

Now sigma is under very early development, so it's not easy to use. But you can try it.

cd web && yarn && yarn build && cd .. && make build && ./scripts/run_all.sh
./bin/sigma server -c ./conf/config.yaml

Architecture

I was hoping you could wait for me to finish drawing the architecture.

Compatibility

The sigma registry implements the OCI Distribution Spec version 1.1.0.

Features

  • Support docker registry v2 protocol.
  • Support OCI Image v1 Format and OCI Image Index v1 Format.
  • Support OCI artifacts such as helm and so on.
  • Support OCI sbom.
  • Support Image security scan.
  • Support registry proxy.
  • Support Namespace quota.
  • Support Image automatic garbage collection.
  • Support Multi-tenancy.
  • Support Image replication.
  • Support Image build in docker, podman and kubernetes.
  • Support Image sign.
  • Support helm chart search and index.json.

Release Schedule

  • There will be a major release in the middle and end of each year.
  • A minor release is released at the beginning of each month.
  • There will probably be a bugfix release in the middle of each week.

Alternatives