Hidoc is a lightweight and simple online knowledge documentation sharing system, suitable for team document sharing.
Chinese documentation please refer to: README.md English documentation please refer to: README.EN.md
As an independent project with high flexibility, the component versions will be updated and upgraded periodically.
After upgrading key components, development will continue on the main branch for further research.
Older versions without component upgrades will be backed up in branches, and backup information will be continuously recorded.
Creation Date | Branch | Status | Technical Details |
---|---|---|---|
- | main | In Progress | JDK21 + SPRING 3.0 + PostgreSQL13^ |
2023-11-13 | 2.0.0 | Completed | JDK17 + SPRING 3.0 + PostgreSQL13^ |
2023-09-25 | 1.0.0 | Completed | JDK8 + SPRING 2.7.2 + PostgreSQL13^ |
- Create documents using standard
Markdown
. - Support for
template definition
and applyingtemplate
content. - Support for
referencing documents
to insertrelated document links
and build aknowledge graph
. - Quickly duplicate documents.
- Copy-paste images for automatic upload.
- Insert
code
with support for multiple languages,syntax highlighting
, andline highlighting
. - Support for
mermaid
diagrams, enablingflowcharts
,mind maps
, and other custom illustrations. - Record all modification history and retain
version history
.
- Open
collaboration
features, allowingteam members
to co-maintain documents. - Collaboration includes a
locking
mechanism to avoid editing conflicts.
- Rich permission management capabilities to ensure security.
- Registration supports
enterprise email restrictions
. - Frontend supports
host
filtering to restrict certain entryhosts
tologin-only
usage. - Document collections can be set to
public
orprivate
. - Document collections can require
login to view
. - Invite
collaborators
to edit document collections.
- Provide a
table of contents
for an overview of all documents. - Provide an
outline panel
for quick navigation to specificsections
. - Support
full-text search
within document collections for easy querying. Large font
display for comfortable reading.- Display editing information, showing editors and edit timestamps.
- Support for
reading statistics
to understand document popularity.
- Support for
comments
andreplies
for simple Q&A. - A
comment summary
in the workspace ensures no information is missed. - Support for
likes
to enhance authorsatisfaction
.
- Provide a
streamlined
cloud storage
service for uploading and downloading files. - Unique
URL
for downloads based on username. - Support for
multi-version management
of files with the same name, automatically using thelatest version
. - Precise
file quota
control to manage user storage usage. - Support for file
deletion
andrecovery
from the recycle bin for up to180 days
. - Extract file
fingerprints
to avoid duplicate storage for files with the same fingerprint. - Fixed download links to support simple
software updates
.
- Support for
code comments
documentation for easysearching
, viewing, and display. - Support for bulk uploading and
structural analysis
of packaged code. - Rich comment
segmentation
support, including descriptions, scenarios, directories, constraints, examples, and modification records. - Support for multiple
views
to browse code, such as search mode, directory mode, and package mode. - Intuitive display of code and comment information on the page.
- Support for custom
data collection plans
. - Support for
API-based data
reception. - Support for setting
start and end times
for data collection.
- Support for configuring
SSH
connections toLinux
servers. - Support for
SSH
remote execution and viewing ofexecution results
.
- Support for rule-based
restriction
settings. - Support for lightweight client software
authorization restrictions
.
- Support for multi-language extension settings.
- Dynamic language switching during usage.
- Frontend and backend separation for
flexible deployment
as needed. - Multiple frontend deployments to support
different login requirements
. - Backend runs as a standalone
jar
package withone-click startup
for convenience. - Database uses the powerful
PostgreSQL
, offering excellent performance and supportingbillion-level
data. - Files are stored in a specified
directory
, facilitatingmigration
andbackup
. - Suitable for deployment in various network environments, ensuring data security for different users.
- The product is updated periodically for continuous improvement.
- Periodically add interesting features.
- Online cloud storage: File sharing and downloading (see above description).
- Code documentation: Code comment construction (see above description).
- Data collection: Data collection and summary (see above description).
- Service management: SSH service invocation (see above description).
- Rule restrictions: Restriction matching interface (see above description).
Structure and organize documents for easy management, classification, and readability.
Ideal for summarizing and preserving team knowledge, fostering long-term team development.
Create standardized manuals and onboarding guides for new members to reduce training costs and accelerate integration.
Document technical research for team learning and collective progress.
Manage public files and share software or documents.
Build structured and searchable code documentation.
Collect and summarize random and discrete data.
Use Linux servers within the team and allow SSH scripts and automated processing.
Demo Link
Account/Password: duanyu / duanyu
Developed with Java SpringBoot, it supports scalable development based on the Spring ecosystem.
Highly suitable for developers using the VUE and SpringBoot technology stack, offering great flexibility and extensibility.
Note: The current development approach avoids using heavyweight middleware.
- VUE3 frontend framework
- ElementUI Plus frontend UI framework
- v-md-editor Markdown editor
- SpringBoot
- Mybatis & MybatisPlus
- ehcache in-memory caching
- lombok
- fastjson for JSON processing
- druid database connection pool
- javaparser for Java code parsing
- jsoup for HTML text parsing
- javax.mail for email sending
- emoji-java for emoji processing
- PostgreSQL
Install PostgreSQL 13.
Note: Due to the use of JSON types and other features of PostgreSQL, only PostgreSQL is supported.
After installation, configure the database connection information in the Java service's yml configuration file.
First, modify the backend address in the frontend directory's config.js
file by updating the IP address and port.
Configuration example:
var config = {
name: 'yuzhengyang',
baseServer: 'http://101.132.159.3:24001/',
imageServer: 'http://101.132.159.3:24001/f/d/u/'
};
Deploy the frontend using nginx with the following configuration:
user root;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8080;
server_name localhost;
location / {
root /home/app/hidoc/hidoc-web;
try_files $uri $uri/ /index.html;
}
}
}
Run the backend as a packaged Jar file with the following command:
nohup java -Dfile.encoding=utf-8 -jar hidoc-app-0.0.1-SNAPSHOT.jar --spring.config.location=application.yml > ./nohup_output &
Please comply with the GPL-3.0 license.
Users of the open-source version must retain the Hidoc Documentation
copyright notice and are prohibited from modifying or removing it.
Violation of this rule may result in legal action by the developer.
Email: [email protected]