Linky is a tag-based bookmark manager written in Node/React and uses MongoDB for persistence.
Note: The demo runs Linky without a user and hence you cannot add or remove links!
- Node `>= 8.0`
- MongoDB `>= v3.2.11` up and running
Backend:
The available configuration options are specified in linky-api/config.js.example. Copy this file to linky-api/config.js and change the parameters as per your needs.
Since Linky was designed to be used as a personal tool, signing up new users is currently not implemented. When you first deploy Linky, a new user is created using the username/password provided in config.js.
Frontend:
The frontend configuration options are specified in linky-website/src/config.js.example. Copy this file to linky-api/src/config.js and change the ApiURL to point to your backend installation.
If you intend to run Linky in a sub-path rather than at the server root (https://mydomain.com/linky instead of https://mydomain.com):
> echo "BASE_PATH=https://<server root>" > ./linky-website/.env
You will also need to set the the baseName to the base path of Linky in this case, eg: export const BaseName = "/linky"
The frontend is a browser-rendered React app created using create-react-app. You can refer to its README for any further customisations.
Backend:
Ensure you have MongoDB up and running. And then:
cd linky-api npm install node app.js
Frontend:
cd linky-website npm install npm run build node server.js
You can edit linky-website/server.js to change the server port or do any other custom actions. By default the api is served on port 3060 and the website on port 3061.
The homepage allows specifying tags to select as a query parameter: https://mydomain.com?tags=design,work.
The add-link path allows you to specify the url to add as a query parameter: https://mydomain.com/add?link=<url>
- Allow editing and deleting tags
- Allow logical operations between tags, eg:
'tools' && 'design' - Allow saving a filter as a bookmark
- Show proper loading animations and error messages
