首页
/ d-note 项目安装与部署指南

d-note 项目安装与部署指南

2025-07-10 10:12:56作者:袁立春Spencer

项目概述

d-note 是一个基于 Python Flask 框架开发的轻量级 Web 应用程序,主要用于安全笔记管理。本文将详细介绍如何在 Linux 系统上安装和部署 d-note 项目,包括 Apache 和 Nginx 两种主流 Web 服务器的配置方案。

环境准备

系统要求

  • Debian/Ubuntu 系统(其他 Linux 发行版可参考类似步骤)
  • Python 运行环境
  • Web 服务器(Apache 或 Nginx)

依赖安装

首先需要安装必要的 Python 依赖包:

sudo apt-get install python-flask python-crypto

注意:python-crypto 包应确保来自官方源,这是加密功能正常运行的关键依赖。

项目配置

初始化安装

执行以下命令完成基础安装:

python setup.py install

此命令会创建必要的配置文件和数据存储目录。

配置文件设置

  1. 编辑项目目录中的 dnote.ini 文件
  2. 修改 [default] 部分下的 config_path
    • 推荐路径:/etc/dnote~/.dnote
  3. 将修改后的 dnote.ini 复制到指定目录

生成安全哈希

运行以下命令生成安全配置:

generate_dnote_hashes

此命令会在配置目录中创建 dconfig.py 文件,其中包含随机生成的十六进制字符串作为加密盐值,这是保证数据安全的重要步骤。

Apache 部署方案

安装必要组件

sudo apt-get install libapache2-mod-wsgi

创建 WSGI 入口文件

在 Web 根目录创建 /var/www/dnote.wsgi 文件,内容如下:

#!/usr/bin/python
import sys
import logging
logging.basicConfig(stream=sys.stderr)
from dnote import DNOTE as application

Apache 站点配置

创建 /etc/apache2/site-available/ 配置文件,以下是关键配置示例(强烈建议使用 SSL):

<Virtualhost *:443>
    DocumentRoot /var/www/
    ServerName www.example.com
    WSGIScriptAlias / /var/www/dnote.wsgi
    
    <Directory /var/www/>
        Options -Indexes FollowSymLinks
    </Directory>
    
    Alias /d/static /var/www/dnote/static
    <Directory /var/www/dnote/static/>
        Order allow,deny
        Allow from all
    </Directory>

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/www_example_com.crt
    SSLCertificateKeyFile /etc/ssl/private/www_example_com.key
    SSLHonorCipherOrder On
</VirtualHost>

重启 Apache 服务

sudo service apache2 restart

Nginx 部署方案

安装 uWSGI

sudo apt-get install uwsgi uwsgi-core uwsgi-extra uwsgi-plugin-python

创建 uWSGI 配置文件

在应用目录创建 /var/www/dnote/uwsgi.ini

[uwsgi]
socket = 127.0.0.1:8081
chdir = /python/path/site-packages/dnote-1.0.1-py2.7.egg/dnote
plugin = python
module = __init__:dnote
processes = 4
threads = 2
stats = 127.0.0.1:9192
uid = www-data
gid = www-data
logto = /var/log/dnote.log

启动 uWSGI

前台运行:

/usr/bin/uwsgi -c /var/www/dnote/uwsgi.ini

后台运行:

/usr/bin/uwsgi -d -c /var/www/dnote/uwsgi.ini

Nginx 配置

在站点配置中添加以下内容(示例为将应用部署在 /dnote 路径下):

location = /dnote { rewrite ^ /dnote/; }
location /dnote/ { try_files $uri @dnote; }
location @dnote {
    include uwsgi_params;
    uwsgi_param SCRIPT_NAME /dnote;
    uwsgi_modifier1 30;
    uwsgi_pass 127.0.0.1:8081;
}

重启 Nginx

sudo service nginx restart

常见问题排查

  1. 内部服务错误

    • 检查 /var/www/dnote/dnote 目录是否对 Web 服务器可读
    • 确保 /var/www/dnote/dnote/data/hashcash.db 文件可写
  2. uWSGI 启动问题

    • 可尝试使用 WSGI 文件方式启动,修改 uwsgi.ini
      wsgi-file = /var/www/dnote.wsgi
      
      替代原来的 module 配置
  3. 权限问题

    • 确保所有相关文件和目录的所有权和权限设置正确
    • 特别是当使用不同用户运行 Web 服务器和 uWSGI 时

安全建议

  1. 始终使用 HTTPS 加密连接
  2. 定期备份 hashcash.db 文件
  3. 限制对管理接口的访问
  4. 保持系统和依赖包的最新状态

通过以上步骤,您应该能够成功部署 d-note 项目。根据实际环境需求,可能需要对配置进行适当调整。

登录后查看全文
热门项目推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
176
260
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
854
505
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
182
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
254
295
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
331
1.08 K
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
397
370
note-gennote-gen
一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
83
4
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
kernelkernel
deepin linux kernel
C
21
5