Giter VIP home page Giter VIP logo

unlock's Introduction

Unlock Unlock


This repository includes all the code deployed by Unlock, including smart contracts and the web app running at unlock-protocol.com.

Unlock is a membership protocol, built on a blockchain. It enables creators to monetize their content or software without relying on a middleman. It lets consumers manage all of their subscriptions in a consistent way, as well as earn discounts when they share the best content and applications they use.

Read more about why we're building Unlock.

License: MIT

Demo

You can try Unlock using the Ethereum blockchain on our homepage.

We are building this in the open, which means you can also run the code locally (see instructions below). You can try out the staging version - which runs the latest, in-progress code, but against the Goerli test network.

Contributing

Thanks for your interest in contributing to Unlock! We're excited you're here. There are a variety of ways to contribute to the project. Please read more about contributing in our contributor guide. Please also check our code of conduct for all participants in our community.

Getting started

The code

Unlock uses a monorepo which includes all the services and applications we develop.

# get the code
git clone https://github.com/unlock-protocol/unlock
cd unlock

You'll need yarn installed globally.

yarn
# install all dependencies (...may take a while)

Build all packages:

yarn build

To execute commands inside the repo, we use the pattern yarn workspace <workspace name> <command>

# build the contracts
yarn workspace @unlock-protocol/smart-contracts build

# validate lint for paywall
yarn workspace @unlock-protocol/paywall lint

# etc.

The protocol

You can run a local version of the protocol using Docker.

cd docker && docker-compose up --build

This will create the required infrastructure (database, local ethereum test network, subgraph...) and start core services such as the Locksmith API and a Wedlocks mailing service for debug purposes.

NB: config is defined in both docker-compose.yml and docker-compose.override.yml.

Deploy and provision the contracts

The following script will deploy the contracts, create some dummy locks and send you some local tokens for development.

cd docker
docker-compose exec eth-node yarn provision

Run one of the app

The main dashboard lives in the unlock-app folder of this repo.

To launch it locally:

# install deps
yarn

# start Unlock main app
yarn workspace @unlock-protocol/unlock-app start

This will start

  • http://localhost:3000 to start using the application and deploy locks locally.
  • http://localhost:3002 our static landing page site.

Secrets

Secrets are stored in the Unlock Labs 1Password account in the API & Services Vault. They can be loaded in our Github Actions through the use of dedicated actions.

Here is an example:

steps:
  - name: Load secrets from 1Password
    uses: 1Password/[email protected]
    with:
      export-env: true
    env:
      OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
      USERNAME: op://secrets/test-api/username
      CREDENTIAL: op://secrets/test-api/credential
  ... more steps that require USERNAME and CREDENTIAL to be set

These reference URIs have the following syntax: op://<vault>/<item>[/<section>]/<field> So for example, the reference URI op://app-cicd/aws/secret-access-key would be interpreted as: Vault: app-cicd Item: aws Field: secret-access-key

Thank you

BrowserStack Logo

Thanks to BrowserStack for providing the infrastructure that allows us to test in real browsers.

Thank you to all the Members of our lock as well! You can easily join this list by clicking on the ❤️ Sponsor button (it's free!) at the top of this page too.

Members

unlock's People

Contributors

julien51 avatar renovate[bot] avatar kalidiagne avatar cnasc avatar searchableguy avatar clemsos avatar akeem avatar hardlydifficult avatar benwerd avatar nfurfaro avatar greenkeeper[bot] avatar ccarfi avatar smombartz avatar wonderwomancode avatar adeelhasan avatar m00n620 avatar vikaskyadav avatar philmod avatar chialit avatar easyrun42 avatar cellog avatar chrisvanpatten avatar christopherdro avatar gundamdweeb avatar manyrios avatar solomonfoskaay avatar unlock-deployer avatar jordang7 avatar omahs avatar swkidd avatar

Watchers

 avatar

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.