espial: Espial is an open-source, web-based bookmarking server.

[ agpl, library, mit, web ] [ Propose Tags ]

Espial is an open-source, web-based bookmarking server. - Yesod + PureScript + sqlite3 - multi-user (w/ privacy scopes) - tags, stars, editing, deleting


[Skip to Readme]
Versions [faq] 0.0.1, 0.0.2, 0.0.3, 0.0.4, 0.0.5, 0.0.5.1, 0.0.7
Change log changelog.md
Dependencies aeson (>=1.4), attoparsec, base (>=4.8.2.0 && <4.9 || >=4.9.1.0 && <5), bcrypt (>=0.0.8), bytestring (>=0.9 && <0.11), case-insensitive, classy-prelude (>=1.4 && <1.6), classy-prelude-conduit (>=1.4 && <1.6), classy-prelude-yesod (>=1.4 && <1.6), conduit (>=1.0 && <2.0), containers, data-default, directory (>=1.1 && <1.4), ekg, ekg-core, entropy, espial, esqueleto, fast-logger (>=2.2 && <2.5), file-embed, foreign-store, hjsmin (>=0.1 && <0.3), hscolour, http-api-data (>=0.3.4), http-client, http-client-tls (==0.3.*), http-conduit (==2.3.*), http-types, iso8601-time (>=0.1.3), microlens, monad-logger (==0.3.*), monad-metrics, mtl, optparse-generic (>=1.2.3), parser-combinators, persistent (>=2.8 && <2.10), persistent-sqlite (>=2.6.2), persistent-template (>=2.5 && <2.9), pretty-show, safe, shakespeare (==2.0.*), template-haskell, text (>=0.11 && <2.0), time, transformers (>=0.2.2), unordered-containers, vector, wai, wai-extra (==3.0.*), wai-logger (>=2.2 && <2.4), wai-middleware-metrics, warp (>=3.0 && <3.3), yaml (>=0.8 && <0.12), yesod (==1.6.*), yesod-auth (==1.6.*), yesod-core (==1.6.*), yesod-form (==1.6.*), yesod-static (==1.6.*) [details]
License AGPL-3.0-only
Copyright Copyright (c) 2018 Jon Schoning
Author Jon Schoning
Maintainer jonschoning@gmail.com
Category Web
Home page https://github.com/jonschoning/espial
Bug tracker https://github.com/jonschoning/espial/issues
Source repo head: git clone git://github.com/jonschoning/espial.git
Uploaded by jonschoning at Thu Jan 31 02:55:27 UTC 2019
Distributions NixOS:0.0.7
Executables migration, espial
Downloads 543 total (149 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs not available [build log]
All reported builds failed as of 2019-01-31 [all 3 reports]

Modules

  • Application
  • Foundation
  • Generic
  • Handler
    • Handler.AccountSettings
    • Handler.Add
    • Handler.Archive
    • Handler.Common
    • Handler.Docs
    • Handler.Edit
    • Handler.Home
    • Handler.Notes
    • Handler.User
  • Import
    • Import.NoFoundation
  • Model
  • ModelCustom
  • PathPiece
  • Pretty
  • Settings
    • Settings.StaticFiles
  • Types

Flags

NameDescriptionDefaultType
dev

Turn on development settings, like auto-reload templates.

DisabledAutomatic
library-only

Build for use with "yesod devel"

DisabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for espial-0.0.7

[back to package description]

Espial

Espial is an open-source, web-based bookmarking server.

It allows mutiple accounts, but currently intended for self-host scenarios.

The bookmarks are stored in a sqlite3 database, for ease of deployment & maintenence.

The easist way for logged-in users to add bookmarks, is with the "bookmarklet", found on the Settings page.

demo server

log in — username: demo password: demo

https://esp.ae8.org/u:demo

jpg

Server Setup (from source)

  1. Install Stack

    • On POSIX systems, this is usually curl -sSL https://get.haskellstack.org/ | sh
  2. Build executables

    stack build
    
  3. Create the database

    stack exec migration -- createdb --conn espial.sqlite3
    
  4. Create a user

    stack exec migration -- createuser --conn espial.sqlite3 --userName myusername --userPassword myuserpassword
    
  5. Import a bookmark file for a user (optional)

     stack exec migration -- importbookmarks --conn espial.sqlite3 --userName myusername --bookmarkFile sample-bookmarks.json
    
  6. Start a production server:

    stack exec espial -- +RTS -T
    

see config/settings.yml for changing default run-time parameters / environment variables

default app http port: 3000

default ekg http port: 8000

ssl: use reverse proxy

Development

Backend

  • Install the yesod command line tool: stack install yesod-bin --install-ghc
  • Start a development server:

    yesod devel
    

Frontend

  • See purs/ folder

Import Bookmark file format

see sample-bookmarks.json, which contains a JSON array, each line containing a FileBookmark object.

example:

[ {"href":"http://raganwald.com/2018/02/23/forde.html","description":"Forde's Tenth Rule, or, \"How I Learned to Stop Worrying and \u2764\ufe0f the State Machine\"","extended":"","time":"2018-02-26T22:57:20Z","shared":"yes","toread":"yes","tags":"raganwald"},
, {"href":"http://downloads.haskell.org/~ghc/latest/docs/html/users_guide/flags.html","description":"7.6. Flag reference \u2014 Glasgow Haskell Compiler 8.2.2 User's Guide","extended":"-fprint-expanded-synonyms","time":"2018-02-26T21:52:02Z","shared":"yes","toread":"no","tags":"ghc haskell"},
]