selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

unpub logo

Self-host unpub

2.1.0

Private Dart Pub package server for enterprise

ReleaseOpen SourceMIT
Updated2 years ago
LanguageDart
Setup difficultyModerate
Stars
483
Port
4000 (HTTP server)
Requires
MongoDB
unpub screenshot 1

What is unpub?

This self-hosted private Dart Pub server targets enterprise environments. It offers a web UI for browsing and searching packages, supports publishing with custom validation rules, and forwards missing package requests to pub.dev. MongoDB stores metadata while the filesystem holds tarballs by default, though both layers are pluggable — an AWS S3 package store is available. Deployment options include a CLI installed via dart pub global activate or embedding the Dart library directly. The project is maintained by ByteDance's open-source team under an MIT license.

Should you self-host unpub?

unpub scores 49/100 on selfhost.directory (how scoring works) and ranks #6 of 11 in Package Management. It has 483 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is moderate: expect some configuration beyond a single command. It is MIT-licensed and written mostly in Dart.

Its closest alternative on selfhost.directory is verdaccio (75/100, 17 954 stars). It scores higher overall, so compare the two before you pick. See unpub vs verdaccio side by side.

Features

  • Command Line Interface
  • Dart API
  • Extensible storage backends
  • Package publishing
  • Package Validation
  • Private package hosting
  • Reverse Proxy Support
  • Upstream proxy to pub.dev
  • Version and download badges

unpub README

How to configure unpub

  • googleapisProxyHttp(s) proxy to call googleapis (to get uploader email)

    Http(s) proxy to call googleapis (to get uploader email)

    values: Proxy URL string

  • metaStoreMeta information store (required)

    Meta information store (required)

    values: unpub.MongoStore(db) or custom MetaStore implementation

  • packageStorePackage(tarball) store (required)

    Package(tarball) store (required)

    values: unpub.FileStore('./unpub-packages') or custom PackageStore implementation

  • uploadValidatorCustom package validation function

    Custom package validation function

    values: Function accepting pubspec map and uploader email

  • upstreamhttps://pub.devUpstream url for proxying packages not found locally

    Upstream url for proxying packages not found locally

    values: Any valid Pub repository URL

More in Package Management

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…