上一版是「钉死上游 commit、构建时拉 archive、再用 overlay/ 叠加补丁」。但上游已明示停止维护 (README 里 2024-12-28 起挂着警告:「开源版本已停止维护,不再进行新特性更新和 bug 修复」), 所以把源码放进本仓库:构建不再依赖 github.com/lsky-org 长期可用,之后要改 PHP 代码直接改 src/ 提交即可,不必再维护叠加机制。 1) 上游 pin:911275c(2023-05-16)→ 38d52c4609eb85236b45ac75acac2ced55174953(2025-11-24)。 中间 32 个提交只动了 9 个文件,**数据库迁移 0 处**,所以升级不碰站点数据(SQLite 结构不变)。 吃进三个真实修复:图片格式转换时不同图片共用同一个临时文件(并发上传会变成同一张图, 默认配置即触发)、加水印后丢质量参数、SVG 支持;另有 laravel 9.52.4→9.52.17、 phpseclib 3.0.19→3.0.43、commonmark 2.3.9→2.6.0、aws-sdk-php 等一串依赖安全升级。 2) vendored 源码:src/ = 上游 38d52c46 的完整树(304 个文件、8.1MB,按 commit 精确复制, 文件数与上游 git 树一致)。我们的三个补丁文件就地打上补丁,取消 overlay/。 3) Dockerfile:去掉 curl 下载 archive 那一层,改成 COPY src/;自证拆成两组 —— 「自证 1 上游纯净性」ImageService.php / convention.php / public/index.php / routes/web.php / composer.lock 必须等于上游 md5;「自证 2 补丁产物」三个补丁文件 md5 + 关键标记 grep。 快照被误改、补丁丢了,构建期就拦下。 4) 新增维护脚本:tools/diff-vs-upstream.sh(拉上游快照做全树对比 + 白名单校验:除三个补丁文件 外不许有别的改动,同时可重生成 patches/ios-longpress.patch)、tools/vendor-upstream.sh (换 pin 时重新 vendor,自动保留补丁文件并打印上游侧差异)。 5) 测试与文档:jsdom 测试默认路径改指 src/public/js/context-js/context-js.js,新增两条结构自检 (两份 context-js.js 必须一致、blade 必须带 ?v= 版本串)→ 70/70 通过;README 重写 「代码在仓库哪里、怎么改、怎么升 pin」,并修正许可证说明(应用 GPL-3.0 / 打包 AGPL-3.0)。 数据安全逻辑一字未动:entrypoint.sh 仍是「版本标记不一致才同步」,排除 .env / storage / database / bootstrap/cache / public/i。换镜像后容器自动把新代码同步进卷。
34 lines
950 B
PHP
34 lines
950 B
PHP
<?php
|
|
|
|
return [
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Third Party Services
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| This file is for storing the credentials for third party services such
|
|
| as Mailgun, Postmark, AWS and more. This file provides the de facto
|
|
| location for this type of information, allowing packages to have
|
|
| a conventional file to locate the various service credentials.
|
|
|
|
|
*/
|
|
|
|
'mailgun' => [
|
|
'domain' => env('MAILGUN_DOMAIN'),
|
|
'secret' => env('MAILGUN_SECRET'),
|
|
'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),
|
|
],
|
|
|
|
'postmark' => [
|
|
'token' => env('POSTMARK_TOKEN'),
|
|
],
|
|
|
|
'ses' => [
|
|
'key' => env('AWS_ACCESS_KEY_ID'),
|
|
'secret' => env('AWS_SECRET_ACCESS_KEY'),
|
|
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
|
|
],
|
|
|
|
];
|