{"id":13447004,"url":"https://github.com/mike-engel/bkmrkd","last_synced_at":"2025-03-21T17:30:37.842Z","repository":{"id":143860367,"uuid":"21332608","full_name":"mike-engel/bkmrkd","owner":"mike-engel","description":"Bkmrkd is a self-hosted, lightweight bookmarking service run on node.js and rethinkdb","archived":true,"fork":false,"pushed_at":"2018-02-18T20:59:03.000Z","size":2633,"stargazers_count":52,"open_issues_count":3,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-22T17:39:00.470Z","etag":null,"topics":["bookmark","docker","elm","functional-programming","javascript","postgresql","self-hosted"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mike-engel.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2014-06-29T21:27:04.000Z","updated_at":"2025-01-03T10:16:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"68d40c5b-eb92-42d5-94bd-302800e62df9","html_url":"https://github.com/mike-engel/bkmrkd","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mike-engel%2Fbkmrkd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mike-engel%2Fbkmrkd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mike-engel%2Fbkmrkd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mike-engel%2Fbkmrkd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mike-engel","download_url":"https://codeload.github.com/mike-engel/bkmrkd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244838004,"owners_count":20518760,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bookmark","docker","elm","functional-programming","javascript","postgresql","self-hosted"],"created_at":"2024-07-31T05:01:05.546Z","updated_at":"2025-03-21T17:30:37.413Z","avatar_url":"https://github.com/mike-engel.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# bkmrkd\n\n[![Greenkeeper badge](https://badges.greenkeeper.io/mike-engel/bkmrkd.svg)](https://greenkeeper.io/)\n[![Build Status](https://travis-ci.org/mike-engel/bkmrkd.svg?branch=master)](https://travis-ci.org/mike-engel/bkmrkd)\n![Dependencies](https://david-dm.org/mike-engel/bkmrkd.svg)\n\nbkmrkd is a self-hosted, lightweight bookmarking service running on [node.js](https://nodejs.org), and [elm](https://elm-lang.org).\n\n- [installation](#installation)\n- [running in a production environment](#running-in-a-production-environment)\n- [developing](#developing)\n- [migrating](#migrating)\n- [contributing](#contributing)\n- [screenshots](#screenshot)\n- [roadmap](#roadmap)\n- [license](LICENSE.md)\n\n# installation\n\n## assumptons\n\n1. You have node.js \u003e= 6 installed\n2. You have npm \u003e= 5 installed\n3. You either have postgres running, or have docker-compose installed\n\n## running bkmrkd\n\nAs of version 3, all configuration is done through environment variables. For the list of environment variables, see [.env.sample](.env.sample).\n\n### via docker (recommended)\n\n```sh\n# using an env file\ndocker run --env-file .env beardfury/bkmrkd\n\n# specifying env vars separately\ndocker run \\\n  -e DB_HOST=localhost \\\n  -e DB_NAME=bkmrkd_development \\\n  ...etc\n```\n\n## saving\n\nSimply drag the bookmarklet to your bookmarks bar and click it on a webpage you want to save.\n\n# running in a production environment\nSo you want to run this for real. On the web. That's awesome. Everyone will want this to be setup differently, but this is how I've approached it.\n\n1. Create an hosted PostgreSQL DB solution (Amazon RDS, Azure, Google, etc)\n2. Deploy to [now](https://now.sh)\n\n# developing\n\nTo work on bkmrkd locally, you'll want to start the node server for back end dev, the elm watcher for front end dev, or both.\n\n```shell\n# create the env file\ncp .env.sample .env\n\n# if you have docker and docker-compose installed\ndocker-compose up -d\n\n# create the test database\ncreatedb -h localhost -p 5432 -U postgres bkmrkd_test\n\n# start the server in development mode\nnpm start | ./node_modules/.bin/bunyan\n\n# start the elm watcher\nnpm run watch:elm\n```\n\n# migrating\n\nThe migration from 2.0 to 3.0 is pretty simple thanks to the awesome export capabilities of RethinkDB.\n\nFirst, you'll want to download your existing bookmarks. From the computer with RethinkDB installed, dump the production database.\n\n```sh\nrethinkdb dump -f db-dump.tar.gz -e bkmrkd_production\n```\n\nOnce it's dumped and downloaded to your computer (or do this remotely if you want), untar the tarball and look for the JSON file with all your bookmarks. Once you have that, run the migration script and assuming your `.env` file is currently pointed towards production, it should all work smoothly.\n\n```sh\n./scripts/migrate/rethink-to-postgresql ./path/to/json/file.json\n```\n\n# contributing\n\nPlease make a pull request! bkmrkd uses [prettier](https://github.com/prettier/prettier) for all JS development. For elm development, [elm-format](https://github.com/avh4/elm-format) should be used.\n\n# screenshot\n![Desktop screenshot](screenshots/desktop.png)\n\n# roadmap\n\nTo keep track of the roadmap, I'm using [issues](https://github.com/mike-engel/bkmrkd/issues).\n\n# [changelog](CHANGELOG.md)\n\n# [code of conduct](CODE_OF_CONDUCT.md)\n\nPlease note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.\n\n# [license](LICENSE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmike-engel%2Fbkmrkd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmike-engel%2Fbkmrkd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmike-engel%2Fbkmrkd/lists"}