All Projects → NixIPFS → Nixipfs Scripts

NixIPFS / Nixipfs Scripts

Licence: gpl-3.0
Mirror a Hydra jobset using IPFS or plain rsync

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Nixipfs Scripts

Docuhash
Simple PoC that shows you how to use IPFS and Ethereum blockchain to store files and their information.
Stars: ✭ 17 (-48.48%)
Mutual labels:  ipfs
Configs
My configuration files
Stars: ✭ 26 (-21.21%)
Mutual labels:  nixos
Filemap.xyz
upload files to a geographic point. never memorize a link again.
Stars: ✭ 29 (-12.12%)
Mutual labels:  ipfs
Kevin Nix
NixOS for the Samsung Chromebook Plus (kevin)
Stars: ✭ 18 (-45.45%)
Mutual labels:  nixos
Nixsap
Stars: ✭ 23 (-30.3%)
Mutual labels:  nixos
Nixops
NixOps is a tool for deploying to NixOS machines in a network or cloud.
Stars: ✭ 838 (+2439.39%)
Mutual labels:  nixos
Ipfs Sync
Live IPFS directory synchronization.
Stars: ✭ 16 (-51.52%)
Mutual labels:  ipfs
Nix Examples
Showcase of Nix usage for various technologies
Stars: ✭ 31 (-6.06%)
Mutual labels:  nixos
Subnode.org
SubNode: Social Media App
Stars: ✭ 25 (-24.24%)
Mutual labels:  ipfs
Fenix
Rust nightly toolchains and rust analyzer nightly for nix [[email protected]]
Stars: ✭ 29 (-12.12%)
Mutual labels:  nixos
Papillon
A distributed blog publish system based on IPFS
Stars: ✭ 19 (-42.42%)
Mutual labels:  ipfs
Openbazaar Go
OpenBazaar 2.0 Server Daemon in Go
Stars: ✭ 919 (+2684.85%)
Mutual labels:  ipfs
Notes
ideas and planning on how to use IPFS together with Nix/OS
Stars: ✭ 15 (-54.55%)
Mutual labels:  ipfs
Peergos
A p2p, secure file storage, social network and application protocol
Stars: ✭ 895 (+2612.12%)
Mutual labels:  ipfs
Rust Multibase
Multibase in rust
Stars: ✭ 30 (-9.09%)
Mutual labels:  ipfs
Graph Node
Graph Node indexes data from blockchains such as Ethereum and serves it over GraphQL
Stars: ✭ 884 (+2578.79%)
Mutual labels:  ipfs
Awesome Blockchain
⚡️Curated list of resources for the development and applications of blockchain.
Stars: ✭ 937 (+2739.39%)
Mutual labels:  ipfs
Dapp
TypeScript React Redux Ethereum IPFS Starter Kit
Stars: ✭ 33 (+0%)
Mutual labels:  ipfs
Nixos Config
NixOS configurations for server and desktop systems, including user specific config. with Home Manager
Stars: ✭ 30 (-9.09%)
Mutual labels:  nixos
Ipfs Cohost
A CLI to co-host websites published to IPFS
Stars: ✭ 21 (-36.36%)
Mutual labels:  ipfs

NixIPFS Release Scripts

banner

This is a collection of scripts that fetch jobsets from a Hydra, create releases and publish them to IPFS. This is a working solution for NAR distribution but should be rewritten completely for an IPLD approach.

Usage

Start IPFS on your host or have the API close (latency) to you:

release_nixos --dir /data/nixipfs --tmpdir /data/tmp --ipfsapi 127.0.0.1 5001 --config nixos_release.json

This downloads the latest release builds of NixOS and all .narinfo + .nar files that belong to the runtime closure (if all store-paths are resolved) to --dir. tmpdir will be used for .nar/.tar extraction since /tmp is often too small

  • --print_only will not add anything to IPFS and will not download the *.nar files locally. Instead the paths are printed and can be piped to a file so you can fetch them using another tool / on another host.
  • --gc the scripts ship their own garbage collector that purges the global binary cache of all files that are not used by a release.
  • --no_ipfs will not add anything to IPFS
  • --config points to a json file that contains most of the parameters (see nixos_release.json for an example)

The modules used by release_nixos have their own scripts that can be used from a CLI.

  • create_channel_release fetches the latest tested build of a single jobset in a project and creates a channel
  • update_binary_cache updates a global binary cache with the runtime closure of a release
  • garbage_collect deletes all unreferenced files from a global binary cache.
  • create_nixipfs creates a IPFS directory from a local directory

Caching

In order to reduce the requests to the IPFS API, the hashes of each directory is stored on disk. If you want to re-add a directory with changed content (e.g. binary-cache-url) you need to delete a file called ipfs_hash in the same directory.

Run this in the releases path to add all releases again:

find . -iname ipfs_hash | xargs rm

License

  • /nixipfs/* is released under the GPLv3, see COPYING
  • /generate_programs_index/* has no license yet (Copyright by Eelco Dolstra, LGPL assumed)
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].