Welcome
Awesome Dat
Dat Applications
datproject/dat
datproject/dat-desktop
Community Applications
codeforscience/sciencefair
mafintosh/hyperirc
jondashkyle/soundcloud-archiver
mafintosh/hypervision
joehand/hypertweet
beakerbrowser/dat-photos-app
High-Level APIs
datproject/dat-node
datproject/dat-js
beakerbrowser/pauls-dat-api
beakerbrowser/node-dat-archive
Hosting & Dat Management
mafintosh/hypercore-archiver
datprotocol/hypercloud
beakerbrowser/hashbase
joehand/dat-now
mafintosh/hypercore-archiver-bot
joehand/hypercore-archiver-ws
datproject/dat-registry-api
datproject/dat-registry-client
Managing & Aggregating Dats
datproject/multidat
datproject/multidrive
jayrbolton/dat-pki
beakerbrowser/injestdb
Http Hosting
joehand/hyperdrive-http
beakerbrowser/dathttpd
Dat Link Utilties
datprotocol/dat-dns
joehand/dat-link-resolve
pfrazee/parse-dat-url
juliangruber/dat-encoding
Dat Utilities
joehand/dat-log
mafintosh/dat-ls
karissa/hyperhealth
joehand/hyperdrive-network-speed
File Imports & Exports
juliangruber/hyperdrive-import-files
mafintosh/mirror-folder
pfrazee/hyperdrive-staging-area
pfrazee/hyperdrive-to-zip-stream
Hypercore Tools
mafintosh/hyperpipe
Dat Core Modules
mafintosh/hyperdrive
mafintosh/hypercore
CLI Utilities
joehand/dat-doctor
joehand/dat-ignore
joehand/dat-json
Networking
karissa/hyperdiscovery
mafintosh/discovery-swarm
mafintosh/webrtc-swarm
joehand/dat-swarm-defaults
Lower level networking modules
maxogden/discovery-channel
mafintosh/dns-discovery
mafintosh/multicast-dns
webtorrent/bittorrent-dht
mafintosh/utp-native
mafintosh/signalhub
Storage
datproject/dat-storage
datproject/dat-secret-storage
Random Access
juliangruber/abstract-random-access
mafintosh/multi-random-access
mafintosh/random-access-file
mafintosh/random-access-memory
mafintosh/random-access-page-files
datproject/dat-http
substack/random-access-idb
Other Related Dat Project Modules
mafintosh/peer-network
mafintosh/hyperdht
Dat Project Organization Stuff
datproject/datproject.org
datproject/discussions
datproject/design
datproject/dat-elements
kriesse/dat-colors
kriesse/dat-icons
juliangruber/dat.json
Outdated
juliangruber/dat.haus
poga/hyperfeed
yoshuawuyts/normcore
yoshuawuyts/github-to-hypercore
poga/hyperspark
juliangruber/hypercore-index
juliangruber/hyperdrive-encoding
mafintosh/hyperdrive-http-server
joehand/hyperdrive-http
joehand/dat-push
joehand/dat-backup
joehand/archiver-server
joehand/archiver-api
poga/hyperdrive-ln
substack/hyperdrive-multiwriter
substack/hyperdrive-named-archives
substack/git-dat
CfABrigadePhiladelphia/jawn
maxogden/dat-archiver
juliangruber/hyperdrive-stats
karissa/hypercore-stats-server
mafintosh/hypercore-stats-ui
karissa/zip-to-hyperdrive
joehand/url-dat
joehand/tar-dat
joehand/hyperdrive-duplicate

Dat Push

Push files, via Dat, to a server running a dat-archiver or dat-publish. Dat Push will send the files to your server over peer to peer networks.

Dat push (+ a compatible server) can be used for data publishing, file backup, or website deployment.

dat-push <server-key> --dir=[directory]

Features

  • Push to Multiple Servers: Add more server keys to push to as many servers as you like. Redundancy!
  • Fast pushes: After you push the first time, dat-push will only send the data that has changed. Speed!
  • Peer to Peer: Data is sent encrypted over peer to peer networks (not using http). Data is sent directly between you and your servers. Networks!
  • Instant Publishing: Combine dat-push with dat-publish to instantly publish your data or files to http and/or Dat networks. Sharing!

Installation

npm install -g dat-push

Usage

dat-push <server-key> <server-key> --dir=[directory]
  • Run a dat-archiver or dat-publish server and copy the server key
  • Run dat-push <your-server-key> (this will push current directory)
  • Files are sent to your dat-archiver server!
  • dat-push will exit when your server received all the files.

Dat push uses peer-network to connect to servers. (TODO: Notes about security).

API

dat-push can also be used in other node modules to push Dats. See cli.js for example usage.

var datPush = DatPush(opts)

Options:

{
  dir: '/data', // directory to push, required
}

datPush.push(serverKey, [cb])

Push your directory to dat-archiver sever with key serverKey. Callback when finished pushing.

datPush.once('connect', key)

Connected to dat-archiver server.

datPush.once('dat-open')

Dat folder ready to push to archiver. datPush.dat is populated so you can check if its a new dat (datPush.dat.resume) or get the key (datPush.dat.archive.key).

datPush.once('replication-ready', key)

About to replicate. datPush.dat.archive is finalized at this point. File size, or other metrics, available.

datPush.once('replicating', key)

Replication to dat-archiver server started.

datPush.on('progress', key, remote, total)

Block(s) uploaded to remote server. remote / total will give you % uploaded.

datPush.once('upload-finished', key)

Upload is finished. Emitted same time as callback is called.

datPush.dat

dat-js instance of Dat folder.

License

MIT