npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

geesome

v0.2.0

Published

<h1 align="center"> <img src="https://github.com/galtspace/geesome-node/raw/master/frontend/assets/logos-long.png" alt="geesome" width="470"></a> </h1>

Downloads

2

Readme

GeeSome Node

GeeSome Node allows you to run your own file storage with social media functional: make you own public or private group with posts and content. It's a Node on top of IPFS for define and manage data structure of files, users and groups. Node provides a UI for storing and accessing your saved data or remote data of other nodes: files, posts, groups.

GeeSome Main Page

About GeeSome Project

GeeSome protocol created to provide communication tool between communities of property owners in Galt Project.

Galt Project team is aware of many cases of censorship and blocking in different social networks. These cases forced us to develop a new decentralized protocol and node application that would allow anyone to upload any content to his personal node and to share this content with the whole world without the risk of being blocked.

Using the GeeSome protocol, communities in the Galt Project will be able to communicate in encrypted chat groups, share images, video, text or any data.

We are sure that this tool should be used not only by the project's communities, but also by anyone who is concerned about the safety of their data, censorship and blocking in web.

GeeSome Protocol

A new open protocol for unstopable social networking and communication on IPFS. It defines the structure of social network data to describe familiar to the modern user entities: content, posts, tags, groups.

Summary

With the help of GeeSome Node, anyone can create an instance of a decentralized social network, with groups like in YouTube, Instagram or Telegram but with content preservation and no locks or censorship thanks to the concept of personal GeeSome Node using IPFS Node to store content, access data and receive updates by libp2p.

GeeSome Node can be used:

  • to create and maintain your blog
  • to save important content like Saved messages in telegrams and / or in the form of a file structure as in Google Drive
  • as a media platform for adding and viewing / listening to audio and video content, creating playlists
  • to share the uploaded content in any form (blog, playlist, file, folder)
  • to create chat groups

GeeSome Scheme

GeeSome-Scheme

You can run personal or public GeeSome node. It used for storing files, manage entities and prepare content for publishing. Also because of IPNS updates issues - GeeSome node have IPNS caching based on signed PubSub events. Also there is an issue about IPNS keys of user. Currently its storing in IPNS node, but need to improve it.

UI Screenshots

File explorer

GeeSome File explorer

Test group

GeeSome Test Group

Mobile version

| Main page | Menu | Groups list | Group page | | --- | --- | --- | --- | | GeeSome Mobile UI | GeeSome Mobile UI | GeeSome Mobile UI | GeeSome Mobile UI |

Install with domain to your server

  1. Set DNS settings for domain: ip address of server
  2. Clone repo to server that bound to domain
git clone https://github.com/galtspace/geesome-node.git
  1. Run script with parameters: domain and email for letsencrypt
cd geesome-node
export DOMAIN="your-site.com" EMAIL="[email protected]"; ./bash/full-install.sh 

There is additional parameters that can be used in export:

| Parameter | Description | |-----|-------------| | DATABASE_NAME | Database name to store app data. Default: geesome-node | | STORAGE_REPO | Directory to store IPFS content. Default: ~/.jsipfs |

  1. Open your-site.com/#/setup and create first admin user

Getting started with GeeSome Node API

  1. Get apiKey from GeeSome UI of your node
You can get your current session api key after login by enter localStorage.getItem('geesome-api-key') in browser console of UI page. Soon it will be more convenient and correct by keys generation in UI.
  1. Install GeeSome libs by npm:
npm i --save git://github.com/galtspace/geesome-libs.git

or yarn:

yarn add git://github.com/galtspace/geesome-libs.git
  1. Init GeeSome client and send request to your GeeSome node
const { GeesomeClient } = require('geesome-libs/src/GeesomeClient');

const geesomeClient = new GeesomeClient({
    server: 'https://your-site.com:7722',
    // paste apiKey from GeeSome UI here
    apiKey: '4J1VYKW-ZP34Y0W-PREH1Q2-DYN9Q8E'
});
await geesomeClient.init();

const contentObj = await geesomeClient.saveDataByUrl('http://url.to/image.jpg');

console.log('content ipfs', contentObj.storageId);
console.log('content manifest ipld', contentObj.manifestStorageId);

You can also use geesomeClient.loginUserPass for login via login and password without manually setting apiKey. But more safer to use apiKey, because you can always disable it apiKey and create another if there is a leak.

TODO:

  • Manage api keys in UI
  • Share folder by ipld manifest
  • Share folder by ipns manifest
  • Play audio and video content in groups as playlist
  • Public chat groups
  • Personal messages
  • Private chat groups
  • Feed for aggregate channels, chats, personal messages like in Telegram
  • Local IPNS accounts (in-browser) and signing authentication or publish transactions

Minimal requirements

  • System: Ubuntu 16.04
  • 2 GB RAM
  • 1 GB free HDD + space for your files

Dependencies

  • Node 10.x
  • Mysql Server 5.7
  • ffmpeg
  • Cerbot(Letsencrypt)

Links

Do you like the project? ✨

Put a star and fork it. Join Us On Telegram. Thank you!