Git Product home page Git Product logo

chigala / geyser-app Goto Github PK

View Code? Open in Web Editor NEW

This project forked from geyserfund/geyser-app

0.0 0.0 0.0 116.5 MB

Geyser is a bitcoin & nostr native crowdfunding platform where you can fund project ideas with the support from global communities.

Home Page: https://geyser.fund

License: GNU General Public License v3.0

Shell 0.04% JavaScript 0.18% TypeScript 99.53% Makefile 0.01% HTML 0.15% Dockerfile 0.09%

geyser-app's Introduction

Contributors Forks Issues GPLv3 License


Logo

Transform ideas into real-life projects

LinkedIn Discord Telegram X

Geyser is a bitcoin & nostr native crowdfunding platform where you can fund project ideas with the support from global communities.
Launch your project »

Explore live projects · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

Where great ideas find great communities

geyser Screenshot

Enabling the Open Creator Economy

Traditional Crowdfunding and Creator Platforms are built on closed monetary and social networks, which limits the use of crowdfunding (a powerful financial primitive) to around 30 Western countries and restricts project reach and social interaction to the platform.

Geyser is enabling the Open Creator Economy, by building fundraising on top of open Bitcoin/Lightning, open monetary networks, and Nostr, an open social network. With these tools we can empower creators globally to reach their communities and raise funds from them.

As an open company, we also build Open Source software and rely on the support of contributors to change the world for the better.

(back to top)

Built With

This section should list any major frameworks/libraries used to bootstrap your project. Leave any add-ons/plugins for the acknowledgements section. Here are a few examples.

  • React
  • Typescript
  • ChakraUI
  • GraphQL
  • React Router

(back to top)

Getting Started


Prerequisites

Yarn We use yarn as a dependency manager, install yarn if not already installed

  • npm install --global yarn

Docker ( optional ) We can use docker and docker compose for local development of the geyser-app. If you prefer using docker for development, make sure to have them installed on your local development machine, see here.


Installing Dependencies

Clone the repo, get into the repo directory and run:

yarn

Environment Variables

The app requires some environment variables to be set. We provide an example.env file that you can copy to the a local .env file:

cp .env.example .env

From there, populate the new file with the correct values. You have three development environment options, detailed below. It is recommended to use the staging API for most development tasks.

Optionally create .env.staging file, that could be tried out for staging development


Running the App Locally


Option 1 (DOCKER): use the staging API

Make sure to complete the instructions described in Hosts Configuration, before proceeding using this method.

Currently, the staging API is the only way to get a functional authentication flow in standalone geyser-app development environment.

To use the staging API, fill in the following value in the .env file:

[OPTION A: STAGING]
REACT_APP_API_ENDPOINT=https://api.staging.geyser.fund

Start the server:

make dev-staging

Option 2 (DOCKER): use the GraphQL-Faker config

If you do not require a functional authentication flow for this task, you may use this option.

[OPTION B: GRAPHQL_FAKER]
REACT_APP_API_ENDPOINT=https://api.dev.geyser.fund
APOLLO_KEY=<your Apollo Studio API key>

if you don't have an APOLLO_KEY yet. Please Contact us

Start the server:

make dev-faker

Option 3: use both local server and staging API interchangably

Many at times we prefer using staging API while sometimes we prefer the local server. In such cases we can setup to use them interchangably.

  1. Create the normal .env file, which contains the values for local server. Refer to the .env.example and use Configuration 3-A

Start the server:

yarn dev
  1. Create a new file .env.staging this would have the values to use the staging API. Refer to the .env.example and use Configuration 3-B.

Start the server:

yarn dev:stage

Docker

If you run into problems running the app through make command, you can run the app by running the following command in the project directory, as long as one of the docker configuration above ( Option 1 or 2) is satisfied.

docker compose up -d

Or, if you are running an older version of docker and have docker-compose installed separately, run:

docker-compose up -d

To see the react app logs use the following command:

docker compose logs -f geyser-app

or

docker-compose logs -f geyser-app

Hosts Configuration


Staging API

In order for the requests to go through to the staging backend API, you will need to add the following line to your /etc/hosts file:

127.0.0.1 staging.geyser.fund

This makes sure that you are able to make requests to the staging API from your local development environment with encountering CORS errors.


GraphQL Faker

If running against the GraphQL Faker server, you'll also need these in the same /etc/hosts file:

127.0.0.1 dev.geyser.fund
127.0.0.1 api.dev.geyser.fund

Trusting Caddy Local CA Certificate

We are using Caddy as a reverse proxy to serve the local development app over HTTPS. This means that you will need to trust the Caddy Local CA Certificate in order to avoid any ERR_CERT_AUTHORITY_INVALID errors in your browser.

To do so, you can run the following command from the project root directory after starting the app and caddy server:

sudo yarn caddy:trust-ca

This command will add the Caddy Local CA Certificate to your system's list of trusted certificates (only works on MacOS for now). It needs sudo rights for that.


Opening in the Browser

With Docker running, navigate to the URL that's appropriate for the development-environment configuration in your .env file:


Staging

https://staging.geyser.fund/


GraphQL Faker

https://dev.geyser.fund/

Make sure to also browse to https://api.dev.geyser.fund/ and accept the certificate there.

This will allow you to get around any ERR_CERT_AUTHORITY_INVALID errors that may be thrown in your browser.

See the docs on GraphQL Faker Tips & Tricks for more useful tidbits of information on running/developing the app against Faker.


Roadmap

See the open issues for a full list of proposed features (and known issues).

(back to top)


Contributing

Contributions to Geyser are always welcome!

  • 📥 Pull requests and 🌟 Stars are always welcome.

  • Read our contributing guide to get started,

  • Read our style guide to know more about style considerations.

  • Read our Architecture guide to learn more about the project.

    or find us on Discord, we will take the time to guide you.


License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

(back to top)

Contact

(back to top)

Acknowledgments

Use this space to list resources you find helpful and would like to give credit to. I've included a few of my favorites to kick things off!

(back to top)

geyser-app's People

Contributors

sajald77 avatar steliosrammos avatar jfrader avatar secondl1ght avatar cypherpoet avatar umarrg avatar verbiricha avatar adriaanwm avatar deepsourcebot avatar jsahagun91 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.