☰
独立开发者,开发完整系统相关信息留痕层面思考
2026/10/14 15:14:17 网站建设 项目流程

上一篇文章,介绍了一个完整的开发系统,全流程

现在在介绍一下,我们开发好一个系统
应该对什么领域的信息,在什么地方,去进行数据持久化的留痕准备

1.在开发环境相关的找相关资源
去哪里下载资源,怎么配置环境

2.对操作系统Windows以及文件夹

编辑操作系统的环境变量层面

文件夹相关的位置
maven位置
npm装的包的位置
软件安装的位置
源代码相关的位置

2.对相关代码资源留痕
本地文件夹位置
远程git仓库

3.服务器领域
云服务器位置
相关ip,账号密码,在云服务器领域做配置相关
服务器层面的软件
docker-nginx
docker-mysql
docker-redis

相关账号密码,信息存储

相关docker打包存储

上一篇文章讲的是“从 0 到 1 把系统开发出来”。这一篇讲的是:系统开发好之后,如何为环境、代码、服务器、账号、数据做持久化留痕。
留痕不是写流水账,而是建立一张“资产地图”:以后你、同事、运维、甚至半年后的自己,拿到这份留痕,就能恢复环境、重建服务、排查问题、交接系统。

核心原则先记住:

  1. 公开信息进 Git:代码、配置模板、部署脚本、文档。
  2. 敏感信息进密码管理器/Vault:密码、密钥、Token、证书私钥。
  3. 只记录“在哪里”,不记录“值”:文档里写“生产 MySQL 密码在 Vault 的 secret/prod/mysql/app”,不要写密码本身。
  4. 能版本化的都版本化:Dockerfile、docker-compose、Nginx 配置、SQL 初始化脚本。
  5. 能备份的都要能恢复:数据库、Redis、Docker 卷、镜像、云盘快照。

一、开发环境资源留痕

1. 下载源与版本

建议在项目里建一个docs/environment.md,记录:

资源下载来源版本安装位置备注
JDKAdoptium / Oracle / 华为云镜像17D:\Apps\Java\jdk-17JAVA_HOME
MavenApache 官网 / 阿里云镜像3.9.9D:\Apps\apache-maven-3.9.9MAVEN_HOME
NodeNode 官网 / nvm-windows20 LTSD:\Apps\nodejsNODE_HOME
DockerDocker Desktop / 官网最新稳定版C:\Program Files\Docker开启 WSL2
MySQLDocker 镜像8.0Docker 容器数据卷 mysql-data
RedisDocker 镜像7.xDocker 容器数据卷 redis-data
NginxDocker 镜像1.25Docker 容器配置挂载

不要只记“我装过”,要记清楚:版本、路径、环境变量、配置文件位置、下载地址。


2. Windows 环境变量留痕

Windows 环境变量位置:

  • 图形界面:此电脑 → 属性 → 高级系统设置 → 环境变量
  • 用户变量:只对当前用户生效
  • 系统变量:对所有用户生效
  • 命令行查看:set、setx、PowerShell:
    [Environment]::GetEnvironmentVariable("Path","User")[Environment]::GetEnvironmentVariable("Path","Machine")

建议在docs/windows-env.md记录:

变量名示例值作用用户/系统是否敏感
JAVA_HOMED:\Apps\Java\jdk-17Java 根目录系统否
MAVEN_HOMED:\Apps\apache-maven-3.9.9Maven 根目录系统否
NODE_HOMED:\Apps\nodejsNode 根目录系统否
Path%JAVA_HOME%\bin;%MAVEN_HOME%\bin;%NODE_HOME%命令可用系统否

注意:不要把生产密码写进系统环境变量。系统环境变量适合路径、开关、本地开发配置;生产密钥应放 Vault、云 Secrets Manager、Docker secrets 或 K8s Secret。


3. 文件夹与路径留痕

建议统一目录,例如:

D:\Apps\ 软件安装 D:\Apps\Java\ JDK D:\Apps\apache-maven\ Maven D:\Apps\nodejs\ Node D:\workspace\ 源代码 D:\workspace\company\ 公司项目 D:\data\ 本地数据、备份、临时文件

Maven 相关:

  • Maven 安装位置:D:\Apps\apache-maven-3.9.9
  • 本地仓库:C:\Users\你的用户名\.m2\repository
  • 配置文件:C:\Users\你的用户名\.m2\settings.xml
  • 项目级:.mvn/wrapper/maven-wrapper.properties
  • 留痕:settings.xml如果含私服密码,只提交脱敏模板;mvnw、mvnw.cmd提交到 Git。

npm 相关:

  • Node 安装位置:D:\Apps\nodejs
  • npm 全局包:C:\Users\你的用户名\AppData\Roaming\npm
  • npm 缓存:C:\Users\你的用户名\AppData\Local\npm-cache
  • 用户配置:C:\Users\你的用户名\.npmrc
  • 项目配置:项目根目录.npmrc
  • 留痕:package.json、package-lock.json/pnpm-lock.yaml/yarn.lock必须提交;.npmrc如果含 token,不提交,只提交.npmrc.example。

常用命令:

mvn-vmvn help:effective-settingsnpmconfig listnpmroot-gnpmconfig get cachenode-vnpm-v

二、代码资源留痕

本地代码目录建议:

D:\workspace\company\project-a D:\workspace\company\project-b D:\workspace\personal\...

远程 Git 仓库要记录:

  • 仓库地址:git@gitlab.example.com:group/project.git
  • 平台:GitLab / GitHub / Gitee / 自建 Git
  • 分支策略:main、dev、feature、release
  • 保护分支:main 不允许直接 push
  • CI/CD:流水线文件.gitlab-ci.yml、Jenkinsfile、.github/workflows
  • 大文件:Git LFS
  • 子模块:.gitmodules

项目里建议放这些文档:

README.md 项目说明、启动方式 docs/architecture.md 架构图、模块说明 docs/environment.md 开发环境、版本、下载源 docs/windows-env.md Windows 环境变量 docs/servers.md 服务器清单 docs/credentials-locations.md 密码存放位置,不写值 docs/deployment.md 部署流程 docs/backup-restore.md 备份恢复 docs/runbook.md 故障处理手册

.gitignore必须包含:

.env .env.* !.env.example *.pem *.key *.p12 settings.xml .npmrc node_modules/ target/ dist/ logs/ data/

三、服务器领域留痕

1. 云服务器基础信息

在docs/servers.md记录:

环境云厂商地域实例 ID公网 IP内网 IP系统规格安全组负责人
生产阿里云杭州i-xxx1.2.3.410.0.0.1Ubuntu 22.042C4Gsg-xxx张三
测试腾讯云上海ins-xxx5.6.7.810.0.1.1CentOS 72C2Gsg-yyy李四

云控制台要留痕:

  • 云账号:主账号、RAM 子账号、MFA
  • 地域、VPC、交换机、安全组
  • 实例 ID、快照策略、云盘、带宽
  • 域名、DNS、SSL 证书到期时间

账号密码不要写进 Git。只在文档里写“在 1Password / Vault / 云 Secrets Manager 的哪个条目”。


2. 服务器上的软件与目录

常见目录:

/opt/app/ 应用部署目录 /opt/app/docker-compose.yml /opt/app/.env 敏感,权限 600 /data/mysql/ MySQL 数据 /data/redis/ Redis 数据 /data/nginx/logs/ Nginx 日志 /etc/nginx/conf.d/ Nginx 配置 /backup/ 备份目录

服务器软件留痕:

  • Docker:docker -v、docker compose version
  • Nginx:docker-nginx,配置、证书、日志、端口
  • MySQL:docker-mysql,版本、端口、数据卷、账号
  • Redis:docker-redis,版本、端口、密码、持久化方式
  • 防火墙:开放端口,3306、6379 不要公网暴露
  • SSH:优先密钥登录,禁止 root 密码登录

3. Docker 与持久化

Docker 相关留痕重点:

  • Dockerfile提交 Git
  • docker-compose.yml提交 Git
  • .env.example提交 Git,.env不提交
  • Nginx 配置提交 Git
  • MySQL 初始化 SQL 提交 Git
  • Redis 配置提交 Git
  • 镜像仓库地址、命名空间、镜像名、Tag 规则写进文档

镜像 Tag 建议:

registry.cn-hangzhou.aliyuncs.com/ns/app:2026.10.13 registry.cn-hangzhou.aliyuncs.com/ns/app:git-abc1234

不要只用latest。

数据卷示例:

services:mysql:image:mysql:8.0volumes:-mysql-data:/var/lib/mysql-./mysql/init:/docker-entrypoint-initdb.denv_file:-.envrestart:alwaysredis:image:redis:7volumes:-redis-data:/data-./redis/redis.conf:/usr/local/etc/redis/redis.confcommand:redis-server /usr/local/etc/redis/redis.confrestart:alwaysnginx:image:nginx:1.25volumes:-./nginx/conf.d:/etc/nginx/conf.d-./nginx/certs:/etc/nginx/certs-./nginx/logs:/var/log/nginxports:-"80:80"-"443:443"restart:alwaysvolumes:mysql-data:redis-data:

Docker 镜像打包存储:

dockersave app:tag|gzip>app-tag.tar.gzdockerload<app-tag.tar.gz

生产更推荐推送到私有仓库:Harbor、阿里云 ACR、腾讯云 TCR。


四、账号密码与敏感信息留痕

敏感信息包括:

  • 服务器 SSH 密码/密钥
  • 云账号 AK/SK
  • MySQL root 和应用账号
  • Redis 密码
  • Nginx SSL 私钥
  • Git Token
  • CI/CD Secrets
  • 第三方 API Key

存放位置建议:

类型推荐存放位置
个人密码1Password / Bitwarden / KeePassXC
团队共享密码Vault / 云 Secrets Manager
生产容器密钥Docker secrets / K8s Secret
CI/CDGitLab CI Variables / Jenkins Credentials
本地开发.env,不提交 Git

docs/credentials-locations.md只写位置:

名称用途存放位置最后轮换负责人
生产 MySQL应用连接Vault: secret/prod/mysql/app2026-10-01张三
云账号控制台1Password: 云平台/生产/主账号有 MFA李四
SSL 私钥HTTPSVault: secret/prod/nginx/ssl2026-09-01王五

绝对不要在 Git、聊天记录、Excel、桌面 txt 里放明文密码。


五、备份与恢复留痕

数据持久化不只是“存着”,还要能恢复。

MySQL:

mysqldump --single-transaction--routines--triggers-uroot-pdb>backup.sql mysql-uroot-pdb<backup.sql

Redis:

  • 开启 RDB/AOF
  • 备份dump.rdb、appendonly.aof
  • 恢复时替换数据文件并重启

Docker 卷:

dockerrun--rm-vmysql-data:/data-v${PWD}:/backup alpine\tarczf /backup/mysql-data.tar.gz-C/data.

云服务器:

  • 云盘快照
  • 对象存储异地备份
  • 保留策略:7 天、30 天、365 天
  • 定期做恢复演练

六、最终检查清单

一个系统开发好后,至少留下这些:

  1. docs/environment.md:开发环境、下载源、版本。
  2. docs/windows-env.md:Windows 环境变量、Maven、npm 路径。
  3. docs/servers.md:云服务器、IP、实例 ID、安全组。
  4. docs/credentials-locations.md:密码存放位置,不写值。
  5. docs/deployment.md:部署步骤。
  6. docs/backup-restore.md:备份与恢复。
  7. Git 仓库:代码、Dockerfile、docker-compose、Nginx 配置、SQL 初始化。
  8. .env.example:环境变量模板。
  9. .gitignore:排除敏感文件和构建产物。
  10. 密码管理器/Vault:所有密码、密钥、Token。
  11. Docker 镜像仓库:镜像 Tag 规则、保留策略。
  12. 数据备份:MySQL、Redis、Docker 卷、云盘快照。

一句话总结:
留痕的目标不是“记录所有东西”,而是让任何一个有权限的人,拿到 Git 仓库 + 密码管理器 + 云控制台,就能把系统重新跑起来。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询