• This repository has been archived on 27/Dec/2022
  • Stars
    star
    6,750
  • Rank 5,854 (Top 0.2 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 8 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An experimental peer-to-peer Web browser

Beaker Browser

This project is now archived.

Beaker was an experimental peer-to-peer Web browser. It adds new APIs for building hostless applications while remaining compatible with the rest of the Web. Visit the website.

Table of Contents

Installing

Binaries

Visit the Releases Page to find the installer you need.

Building from source

Requires node 12 or higher.

In Linux (and in some cases macOS) you need libtool, m4, autoconf, and automake:

sudo apt-get install libtool m4 make g++ autoconf # debian/ubuntu
sudo dnf install libtool m4 make gcc-c++ libXScrnSaver  # fedora
brew install libtool autoconf automake # macos

In Windows, you'll need to install Python 2.7, Visual Studio 2015 or 2017, and Git. (You might try windows-build-tools.) Then run:

npm config set python c:/python27
npm config set msvs_version 2017
npm install -g node-gyp
npm install -g gulp

To build:

git clone https://github.com/beakerbrowser/beaker.git
cd beaker/scripts
npm install # don't worry about v8 api errors building native modules - rebuild will fix
npm run rebuild # needed after each install. see https://github.com/electron/electron/issues/5851
npm start

If you pull latest from the repo and get weird module errors, do:

npm run burnthemall

This invokes the mad king, who will torch your node_modules/, and do the full install/rebuild process for you. (We chose that command name when GoT was still cool.) npm start should work afterward.

If you're doing development, npm run watch to have assets build automatically.

Documentation

Env Vars

  • DEBUG: which log systems to output? A comma-separated string. Can be beaker, dat, bittorrent-dht, dns-discovery, hypercore-protocol. Specify * for all.
  • BEAKER_OPEN_URL: open the given URL on load, rather than the previous session or default tab.
  • BEAKER_USER_DATA_PATH: override the user-data path, therefore changing where data is read/written. Useful for testing. For default value see userData in the electron docs.
  • BEAKER_DAT_QUOTA_DEFAULT_BYTES_ALLOWED: override the default max-quota for bytes allowed to be written by a dat site. Useful for testing. Default value is '500mb'. This can be a Number or a String. Check bytes.parse for supported units and abbreviations.

Vulnerability disclosure

See SECURITY.md for reporting security issues and vulnerabilities.

Known issues

tmux

Launching from tmux is known to cause issues with GUI apps in macOS. On Beaker, it may cause the application to hang during startup.

Contributors

This project exists thanks to all the people who contribute. [Contribute].

License

MIT License (MIT)

Copyright (c) 2018 Blue Link Labs

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

More Repositories

1

homebase

Self-deployable tool for hosting hyper:// websites
JavaScript
406
star
2

webdb

The Web is your database.
JavaScript
399
star
3

fritter

A peer-to-peer social feed app. (proof of concept)
JavaScript
364
star
4

dathttpd

Replaced by Homebase! See https://github.com/beakerbrowser/homebase.
JavaScript
280
star
5

hashbase

A Dat-hosting service for multiple users
JavaScript
239
star
6

explore

A curated list of peer-to-peer websites and apps
HTML
181
star
7

unwalled.garden

Schemas for a p2p social-media network built on the Dat Web.
HTML
131
star
8

dat-photos-app

A peer-to-peer photos app
JavaScript
86
star
9

libfritter

Methods for Fritter, a Dat-based Twitter clone
JavaScript
47
star
10

beaker-core

Beaker browser's core software [outdated]
JavaScript
45
star
11

pauls-dat-api

Library of functions that make working with dat / hyperdrive easier.
JavaScript
44
star
12

beaker.social

A social networking app built on Beaker's unwalled.garden open standards.
JavaScript
40
star
13

bkr

Beaker headless runtime for the hyper:// space network.
JavaScript
39
star
14

beakerbrowser.com

Source code for https://beakerbrowser.com
HTML
39
star
15

dat-node

A toolkit for writing Dat-based services in nodejs
JavaScript
37
star
16

dat-rssreader-app

Read RSS feeds for blogs hosted over dat://
JavaScript
25
star
17

dat-archive-map-reduce

Index files in Dat archives with map-reduce to create queryable data views.
JavaScript
23
star
18

beaker.dev

Developer portal for templates, tutorials, and news
JavaScript
19
star
19

dat-pinning-service-client

Client API for Dat pinning services
JavaScript
14
star
20

social

Peer-to-peer social media
JavaScript
13
star
21

dat-ephemeral-ext-msg

Methods for DEP-0000: Ephemeral Message (Extension Message)
JavaScript
11
star
22

beaker-profiles-api

An API for reading and writing profile archives as used by Beaker.
JavaScript
11
star
23

beaker-browser.gitbook.io

This repo mirrors the content in beaker-browser.gitbook.io
11
star
24

dat-editor-app

A simple but well-featured code editor
JavaScript
11
star
25

beaker.network

A social aggregator application
JavaScript
10
star
26

docs.beakerbrowser.com

Beaker Browser documentation site
JavaScript
9
star
27

p2p-web-workshop

A collection of resources for running a peer-to-peer Web workshop
9
star
28

hyperdrive.network

An application for viewing and modifying Hyperdrives. Requires a Hyperdrive-enabled browser.
JavaScript
9
star
29

webterm

Specs and discussions for the Webterm environment
9
star
30

userlist

A simple service for listing your profile drive under your Twitter username.
JavaScript
8
star
31

beaker-uplink

Peer-to-peer bookmark sharing.
JavaScript
8
star
32

beaker-sidebar-app

Web application that drives Beaker's sidebar view
JavaScript
8
star
33

beaker-editor-app

In-browser editor application.
JavaScript
8
star
34

dat-legacy-tools

Tools to access legacy dats stored in Beaker
JavaScript
7
star
35

pauls-dat-api2

DatArchive implementation for Dat 2.0
JavaScript
7
star
36

beaker-reader

Publish and read blogposts.
JavaScript
7
star
37

dat-wysiwywiki-app

A wiki app with a wysiwyg interface
JavaScript
7
star
38

beaker-compare-app

A builtin app for comparing, diffing, and merging two dats
JavaScript
6
star
39

pauls-hyper-mirror

A simple seeding servce
JavaScript
6
star
40

beaker-user-website-template

The template for new user websites.
JavaScript
5
star
41

beaker-library-app

The Beaker "Library" app
JavaScript
5
star
42

beaker.cloud

An open-source dat server that scales
5
star
43

record-protocols-spec

(Dead Spec) A standard for building interoperable applications on the Web.
5
star
44

pauls-embedded-analytics

A sqlite-backed embedded analytics module for nodejs.
JavaScript
5
star
45

beaker-search-app

The Beaker "Search" app
JavaScript
5
star
46

beaker-virtual-fs

An object-oriented files interface used by Beaker to render the user's filesystem
JavaScript
5
star
47

dat-serve-resolve-path

Beaker's method to find the file to serve in dat:// requests
JavaScript
4
star
48

dat-nexus-app

A social feeds and profiles application
JavaScript
4
star
49

beaker-bookmarks-app

The Beaker "Bookmarks" app
JavaScript
4
star
50

beaker-app-stdlib

Assets which are reused across Beaker apps
JavaScript
4
star
51

viewer-apps

Beaker's builtin hyperdrive-viewer applications
JavaScript
3
star
52

hypercloud-ui-hashbase

Hashbase UI module for hypercloud [DEPRECATED]
CSS
3
star
53

library-tools

Module for managing the library.json file (spec: beakerbrowser.com/library)
JavaScript
3
star
54

beaker-error-constants

Module containing the errors used by beaker and its submodules
JavaScript
3
star
55

basic-user-site-template

Template used to create new user sites
JavaScript
3
star
56

uwg-bash

Bash CLI tools for reading/writing Unwalled Garden data
3
star
57

beaker-start-app

The Beaker "Start Page" app
JavaScript
2
star
58

beaker-analytics-server

Server to collect Beaker usage pings.
JavaScript
2
star
59

dat-workshop-server

A server for the "dat workshop" application (created for the Decentralized Web Summit 2018)
HTML
2
star
60

datignore

A module for reading and using .datignore files
JavaScript
2
star
61

builtin-pages-lib

Some common library code for Beaker's builtin pages.
JavaScript
2
star
62

beaker-index

An indexer driven from the beaker userlist
JavaScript
2
star
63

beaker-profile-app

The Beaker "Profile" App
JavaScript
2
star
64

beaker-feed-app

The Beaker "Feed" App
JavaScript
2
star
65

dat-session-data-ext-msg

Methods for DEP-0006: Session Data (Extension Message)
JavaScript
2
star
66

discussions

Repo for having org-wide discussions.
2
star
67

dat-archive-file-diff

Get line-by-line diffs of text files in Dat archives
JavaScript
1
star
68

dat-nexus-api

API for interacting with Dat Nexus profiles
JavaScript
1
star
69

simple-cloud-announcer

A fork of discovery-swarm that announces a peer and waits for connections.
JavaScript
1
star
70

assets

Images, logos, etc
1
star
71

site-schema.org

A machine-readable description format used to validate and describe the file structures of websites.
1
star