Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

简体中文 | English

Obsidian Web (PHP 版)

基于 PHP 7.3+ 开发的独立 Obsidian Web 端系统,无需 Node.js 环境即可在浏览器中顺畅运行 Obsidian。


🌐 项目来源

本程序后端基于开源项目 Ignis(Obsidian Web 桥接端)重构为纯 PHP 版本,前端整合了 Obsidian 官方的客户端核心运行环境。


🚀 快速启动与安装

Important

关于 Obsidian 官方静态资源: 根据 Obsidian 官方最终用户许可协议(EULA),本项目代码仓库不内置打包 Obsidian 官方核心文件

  • 在线一键安装(推荐):首次访问 /install 完成管理员账号配置后,系统会自动引导进入内置的 Web 下载器(tools/obsidian-downloader.php),在浏览器端一键完成核心资源的下载与安全原子部署;
  • 离线手动部署:支持将官方 asar 解包后的文件放置在 assets/obsidian/ 目录下。

安装步骤:

  1. 将本程序完整文件夹放置在您的 PHP 运行环境(如 phpStudy、宝塔面板、Nginx、Apache 等支持 PHP 7.3+ 的 Web 服务器或虚拟主机)站点根目录下。
  2. 在浏览器中直接访问您配置的域名或端口(如 http://localhost:8080/),进入安装向导。
  3. 按照向导设置管理员账号,并根据引导一键初始化 Obsidian 核心资源即可进入系统。

📌 快捷网址与访问路径

系统支持 RESTful 优雅路由Query 传统兼容路由 两种模式:

功能 RESTful 优雅模式 (需配置伪静态) Query 传统兼容模式 (免配置全兼容)
初始化安装 http://localhost:8080/install http://localhost:8080/index.php?s=/install
Obsidian 网页主界面 http://localhost:8080/ http://localhost:8080/index.php?s=/
核心资源下载/升级工具 http://localhost:8080/tools/obsidian-downloader.php http://localhost:8080/tools/obsidian-downloader.php
登录页面 http://localhost:8080/login http://localhost:8080/index.php?s=/login
设置中心 (修改密码) http://localhost:8080/pwd http://localhost:8080/index.php?s=/pwd
安全退出登录 http://localhost:8080/logout http://localhost:8080/index.php?s=/logout

💡 提示

  • 核心资源下载工具(tools/obsidian-downloader.php)具有严格的访问权限控制,未登录访客无法随意访问。
  • 修改密码(设置中心)除了支持 /pwd 路由外,系统还同时兼容 /pass/password/change-password 三个别名路径。

⚙️ 双路由模式设计原理

  1. 解决 404 痛点:部分虚拟主机或服务器无权限/未配置伪静态,直接访问 /login/install 会报 404。
  2. 零门槛兼容Query 模式 (index.php?s=...) 显式请求 index.php,无须任何伪静态配置即可 100% 开箱即用。
  3. 智能体验:未安装时默认使用 index.php?s=/install 保障首次成功访问;安装界面支持【⚡ 自动检测环境路由】并一键匹配最优模式。

🔄 如何更新最新的资源文件

如果您后续需要升级 Obsidian 官方核心客户端,支持以下方式:

方式 1:Web 端一键安全升级(推荐)

登录管理员账号后,访问 http://localhost:8080/tools/obsidian-downloader.php,选择或输入最新版本号即可一键执行安全原子替换升级(自动校验健康度,解压失败自动回滚)。

方式 2:手动更新

  • 下载来源:从 Obsidian 官方 Releases 仓库 下载最新桌面安装包解压提取,或从官方静态 CDN 节点获取。
  • 替换目标位置:将提取出的 app.jsapp.cssi18n/ 文件夹及 lib/ 文件夹直接放置到 assets/obsidian/ 目录下。

2. 更新 Ignis 客户端桥接脚本 (ignis-ui.jsshim-loader.js)

  • 源码仓库Ignis GitHub 仓库
  • 直接获取方式 (免编译下载)
    • 前端 UI 脚本:https://ignis-demo.thiefling.com/ignis-ui.js
    • 环境适配脚本:https://ignis-demo.thiefling.com/shim-loader.js
  • 源码自行编译命令 (Node.js + pnpm 环境)
    # 1. 克隆源码并安装依赖
    git clone https://github.com/Nystik-gh/ignis.git
    cd ignis
    pnpm install
    
    # 2. 编译生成 shim-loader.js 与 ignis-ui.js
    pnpm --filter @ignis/shim build    # 编译输出在 packages/shim/dist/shim-loader.js
    pnpm --filter @ignis/ui build      # 编译输出在 packages/ui/dist/ignis-ui.js
  • 替换目标位置
    • ignis-ui.js 覆盖至 assets/ui/ignis-ui.js
    • shim-loader.js 覆盖至 assets/shim/shim-loader.js

📁 目录说明

wwwroot/
├── index.php         # 系统路由总入口(支持 RESTful 与 Query 传统双模式)
├── assets/           # 前端静态资源目录
│   ├── ui/           # Ignis UI 界面包装脚本 (ignis-ui.js)
│   └── shim/         # 浏览器环境适配与拦截器 (shim-loader.js)
├── data/             # 数据库与运行时配置目录(SQLite 数据文件、安装锁等)
├── src/              # 后端核心源码(MVC 控制器、鉴权认证、数据库服务)
├── tools/            # 独立运维与资源工具目录
│   └── obsidian-downloader.php  # Web 端官方核心资源安全下载与原子部署向导
└── vaults/           # 用户的 Markdown 笔记库(Vaults)实际存储目录

📄 开源协议与商业化声明

  1. 开源协议与衍生说明
    • 本项目基于开源项目 Ignis(版权归原作者 Nystik 所有,遵循 AGPL-3.0 协议)重构与衍生。
    • 本项目原创的 PHP 后端服务(src/)、路由入口(index.php)及前端适配补丁脚本遵循 GNU AGPL-3.0 协议 开源,受版权法保护并享有署名权。
  2. Obsidian 官方资产
    • assets/obsidian/ 目录下的核心文件属于 Obsidian 官方专有资产。其版权及使用条款需严格遵循 Obsidian 官方最终用户许可协议 (EULA),非开源授权范围。
  3. 商业与网络服务使用限制
    • 任何基于本项目提供网络服务(如 SaaS 部署)或二次分发的行为,均需遵循 AGPL-3.0 协议向用户开源对应改动的完整源码并保留原作者及本项目署名。
    • 本项目的日常使用需严格遵守 Obsidian 官方的商业授权协议,个人非商业使用完全免费;若将本系统部署并用于商业性日常工作,使用者需自行向 Obsidian 官方购买商业授权。

About

⚡ 基于 PHP 7.3+ 的轻量级 Obsidian Web 端,无需 Node.js,支持双路由全环境开箱即用。Lightweight standalone Obsidian Web environment built with pure PHP 7.3+. No Node.js required, zero-config dual routing.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages