pinmonldummy

package module
v0.4.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 31, 2020 License: MIT Imports: 0 Imported by: 0

README

Pinmonl

Pinmonl is a bookmark manager with hierarchical tags which aims to be fast, shareable and monitor to releases.

My primary goal is to manage and monitor release of the git repositories from different providers (GitHub, GitLab, etc.) and their corresponding release in package managers (NPM, Docker, etc.). With sharing feature, it would be a better alternative for awesome list hosting.

Beside of Pinmonl, an Exchange server is developed to handle crawlers, notify new release to end-client and host sharing. The communication to Exchange server is an opt-in feature that is on by default. Release notification will send to the end-client whose with active connection to Exchange server only.

Features

  • Hierarchical tags
  • Keyboard bindings
  • Support SQLite and Postgres
  • Custom thumbnail
  • Show releases and statistical information if available
  • Fill bookmark information by meta tags
  • Classify releases into channels, e.g. stable & nightly (Done in Exchange server but the provider panel is WIP.)
  • Extract related providers from README.md (WIP)
  • Publish share to exchange server (WIP)
  • Filter by provider information (WIP)
  • Provider panel to show detail (WIP)

Supported Providers

  • Git
  • GitHub
  • NPM
  • Docker
  • YouTube

Design

component

Pinmonl

The bookmark manager and by default, connects to the exchange server at pinmonl.io. It stores latest stats only and fetch completed stats directly from exchange server on detail page.

Exchange Server

It is designed to handle resource-intensive tasks and aggregate bookmark count. In order to provide higher flexibility on git repository integration, tags are retrieved by git clone command regardless of the providers while star, issue count are relied on the providers' API. Implying that the server may be running at a rate of intensive disk IO and space usage when handling large repository.

When new releases are detected, the server becomes a publisher to notify Pinmonls according to the subscribed repository. At the first startup, each Pinmonl instance will create a machine account and maintain a websocket connection to the server (WIP). Bokmarks are uploaded through the machine account and which will be treated as the subscribed topics. Only IP address is collected for machine account as to avoid duplication in the bookmark count feature.

Besides, the Exchange server manages and shows bookmark sharings after register a user account.

Screenshot

screenshot1

Future Plan

  • Support more providers, e.g. Helm, PyPI, Facebook, Twitter, etc.
  • Browser extensions
  • Mobile apps
  • Data import and export
  • Tag with value
  • Custom tag color
  • Tag based sorting
  • Webhook, client-side only
  • Custom styling of share
  • Preset : to show bookmarks with predefined conditions

Getting started

Docker
docker run -d \
  -p 3399:3399 \
  --name pinmonl \
  pinmonl/pinmonl

If you would like to self host the Exchange server.

docker run -d \
  -p 8080:8080 \
  -e PINMONL_DB_DRIVER=sqlite3 \
  -e PINMONL_DB_DSN=exchange.db \
  --name pinmonl-exchange \
  pinmonl/exchange

docker run -d \
  -p 3399:3399 \
  -e PINMONL_EXCHANGE_ADDRESS=http://localhost:8080 \
  --name pinmonl \
  pinmonl/pinmonl

License

MIT License.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL