Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jonschoning/espial
Espial is an open-source, web-based bookmarking server.
https://github.com/jonschoning/espial
bookmark bookmarking-server database demo haskell purescript
Last synced: about 2 months ago
JSON representation
Espial is an open-source, web-based bookmarking server.
- Host: GitHub
- URL: https://github.com/jonschoning/espial
- Owner: jonschoning
- License: agpl-3.0
- Created: 2018-04-10T00:17:07.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-01-27T05:49:19.000Z (4 months ago)
- Last Synced: 2024-01-27T22:33:59.540Z (4 months ago)
- Topics: bookmark, bookmarking-server, database, demo, haskell, purescript
- Language: Haskell
- Homepage:
- Size: 28.3 MB
- Stars: 728
- Watchers: 21
- Forks: 24
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Changelog: changelog.md
- License: LICENSE
- Security: SECURITY.md
Lists
- awesome - espial - Espial is an open-source, web-based bookmarking server. (Haskell)
- awesome-selfhosted - Espial - An open-source, web-based bookmarking server. `AGPL-3.0` `Haskell` (Software / Bookmarks and Link Sharing)
- awesome-selfhosted123 - Espial - An open-source, web-based bookmarking server. `AGPL-3.0` `Haskell` (Bookmarks and Link Sharing)
- awesome-stars - jonschoning/espial - Espial is an open-source, web-based bookmarking server. (Haskell)
- awesome_AF - Espial - An open-source, web-based bookmarking server. `AGPL-3.0` `Haskell` (Software / Bookmarks and Link Sharing)
- awesome-selfhosted - Espial - An open-source, web-based bookmarking server. `AGPL-3.0` `Haskell` (Software / Bookmarks and Link Sharing)
- awesome-stars - jonschoning/espial - Espial is an open-source, web-based bookmarking server. (Haskell)
- awesome-stars - jonschoning/espial - Espial is an open-source, web-based bookmarking server. (Haskell)
- awesome-stars - jonschoning/espial - Espial is an open-source, web-based bookmarking server. (Haskell)
- awesome-stars - espial - source, web-based bookmarking server. | jonschoning | 499 | (Haskell)
- awesome-selfhosted - Espial - An open-source, web-based bookmarking server. `AGPL-3.0` `Haskell` (Bookmarks and Link Sharing)
- awesome-stars - jonschoning/espial - Espial is an open-source, web-based bookmarking server. (Haskell)
- awesome-selfhosted - Espial - An open-source, web-based bookmarking server. `AGPL-3.0` `Haskell` (Bookmarks and Link Sharing)
- fucking-awesome-selfhosted - Espial - An open-source, web-based bookmarking server. `AGPL-3.0` `Haskell` (Software / Bookmarks and Link Sharing)
- awesome-selfhosted - Espial - An open-source, web-based bookmarking server. `AGPL-3.0` `Haskell` (Bookmarks and Link Sharing)
- awesome-selfhosted - Espial - An open-source, web-based bookmarking server. `AGPL-3.0` `Haskell` (Bookmarks and Link Sharing)
- awesome-stars - jonschoning/espial - `★749` Espial is an open-source, web-based bookmarking server. (Haskell)
README
# 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.
Also, see the android app for adding bookmarks via an Android Share intent https://github.com/jonschoning/espial-share-android
## demo server
log in — username: demo password: demo
https://esp.ae8.org/u:demo
![jpg](https://i.imgur.com/jdnV93c.png)
## Docker Setup
see https://github.com/jonschoning/espial-docker
## Server Setup (from source)
1. Install the Stack executable here:
- https://tech.fpcomplete.com/haskell/get-started2. 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 pinboard bookmark file for a user (optional)
```
stack exec migration -- importbookmarks --conn espial.sqlite3 --userName myusername --bookmarkFile sample-bookmarks.json
```6. Import a firefox bookmark file for a user (optional)
```
stack exec migration -- importfirefoxbookmarks --conn espial.sqlite3 --userName myusername --bookmarkFile firefox-bookmarks.json
```7. Start a production server:
```
stack exec espial
```### Configuration
See `config/settings.yml` for changing default run-time parameters & environment variables.
- `config/settings.yml` is embedded into the app executable when compiled, so after changing `config/settings.yml`, run `stack build` again to apply the new settings.
- `config/settings.yml` values formatted like `_env:ENV_VAR_NAME:default_value` can be
overridden by the specified environment variable.
- Example
- `_env:PORT:3000`
- environment variable `PORT`
- default app http port: `3000`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 (pinboard compatible 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"},
]
```