Infoharvest is a bookmark management tool that enables users to collect and store interesting online content for easy access and management.
Similar to browser bookmarks, InfoHarvest aims to enhance the bookmarking experience by adding additional information such as descriptions, while still maintaining simplicity and avoiding excessive clutter. Unlike note-taking or blogging platforms, InfoHarvest focuses solely on the collection and organization of information.
Collecting valuable information can be challenging, especially when it comes to "harvesting" content that is personally relevant. With InfoHarvest, you can effectively maintain and manage your collection of useful resources.
InfoHarvest addresses the following common scenarios:
-
Adding Descriptions: Unlike traditional bookmarks that only provide a title and URL, InfoHarvest allows users to add descriptions to their bookmarks. This feature enables users to provide context and remember why they bookmarked a particular resource.
-
Controlled Hierarchy: InfoHarvest avoids deep nesting of bookmarks, which can make them difficult to find and manage. By controlling the hierarchy, users can easily navigate and locate their bookmarks without getting lost in complex folder structures.
-
Synchronization and Centralization: InfoHarvest provides a centralized platform for bookmark management, overcoming the challenge of scattered bookmarks across different browsers or accounts. With InfoHarvest, you can synchronize and access your bookmarks from multiple devices and browsers.
-
Private Deployment: InfoHarvest supports self-hosted deployment, allowing users to maintain full control over their bookmark data and ensuring privacy.
-
Keyword Search: InfoHarvest offers a robust search functionality, empowering users to quickly find specific bookmarks using keywords or tags.
-
Enhanced Bookmark Information: Apart from titles and URLs, InfoHarvest allows users to enrich their bookmarks with additional information such as descriptions, categories, and tags. This feature enables better organization and context for each bookmark.
-
Bookmark History: InfoHarvest keeps track of bookmark history, allowing users to revisit previously accessed resources and keep a record of their browsing activities.
-
Import and Export: InfoHarvest supports the import and export of bookmarks, making it easy to migrate from other bookmarking tools or share bookmarks with others.
-
Browser Bookmark Parsing: InfoHarvest provides the ability to parse browser bookmarks, allowing users to conveniently import their existing bookmarks from supported browsers.
Welcome to InfoHarvest, a bookmark management tool. InfoHarvest offers a free cloud environment where you can try out the online version of the tool.
If you prefer to deploy the Bookmark Management Tool on your own server, please refer to the instructions for private deployment below.
InfoHarvest is developed using NestJS 10 and Next.js 14、DaisyUI. It is designed for single-user management without the need for an administrative backend. The database used is MySQL 8. The architecture follows a frontend-backend separation, with the "web" directory belonging to the frontend UI.
Below are the steps to set up and run InfoHarvest for local development:
-
First, clone this repository by running the following command:
git clone https://github.com/dafengzhen/infoharvest.git
-
Navigate to the cloned repository directory and modify the configuration file (.env) for the backend service. This file primarily includes the database configuration.
-
Once the configuration is completed, prepare to run the backend service. Install the dependencies using npm:
npm install
-
Start the service. By default, it runs on port 8080:
npm run dev
Note: You can also modify the app.listen function in the src/main.ts file to change the port.
-
Refer to the package.json file for other available commands.
-
For easier debugging, the Insomnia file
src/resource/http_insomnia.json
is provided.Insomnia is an open-source, cross-platform API client that is very convenient for API debugging. You can download it from Github.
After downloading, import the provided
src/resource/http_insomnia.json
file to start debugging and developing the Infoharvest service.
-
Go to the "web" directory:
cd web
-
Install the dependencies using npm:
npm install
-
Start the frontend service. By default, it runs on port 3000:
npm run dev
Note: You can modify the port by editing the relevant configuration in the src/main.ts file under the "app.listen" section.
-
Refer to the package.json file for other available commands.
These are the steps to set up and run InfoHarvest for local development.
InfoHarvest utilizes Docker for deployment, reducing the complexity of environment setup.
Clone the repository using the following command:
git clone https://github.com/dafengzhen/infoharvest.git
Make sure you have MySQL 8 installed and create a database based on the .env
configuration file in the repository directory. For example, the default database name is infoHarvest
.
-
Update the
.env
configuration file with the necessary database information. -
Run the following command in the current directory to build the backend service:
docker build infoharvest .
By default, the backend service will run on port 8080.
-
Navigate to the
web
folder:cd web
-
Update the
web/.env
configuration file with the required API information. -
Run the following command in the current directory to build the frontend service:
docker build infoharvest-web .
By default, the frontend service will run on port 3000.
Once the backend and frontend services are built, you can run the services using the docker run
command.
For example
docker run --restart=always -d -p 8080:8080 infoharvest
docker run --restart=always -d -p 3000:3000 infoharvest-web
For feedback, questions, or support, please open an issue ↗ on GitHub.
InfoHarvest is released under the MIT License