PassNAT LogoPassNAT

无公网自建Standard Notes私密笔记,端到端加密云同步,NAS极简Docker部署。无公网设置帕斯内网穿透远程访问!

作者

小编

发布时间

Curving abstract shapes with an orange and blue gradient

项目介绍

Standard Notes 是一个开源的端到端加密笔记应用,专注于隐私保护和数据安全。它提供了完整的自托管解决方案,让用户可以完全控制自己的笔记数据。Standard Notes 采用微服务架构,包含 API 网关、同步服务器、认证服务、数据库和缓存等组件,确保数据的安全性和服务的稳定性。

该项目的最大特点是端到端加密,所有笔记内容在客户端加密后才传输到服务器,即使是服务器管理员也无法查看用户的笔记内容。支持跨平台同步,可以在桌面端、移动端和网页端无缝使用。项目采用 Docker 容器化部署,大大简化了自托管的复杂度,相比传统部署方式减少了 65% 的内存使用量。

项目地址: 点我跳转

部署安装

如需在外也打开项目需要配置内网穿透使用,点击前往 帕斯内网穿透,先注册好账号备用。

复制下列的配置文件

1services:
2 server:
3 image: standardnotes/server
4 env_file: .env
5 container_name: server_self_hosted
6 restart: unless-stopped
7 ports:
8 - 3000:3000
9 - 3125:3104
10 volumes:
11 - ./logs:/var/lib/server/logs
12 - ./uploads:/opt/server/packages/files/dist/uploads
13 networks:
14 - standardnotes_self_hosted
15
16 localstack:
17 image: localstack/localstack:3.0
18 container_name: localstack_self_hosted
19 expose:
20 - 4566
21 restart: unless-stopped
22 environment:
23 - SERVICES=sns,sqs
24 - HOSTNAME_EXTERNAL=localstack
25 - LS_LOG=warn
26 volumes:
27 - ./localstack_bootstrap.sh:/etc/localstack/init/ready.d/localstack_bootstrap.sh
28 networks:
29 - standardnotes_self_hosted
30
31 db:
32 image: mysql:8
33 container_name: db_self_hosted
34 environment:
35 - MYSQL_DATABASE=standard_notes_db
36 - MYSQL_USER=std_notes_user
37 - MYSQL_ROOT_PASSWORD=changeme123
38 - MYSQL_PASSWORD=changeme123
39 expose:
40 - 3306
41 restart: unless-stopped
42 volumes:
43 - ./data/mysql:/var/lib/mysql
44 - ./data/import:/docker-entrypoint-initdb.d
45 networks:
46 - standardnotes_self_hosted
47
48 cache:
49 image: redis:6.0-alpine
50 container_name: cache_self_hosted
51 volumes:
52 - ./data/redis/:/data
53 expose:
54 - 6379
55 restart: unless-stopped
56 networks:
57 - standardnotes_self_hosted
58
59networks:
60 standardnotes_self_hosted:
61 name: standardnotes_self_hosted

打开飞牛 NAS 或其他的 NAS 设备

项目名称可以随便填,点击创建 docker-compose.yml

点击 Compose -> 新建项目

这里需要改成你需要的数据库密码,将 changeme123 修改为你的安全密码,其他的保持不变。

如果提示端口被占用可以修改下面的字段,但是需要保持格式正确。主要是 3000 和 3125 端口,可以修改为其他未被占用的端口。

同时需要创建 .env 环境变量文件,内容如下:

1DB_HOST=db
2DB_PORT=3306
3DB_USERNAME=std_notes_user
4DB_PASSWORD=changeme123
5DB_DATABASE=standard_notes_db
6DB_TYPE=mysql
7
8REDIS_PORT=6379
9REDIS_HOST=cache
10CACHE_TYPE=redis
11
12AUTH_JWT_SECRET=你的32位随机密钥
13AUTH_SERVER_ENCRYPTION_SERVER_KEY=你的32位随机密钥
14VALET_TOKEN_SECRET=你的32位随机密钥

注意:需要为 AUTH_JWT_SECRET、AUTH_SERVER_ENCRYPTION_SERVER_KEY 和 VALET_TOKEN_SECRET 生成32位随机密钥,可以使用在线工具生成。

创建成功后可以访问 ip:3000 到这里就可以正常显示项目了

穿透公网

打开帕斯内网穿透控制台,点击隧道管理-隧道列表

点击创建新隧道

隧道节点可以随便选,一般选个负载低的就可以

接下来填写信息,隧道名称可以随便填写

本地 IP 默认就可以

传输协议可以选择 TCP 也可以选择 HTTP/HTTPS

HTTP 就是域名的形式,教程以使用 TCP 为演示

本项目中如果没有修改端口的话默认是 3000 端口,这里本地 IP 就填 3000

远程端口可以留空也可以自定义。下图仅做参考,请按照实际项目端口添加。

填写完毕点击确定

点击刚才创建好的隧道,点击获取配置文件

回到飞牛 NAS,点击应用中心下载 frpc 客户端

打开后粘贴刚才复制的配置文件,点击确定即可

复制帕斯内网穿透控制台的访问 IP 和端口

可以看到已经正常穿透成功了

本篇教程结束