All Projects → enseadaio → Enseada

enseadaio / Enseada

Licence: mpl-2.0
A Cloud native multi-package registry

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Enseada

Dependency spy
Find known vulnerabilities in your dependencies
Stars: ✭ 87 (+8.75%)
Mutual labels:  npm, maven, rubygems
Wasm Pack
This tool seeks to be a one-stop shop for building and working with rust- generated WebAssembly that you would like to interop with JavaScript, in the browser or with Node.js. wasm-pack helps you build rust-generated WebAssembly packages that you could publish to the npm registry, or otherwise use alongside any javascript packages in workflows that you already use, such as webpack.
Stars: ✭ 3,848 (+4710%)
Mutual labels:  registry, package, npm
Npm Api
Node.js library for getting info from NPM’s API
Stars: ✭ 67 (-16.25%)
Mutual labels:  registry, package, npm
Xa
Beautiful & Customizable logger ❤️
Stars: ✭ 78 (-2.5%)
Mutual labels:  package, npm
Snm
🤏 Smol Node Manager written in Rust
Stars: ✭ 24 (-70%)
Mutual labels:  package, npm
Typac
install npm packages along with corresponding typings
Stars: ✭ 29 (-63.75%)
Mutual labels:  package, npm
Lass
👧 Lass scaffolds a modern package boilerplate for Node.js
Stars: ✭ 615 (+668.75%)
Mutual labels:  package, npm
Verdaccio Ldap
LDAP auth plugin for verdaccio
Stars: ✭ 39 (-51.25%)
Mutual labels:  registry, npm
Sao Nm
Scaffold out a node module.
Stars: ✭ 30 (-62.5%)
Mutual labels:  package, npm
Couchdb Couch
Mirror of Apache CouchDB
Stars: ✭ 43 (-46.25%)
Mutual labels:  cloud, couchdb
React Native Markdown Editor
A markdown editor like github comment editor (contains preview, helper buttons)
Stars: ✭ 59 (-26.25%)
Mutual labels:  package, npm
Cpprestsdk
The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services.
Stars: ✭ 6,631 (+8188.75%)
Mutual labels:  cloud, oauth2
Lerna
Splitting up large codebases into separate independently versioned packages is extremely useful for code sharing. However, making changes across many repositories is messy and difficult to track, and testing across repositories becomes complicated very quickly.
Stars: ✭ 31,079 (+38748.75%)
Mutual labels:  package, npm
Web Framework For Java
A seed project with spring boot for AngularJS, AngularJs Material, Thymeleaf, RESTful API, MySQL and admin panel based on AdminLTE.
Stars: ✭ 29 (-63.75%)
Mutual labels:  maven, oauth2
Oji
(◕‿◕) Text Emoticons Maker
Stars: ✭ 668 (+735%)
Mutual labels:  package, npm
Gub
CLI tool for create an npm package from any repos. 🐳
Stars: ✭ 31 (-61.25%)
Mutual labels:  package, npm
Npm Git Install
Clones and (re)installs packages from remote git repos. See npm/npm#3055
Stars: ✭ 49 (-38.75%)
Mutual labels:  package, npm
Npmf
Fetch quick info of a npm pacakge using terminal
Stars: ✭ 64 (-20%)
Mutual labels:  package, npm
Couchdb
Seamless multi-master syncing database with an intuitive HTTP/JSON API, designed for reliability
Stars: ✭ 5,166 (+6357.5%)
Mutual labels:  cloud, couchdb
Angular Auth Oidc Client
npm package for OpenID Connect, OAuth Code Flow with PKCE, Refresh tokens, Implicit Flow
Stars: ✭ 577 (+621.25%)
Mutual labels:  npm, oauth2

Enseada

A Cloud native multi-package registry

version build status Docker Repository on Quay license Discord Badge

logo

[!WARNING] Enseada is still under initial development. Some of the features and characteristics described in this document may still be missing.

Enseada is a modern, fast and scalable package registry, designed from the ground up to run in elastic, container-based environments and to be highly available and distributed.

It leverages scalability by using natively distributed technologies.

Check out the official documentation for a complete manual of operation.

Features

The registry itself is written in Rust, a fast, resource efficient and statically compiled programming language built for safety and speed.

CouchDB is used as the primary datastore, containing information about repositories, users and access control. CouchDB is a web-native database written in Erlang and based on web technologies like HTTP and JSON.

Enseada stores packages in distributed and fault-tolerant object storage services. See Supported storage providers for the complete list.

Supported package repositories

Enseada is a multi-package registry, meaning it can support a large number of package formats and registry APIs.

At the moment, the following formats are supported:

Supported storage providers

The storage engine used by Enseada provides pluggable backends, allowing to easily support multiple storage providers. See the configuration guide for how to setup the storage layer.

At the moment, the following providers are supported:

  • S3 compatible (AWS S3, Minio, DigitalOcean Spaces, Scaleway Object Storage, Ceph, etc)

HTTPS and HTTP/2 support

Enseada has full support for strict HTTPS, enabling it is very simple.

Passing the environment value ENSEADA_TLS=true will turn on HTTPS on the entire application (with HSTS enabled). This will require two additional environment variables.

## The path to the key file
ENSEADA_TLS_KEY_PATH=nil

## The path to the certificate file
ENSEADA_TLS_CERT_PATH=nil

The private key must be either an RSA or PKCS8 key. Both the certificate and the key must be in PEM format.

When HTTPS is active, Enseada switches automatically to HTTP/2 if supported by the client.

Build

Enseada is built as a statically linked executable. However, it needs a few native libraries to build the executable, in particular libclang and LLVM. On Debian they can be installed with apt install build-essential llvm-dev libclang-dev. These libraries are not needed to run the executable.

You need a stable build of the Rust compiler and standard library to build the binary. You can install one using rustup.

Standard cargo commands work perfectly fine. For example, cargo run will compile and start the server.

Enseada is also packaged as a Docker image. Build one with docker build -t myname/enseada:latest .

Web UI

Enseada comes with a management web UI. To build it from sources, NodeJS and Yarn are required.

Execute the following commands to build the static assets.

# Install all dependencies
yarn install

# Build and recompile on change for development (all stylesheets, no minification)
yarn watch

# Build for production (minimal stylesheets, minification, sourcemaps)
yarn build

Enseada will pick them up on its own.

Local Database

A local CouchDB instance can be started using the provided docker-compose.yml file. Simply run docker-compose up -d to start it in background, it will be available on http://localhost:5984 and will persist data in a Docker volume.

Upon first run, the database server is uninitialized. Please run the initialization setup for single node deployment by visiting http://localhost:5984/_utils/#setup and following the instructions.

Local Minio Server

A local Minio server can be started using the provided docker-compose.yml file. Simply run docker-compose up -d to start it in background, it will be available on http://localhost:9000 and will persist data in a Docker volume.

Upon first run no bucket is present. Create a new one and configure the name in the appropriate environment variable in the Enseada configuration.

Security Policy

If you want to report a security vulnerability, please follow the steps which we have defined for you in our security policy.

Chat

Need some help or want to have a chat? Join our Discord server!
Discord Banner

License

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.

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].