Building the ideal service for Free and Open-Source Software (FOSS)

Me

I'm Victor!

Open-Services

A Framework for Running FOSS Services

Why?

FOSS Infrastructure should run in the same spirit as FOSS

  • FOSS dependency on for-profit, closed-source services
  • Availability of the open service depends on the profitability of the closed service

Why?

Centralization & Collaboration is a people problem, not a technological one

Why?

Replicate long-term public services from AFK / Real-World

Why?

Having to re-invest time for every new service

Why?

Find the balance between

long-term & stagnation

Why?

Slow public utilities lasting forever

Fast moving companies lasting for a couple of years

Features of the ideal FOSS service

Works

Features

Independent

Features

Available for Free / Gratis

Features

but could have paid limitations

Transparent

Features

FOSS

Features

Everyone can help

Features

Long-Term

Features

Cheap to Operate

Features

Reproducible & Automated

Features

Local / Remote

Features

Open-Services Framework

(Version 1)

Finance

  • Self-Funded
  • Automatic Payment of Expenses
  • Public History of Financing
  • Efficient Use of Funds
  • Shutdown Scenario In Mind

Infrastructure

  • Automatic Infrastructure
  • Public Introspection
  • Shared Secrets Access / Reducing Busfactor

Governance

  • Full Transparency
  • Governed by the Community
  • Migration possible for change of governance rules

Product

  • Might not allow incompatible changes at all (not really set in stone, yet)
  • Full Export Functionality
  • Automatic Export On Shutdown (if possible)
  • Local-first
  • Compatible with existing services if possible
  • Only one product category
  • Explicit Phases

Explicit Phases

  1. Evaluating
  2. Starting
  3. Operating
  4. Closing
  5. Closed

Where are we now?

Open-Services Framework Version 1

Expanding the framework

Open-Service Framework Version 2

Make voting easy

Figure out how to collaboratively build roadmaps

Automatic Infrastructure

Automatic

Financing

Open-Registry

Open-Registry

A Package Registry for FOSS

Features

Implements Open-Services Framework

Features

Proxy to npm Inc registry

Features

Future Plans

Support multiple JavaScript registries

Future Plans

Alternative for other for-profit registries

Future Plans

Cryptographically signed packages

Future Plans

Build server for secure & reproducible builds

Future Plans

Web of Trust for finding trusted packages

Future Plans

How to use

# To start using Open-Registry
npm config set registry https://npm.open-registry.dev

# To stop using Open-Registry
npm config delete registry

How to use (P2P)

# Install Bolivar
go get -v -u github.com/open-services/bolivar

# Or download binary from https://github.com/open-services/bolivar/releases

# Run Bolivar
bolivar

# To start using Open-Registry via Bolivar
npm config set registry http://localhost:8080

# To stop using Open-Registry
npm config delete registry

Was a feature for the future but is now a feature of today

Introducing

Palomo

Portable Package Registry

you can bring with you

Palomo

  • Portable Package Registry you can bring with you

  • Runs on Android/PC
  • Built in Golang
  • Using IPFS/libp2p
  • P2P fetching via smartphones
  • Dragons Ahead

How you can help?

  • Contribute code/time
  • Contribute funds
  • Help discuss current open questions
  • Help design websites and the UX
  • Spread the word
  • Improve existing docs
  • Help maintain/improve the infrastructure

Thank you!

Slides with tons of links will be uploaded tomorrow, follow @VictorBjelkholm on Twitter for updates

Questions?

❤️❤️❤️❤️❤️❤️

Building the ideal service for Free and Open-Source Software (FOSS)

By Victor Bjelkholm

Building the ideal service for Free and Open-Source Software (FOSS)

Presentation made at opo.js #9 the 19th of June, 2019.

  • 282