Giter Club home page Giter Club logo

infra's Introduction

IPFS Infrastructure

standard-readme compliant

Tools for maintaining infrastructure for the IPFS community.

  • Introduction
  • Getting started
  • Usage
  • Known issues
  • Common tasks

Progress and Tracking

Throughput Graph

Introduction

This repository contains the technical infrastructure of the IPFS community.

  • Public HTTP-to-IPFS Gateway: https://ipfs.io
  • Default bootstrap used by IPFS: ipfs bootstrap
  • Private networking between the hosts (cjdns with nginx access control)
  • Monitoring of services and hosts: http://metrics.ipfs.team
  • Pinbot, an IRC bot in chat.freenode.net/#ipfs-pinbot

Infrastructure that isn't contained here:

  • Websites deployment: ipfs.io, dist.ipfs.io, blog.ipfs.io, chat.ipfs.io
  • DNS settings for ipfs.io, ipld.io, multiformats.io, libp2p.io, orbit.chat, ipfs.team, protocol.ai
  • TeamCity CI: http://ci.ipfs.team:8111

Getting started

We use a tool called Provsn to maintain the setup of hosts and services. The fundamental principle of Provsn is that hosts are in a certain state, and units of code are run to transition into a different state.

Provsn is a plain shell script, and each unit consists of shell scripts too:

  • The env script exposes variables and functions to the unit itself, and other units.
  • The build script is run on the client and builds container images, config files, etc.
  • The install script is run on the host and transitions it into the desired state.

Note: there are a few bits of Ansible code left over, which are to be migrated to Provsn. You can find them in the ansible/ directory.

To test whether you're all set up, execute a simple command on all hosts.

> ./provsn exec all 'whoami'
pluto: root
uranus: root
[...]

Two environment variables can be used to alter Provsn's operation:

  • PROVSN_JOBS -- this controls the number of hosts to run on in parallel, and defaults to 4.
  • PROVSN_TRACE -- if set, this enables Bash tracing (set -x) for extensive debugging information. Note that this will contain sensitive information and secrets.

Usage

Known issues

  • no verbose option, need to comment out dev-null-redirections in unit scripts
  • if container that's supposed to be restarted is in a restart loop, we don't notice it's kinda running, and try to start it, and that fails because the name is already in use

Common tasks

  • gathering ipfs debug info
  • updating ipfs
  • deploying a website
  • adding a root user
  • adding hashes to the blocklist

How can I get ssh access to the instances?

Add you ssh-key to the list of keys available in base/env.sh, like this: https://github.com/ipfs/infrastructure/blob/master/base/env.sh#L9 and then submit a PR with the changes.

Other community infrastructure:

More info in https://github.com/ipfs/community

Contribute

Feel free to join in. All welcome. Open an issue!

This repository falls under the IPFS Code of Conduct.

Want to hack on IPFS?

License

MIT

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.