-
稍稍修改 私有更快乐
之前一直用的这个项目来中转docker镜像到阿里云,然后再给国内的服务器使用,后来发现github有点拉,而且github到阿里云经常失败。 我们恰好有一台CN2的香港杜甫,运行着团队项目使用的Gitea,本来就有Act runner,然后就想着这样管理起来方便点。 就稍微修改了一下docker.yaml,让它可以在gitea中使用。 name: Dockeron: workflow_dispatch: push: branches: [ main ]env: ALIYUN_REGISTRY: "$ secrets.ALIYUN_REGISTRY || vars.ALIYUN_REGISTRY " ALIYUN_NAME_SPACE: "$ secrets.ALIYUN_NAME_SPACE || vars.ALIYUN_NAME_SPACE " ALIYUN_REGISTRY_USER: "$ secrets.ALIYUN_REGISTRY_USER || vars.ALIYUN_REGISTRY_USER " ALIYUN_REGISTRY_PASSWORD: "$ secrets.ALIYUN_REGISTRY_PASSWORD || vars.ALIYUN_REGISTRY_PASSWORD " DOCKER_HOST: "unix:///run/docker.sock"jobs: build: name: Pull runs-on: ubuntu-22.04 steps: - name: Before freeing up disk space run: | echo "Before freeing up disk space" echo "==============================================================================" df -hT echo "==============================================================================" # 增加可用磁盘空间 - name: Maximize build space (Gitea-safe) run: | echo "Prune Docker to free space (no sudo)" docker system df || true docker builder prune -af || true docker system prune -af || true - name: Free up disk space complete run: | echo "Free up disk space complete" echo "==============================================================================" df -hT echo "==============================================================================" - name: Ensure Docker CLI run: | if command -v docker >/dev/null 2>&1; then docker -v …... -
可能是 Maccms10 防止暗跳广告最好的解决方案
从0到1去做一个cms是有点麻烦的,但是可以围绕MacCms为后端打造一个新的程序,使用CMS的官方接口获取数据,从根源上避免了主题和程序的挂马或暗跳的问题。 而且支持自定义播放器,可以从官方接口获取到的数据都可以使用。 市面上的moonTV和一些其他的产品都是针对资源站的,资源站现在会封IP,请求访问量大很不友好,但是他们的程序在对接CMS的时候都没法切换CMS的播放组。 折腾了半天,最后自己写了个…… 静态的,使用的nodejs。 你现在可以购买这份完整的代码,没有加密的,支持二次开发。 你会得到一份不会跳广告的干净前端+包含81667条数据的Maccms MYSQL数据库 或适配自己的Maccms 联系方式 Telegram 1888元 谢绝议价。内容数据截止时间为2026年3月17日。 目前已经丢弃maccms,使用自研服务。 国内贩子转手倒卖情况泛滥,所以后续没有开源,也不会开源。... -
Asset Cache Server 项目记录
项目缘起 最近在处理网站时,遇到一个棘手的问题:大量依赖的外部 CSS/JS 资源(如字体图标库、统计脚本、公共 CDN 的库文件)经常因为防盗链策略或 CDN 节点不稳定导致加载失败。最糟糕的是,有些资源链接直接失效了,影响了线上业务的稳定性。 于是有了这个想法:为什么不把这些外部资源永久缓存到自己的服务器上? 既能避免防盗链限制,又能确保资源长期可用。这就是 Asset Cache Server 诞生的初衷。 核心功能设计 这个项目是一个轻量的 Node.js 服务,实现了几个关键特性: 1. 智能 URL 映射与目录保留 我们没有简单地把所有文件堆在一个文件夹,而是按原始 URL 的目录层级保存。比如 https://cdn.example.com/lib/v1/jquery.min.js 会完整保存在 ./cache/lib/v1/jquery.min.js。这样做的好处是: 结构清晰,便于手动管理 避免不同站点的同名文件冲突 符合开发者直觉,找文件时一目了然 2. TXT/JSON 批量抓取 在根目录放置一个包含 URLs 列表的 TXT/JSON 文件,服务会自动读取并批量下载。每行一个 URL,支持注释(# 开头)。对于需要迁移大量资源的场景,这节省了大量手动操作。并且所需资源的内容可控,避免被污染。 3. 去重跳过机制 通过检查本地文件是否存在,自动跳过已缓存的资源。重复运行也不用担心产生冗余文件或覆盖已有内容。 4. 公共路径自动生成 最贴心的设计是返回格式化的引用路径。抓取完成后,控制台会输出: 公共路径: /cache/lib/v1/jquery.min.js 完整 URL: https://my-cdn.com/cache/lib/v1/jquery.min.js 直接复制就能在项目中使用,无需手动拼接路径。 技术实现要点 选择 Node.js 是因为: 异步 I/O 适合批量网络请求 生态丰富,有 axios、fs-extra 等趁手工具 部署简单,一条命令即可启动 核心流程很清晰: 读取 TXT/JSON → 2. 校验 URL → 3. 生成本地路径 → 4. 检查是否已存在 → 5. 下载并保存 → 6. 返回引用地址 特别处理了路径生成逻辑,确保不同操作系统的路径分隔符兼容性。 与 CDN 防盗链的完美配合 这个项目最大的价值在于配合 CDN 防盗链使用。 我们可以: 将外部资源抓取到本地服务器 通过自己的 CDN(开启防盗链)分发 既保护了资源安全,又避免了外部链接的不确定性 相当于在自由开放的互联网资源和自己的业务之间建立了一道可控的缓冲层。 部署方式 Debian 12 / Node 22.19.0(生产): 创建 .env 设置端口:PORT=<你的端口> npm install && npm start 建议使用 systemd/pm2 守护进程,并在 Nginx 反向代理到 127.0.0.1:<PORT> 思考与收获 这个项目,对静态资源管理有了更深的理解: 依赖外部资源 = 把稳定性交给别人。即使是知名 CDN,也可能因政策、网络问题影响你的业务。 简单的方案往往最有效。没有引入复杂的数据库或缓存策略,仅靠文件系统就解决了核心问题。 开发者体验很重要。返回可直接复制的路径这个小功能,让工具用起来格外顺手。 项目仓库:https://ckk.photo8.site/Photo8/Asset-cache... -
关闭后台新版 maccms10 的升级提示并删除一些高危的文件行为和文件 (来源github)
新版本存在恶意的随机添加js文件投毒的问题,目前会导致晚上偷偷跳大人网站,如果实在难以解决的,还是换个程序吧…… 1.删除,application/admin/controller/Update.php 更新: 一定要删除这个文件! 2.同目录Safety.php 修改file() public function file() { $param = input(); if($param['ck']){ $ft = $param['ft']; if(empty($ft)){ $ft = ['1','2']; } mac_echo('<style type="text/css">body{font-size:12px;color: #333333;line-height:21px;}span{font-weight:bold;color:#FF0000}</span></style>'); // 注释掉远程文件检查功能 // $url = base64_decode("aHR0cDovL3VwZGF0ZS5tYWNjbXMubGEv") . "v10/mac_files_".config('version')['code'].'.html'; // $html = mac_curl_get($url); // $json = json_decode($html,true); // if(!$json){ // return $this->error(lang('admin/safety/file_msg1')); // } $this->listDir('./'); if(!is_array($this->_files)){ return $this->error(lang('admin/safety/file_msg2')); } // 本地文件完整性检查 $total_files = count($this->_files); $check_results = []; foreach($this->_files as $k=>$v){ $file_path = ltrim($k, './'); $file_size = filesize($k); $file_md5 = $v['md5']; $file_perms = substr(sprintf('%o', fileperms($k)), -4); // 检查文件是否可读 …... -
电脑都换了两台了 才发现游戏硬盘里有个快关服的游戏还没卸载
今儿整理硬盘,准备给新下的3A大作腾空间,鼠标滑到G盘根目录,一个名叫"gest"的文件夹杵在那儿,属性一点:70.6GB。我愣了足有三秒,才想起来这玩意儿是什么——《射雕》的客户端,那个我公测第一天就进去肝、第二个团队本中期就弃坑、后来换了两次电脑都没发现它还健在的"幽灵数据"。 这文件夹像块数字化石,从旧硬盘Ghost到新硬盘,又跟着新电脑一路迁移过来,我居然从头到尾没注意到它。要不是今天清理冗余文件,它恐怕会一直杵在那儿,等到硬盘寿终正寝。点开一看,启动器还能跑,就是公告栏停在了9月24日那行"江湖茫茫,后会无期"。我盯着那行字,搜了下新闻,才知道这游戏熬不过11月24日,545天,整个生命周期还没我家那台空气净化器长。当初宣传册上印的"150年长线运营",现在看跟电信诈骗短信一个置信度。 【肝帝的巅峰,往往是背叛的开始】 得承认,我入坑的姿势相当标准:单机独狼,见着"金庸正版授权"和"AI队友弱社交"就走不动道。没有公会,没有固定队,世界频道永久屏蔽,我就喜欢一个人骑着马把地图探到100%,把每个解密点都抠干净。那些9.9的白发时装我是真喜欢,不是什么"不逼氪"的承诺忽悠的,纯粹觉得好看,前前后后买了七八件,就当给游戏付月费了。 侠侍系统刚上线时,我觉得这设计简直是为我量身定做的。郭靖在前排扛,黄蓉后台加血,王处一补伤害,我负责刮痧和喊666。开服七天我欧得发邪,新手池出了郭靖,前三十抽凑齐黄蓉和王处一,后续愣是靠肝活动和每日免费,0氪抽出了11个金侍从——除了完颜洪烈那张脸死活不见,其余全齐活了。当时我还截图发朋友圈炫耀,配文"非酋的逆袭",现在那条动态还在,评论区已经变成了大型鞭尸现场:"哥,你游要凉了""还没弃坑呢?"我一个个回复:"早弃了,早弃了。" 那段日子真是闪着金光的。地图探索度100%,成就点数清到版本上限,家园系统里我造的"听雨阁"上了两次官方精选。我享受的就是这种单人沉浸式体验,不用在世界频道喊"666来T来奶",不用被公会会长PUA每天打卡,11个金侍从就是我的移动城堡,指哪儿打哪儿,比真人队友还"听话"。当时知乎上有个问题:"如何评价射雕的侠侍系统?"我洋洋洒洒写了两千字,痛斥唱衰党,信誓旦旦地表示"这游戏走差异化路线,必成大器"。现在那个回答还在,评论区已经变成了考古现场,惨不忍睹。 【侠侍的黄昏,从第一个团本就开始了】 其实崩盘的苗头来得比我记忆中更早。第一个大型团队本"炼狱摧烽校场",还能带侠侍进场。结果开场三分钟我就意识到事情不对,BOSS放红圈预警,我躲开了,回头一看,郭靖直挺挺站在圈里硬吃伤害,黄蓉来回抽风跑动,硬生生被AOE炸死。我靠着手操勉强打通,出来第一件事就是去社区吐槽。 这哪里是侠侍,这是请了AI爹回来。更骚的是,到了第二个团队本"风雪万安寺",侠侍便开始不可参与。"我当场就懵逼了。三个月来所有资源全砸在侠侍上,金装、心法、突破材料,金侍从养得比亲儿子还亲。结果你告诉我,后续核心玩法不让用?那我肝的意义何在? 【愚蠢的代价,是肝帝的时间】 我这人没别的优点,就是肝硬。射雕的地图探索设计得确实细,每个山头都有隐藏宝箱,每个村落都有支线彩蛋。我硬是把探索度肝到了100%,成就清到版本上限,就为了那点蚊子腿奖励去养我的侠侍。当时觉得值,现在想想,真是被PUA得不轻。 那些9.9的时装我是真喜欢,但也就到此为止了。武学抽卡?我靠每日免费和活动硬攒。侠侍突破?我靠肝碎片和材料本。我一分钱没多氪,就是花时间。而时间就是金钱,我的三个月值多少钱,我没算过,但肯定比完颜洪烈那张卡值钱。结果最后,我肝出来的11个金侍从,在核心玩法里变成了11个数据垃圾。它们不会躲技能不是最气的,最气的是策划从一开始就设计了一个"先用侠侍吸引单机玩家,再用团本逼你社交"的陷阱。我这种独狼玩家,就是那个被钓上来的鱼。 【10亿的笑话,肝帝买单】 说到这个10亿投资,我就来气。钱是没多氪,但策划把玩家的肝当成可再生资源来压榨,比氪金还恶心。2.0版本上线前,新制作人V搞了个"回炉计划",直播里说要"回归武侠初心"。当时我已经半AFK了,燕云十六声公测,我扭头就去玩了,偶尔上线看看,只觉得面目全非。 2.0版本把开放世界砍了,改成传统MMO那套日常一条龙;侠侍系统虽然说要优化AI,实际只是把数值翻了倍,傻子还是那个傻子;承诺的自由交易,手续费收到10%,摆明了不想让玩家搬砖挣钱。我眼睁睁看着2.0版本上线首日,畅销榜回升到60名,贴吧里一片"有望逆袭"的欢呼。但三天后,排名又掉回200名开外。原因很简单:改得面目全非,老玩家觉得背叛,新玩家觉得缝合。那个在B站做解析的UP主说得狠:"回炉重造的前提是你有块好铁,《射雕》这是块废铁,回炉只能炼出更废的渣。" 【硬盘里的墓碑,关服前的独白】 9月24号停运公告出来那天,我正在燕云十六声里刷装备。打开B站,首页推送"射雕关服",我还愣了一下,心说这游戏居然还活着?然后打开那个尘封的启动器,确认消息属实。世界频道异常和谐,没人骂策划了,没人吐槽Bug了,全在刷"江湖路远,与君别过"。有个ID叫"黄蓉"的玩家,在家园里站了三个小时,说是在等自己的侠侍回来——他的侠侍早在两个月前就养废弃坑了。 我登录自己的账号,身上的金装早已过时。我站在自己造的"家园房子"前,突然觉得这一切都像一场荒谬的行为艺术。 江湖路远,后会无期。这八个字,说给游戏听,也说给那个曾经天真得以为花时间就能买到快乐的自己听。 现在,我该去清空回收站了。毕竟,有些垃圾,还是删干净比较好。 射雕公测就开始玩了,本来想着AI队友单机打本弱社交,简直完美。9.9的白发时装上一件买一件,造房子种菜,谁曾想这游戏活不过一个正常周期,10亿投资宛如笑话。... -
wordpress Redis 多站共存
网上很多教程都在瞎几把扯犊子,腾讯开发者社区里更是给出了逆天教程让改wp数据库前缀,真牛逼。 再说Redis改数据库编号有什么用? Redis 的多个数据库(编号 0-15)其实都在同一个实例里,你改这玩意儿有什么用? 默认只使用 db0 才是最佳实践。 只有两行的设置被这帮人说的如此离谱。 wp-config.php文件里修改就可以了。 代码: define( 'WP_CACHE_KEY_SALT', '域名' ); define( 'WP_REDIS_PASSWORD', 'Redis密码' ); 开启插件就完事了。... -
网站禁止js跳转非本站域名代码
1、下载文件后解压到本地,其中包含一个js文件夹和放跳转的js文件,按照自己的需求上传到服务器。 如果你的网站根目录有js文件夹,那么直接把里面的js文件上传到js文件夹里,如果根目录没有js文件夹,那么连同js文件夹一起上传到网站根目录。 2、打开并编辑js文件,把白名单域名改成自己的域名,建议填www网址和手机版网址,如果不需要,把下面两行删除,//当前域名前的逗号也删除。 3、把这段js代码引入网站模板,一般是在head.html或include.html文件里,找到</script>标签,把这段代码放在</script>最上面,一定要让这个js文件最先加载,它才能有效拦截跳转。 代码全部: // 设置允许的域名白名单(包括主域名及其子域名) const allowedDomains = [ location.hostname, // 当前域名 'aaa', // 其他可信域名 'bbb', 'ccc'// 子域名 ]; // 监听所有链接点击事件 document.addEventListener('click', function(event) { // 向上查找最近的<a>标签 let target = event.target; while (target && target.tagName !== 'A') { target = target.parentElement; if (!target) return; } const href = target.getAttribute('href'); // 只处理带有href属性的链接 if (!href || href.startsWith('javascript:')) return; try { // 解析完整URL const url = new URL(href, document.baseURI); // 检查域名是否在允许列表 const isAllowed = allowedDomains.some(domain => url.hostname === domain || url.hostname.endsWith('.' + domain) ); // 阻止非允许域名的跳转 if (!isAllowed) { event.preventDefault(); console.warn('禁止跳转到外部域名:', url.hostname); alert('为了您的安全,已阻止跳转到外部网站'); // 这里可以替换为自定义处理逻辑 } } catch (e) { // 处理无效URL console.error('链接解析错误:', e); } }); // 防止通过修改location跳转 const originalLocation = window.location; Object.defineProperty(window, 'location', { get: () => originalLocation, set: value => { try { const url = new URL(value, document.baseURI); if (!allowedDomains.some(d => url.hostname.endsWith(d))) { console.warn('已阻止location跳转到:', url.hostname); return; } } catch(e) {} originalLocation.href = value; }, configurable: false }); 或前往文章来源处下载文件获取。 根据原作者的内容我改了一份可以拦截window.open的版本,理论上会更强大。 完整代码(anti-redirect.js): (function () { var _original = { open: window.open, assign: window.location.assign.bind(window.location), replace: window.location.replace.bind(window.location), setTimeout: window.setTimeout.bind(window), setInterval: window.setInterval.bind(window) }; var _hooksInstalled = false; var _config = null; function init(options) { if (_hooksInstalled) return; _config = normalizeConfig(options); hookWindowOpen(); hookLocationMethods(); interceptLinkClicks(); interceptFormSubmissions(); hookTimeouts(); _hooksInstalled = true; } function disable() { if (!_hooksInstalled)…... -
40小时逃出鸭科夫:我陪那只鸭子从热血沸腾,到索然无味,再到创意工坊重获新生
一、从沉迷到倦怠:40 小时的鸭科夫生存实录 当一只叼着步枪的鸭子在 “鸭科夫星” 的废墟中捡起第一块金属碎片时,我立刻被这款游戏的反差感击中了。作为 B 站自研、仅 5 人团队打造的国产黑马,它用 2GB 的极小体量装下了 40 小时主线的庞大内容,Steam 上 96% 的好评率和超 30 万的同时在线人数,足以证明其魅力。 萌系卡通画风包裹着硬核的 “搜打撤 + RPG 养成” 内核 —— 战争迷雾里的听声辨位、死亡掉落装备的紧张感、基地建设的长线养成,前期每一局探索都像开盲盒:可能在风暴天气里撞见神秘 NPC,也可能在隐藏洞穴找到飞船蓝图,甚至能挖出背带裤、篮球等埋满梗的彩蛋。更妙的是它对 “类塔科夫” 玩法的优化:去掉四肢伤害、格子华容道等繁琐设定,却保留枪械射程、爆头判定等深度设计,死亡后还能 “跑尸” 捡回装备,对新手和中年玩家格外友好。 这种新鲜感在 30 小时后逐渐褪色。固定的地图循环、重复的收集任务、繁琐的物品管理开始暴露问题 —— 就像玩家普遍吐槽的,纯 PVE 模式缺乏持续的惊喜感,尤其是钓鱼任务里挖蚯蚓的低效操作,让本就紧张的资源收集变成了 “体力活”。加上官方暂未实现联机和手柄适配,单机探索到后期难免显得单调。直到我打开 Steam 创意工坊,订阅了 16 款实用 MOD,这场濒临放弃的逃亡才重获新生。 二、游戏核心魅力解析:为何它能成为现象级黑马? 在聊 MOD 之前,有必要先搞清楚《逃离鸭科夫》的核心吸引力 —— 正是这些扎实的底子,让 MOD 有了发挥的空间。 (一)玩法设计:硬核与友好的平衡术 它本质是一款俯视角纯 PVE 撤离射击游戏,玩家操控鸭子在崩解的 “鸭科夫星” 完成 “搜刮 - 战斗 - 撤离” 的循环。与传统类塔科夫游戏不同,它用扇形视野设计替代了上帝视角:白天视野开阔,夜晚则大幅收窄,背后永远存在视野盲区,常常在舔包时被暗处敌人偷袭,紧张感拉满。但它又足够友好:难度可自由调节,局外成长系统能通过升级技能降低挑战,货币获取和物品掉率设计合理,不会让玩家感到憋屈。这种 “硬核框架 + 柔性适配” 的设计,既留住了核心玩家,又降低了新手门槛。 (二)细节巧思:梗与彩蛋的狂欢 5 人团队的 “乐子人” 特质在游戏里体现得淋漓尽致。开局能捏出 “哥哥同款” 中分头,道具里有致敬《国产凌凌漆》的猪肉刀、《铁甲小宝》的和平星,甚至能捡到被做成周边的尿素袋子。更有趣的是制作组的 “听劝体质”:玩家争论 “粑粑该算食物还是投掷物”,他们直接开投票让玩家定规则,最终 58% 的票数让 “老八流玩法” 正式上线,还贴心加了粪球投掷道具兼顾两方需求。这种与玩家的高频互动,让游戏不止是作品,更成了社区共鸣的载体。 (三)原生短板:小团队的无奈与遗憾 受制于团队规模,游戏也存在明显不足。最突出的是后期内容乏力,50 小时左右就能玩透现有内容,玩家天天催更联机和更新路线图;操作细节上,物品管理、任务指引等功能不够完善,比如钥匙状态不透明、任务道具需求模糊;技术层面,因缺乏人手暂未实现联机功能,手柄适配也遥遥无期。这些短板恰是 MOD 得以发力的关键。 三、必装 MOD 清单:解决游戏 90% 的痛点 如果说原版游戏搭建了骨架,那这些 MOD 就是填充血肉的关键 —— 它们精准命中官方暂未解决的问题,让体验更趋完美。 (一)任务与资源管理:告别 “无效探索” DuckMarket(鸭鸭市场) 这是拯救后期任务体验的核心 MOD。官方缺失的跳蚤市场系统被完整还原,打开网页管理面板就能上架多余物资,任务需要的稀有道具直接搜索购买,再也不用为 “机械鸭工程师” 要的螺丝在地图里死磕三小时。搭配更多收集品 1.7简直是 “财富密码”—— 新增的收集品能直接在市场抛售,我曾靠一组稀有徽章 “一夜暴富”,基地设施直接拉满。要知道原版货币获取虽顺畅,但缺乏自由交易系统,后期多余物资很难高效变现,这组 MOD 恰好补上了经济循环的缺口。 任务可视化三件套 ShowQuestsAreaOnMap 把任务区域直接标在地图上,避免对着 NPC 对话反复核对位置; 显示任务需求道具 让道具栏自带 “任务清单”,捡到零件时自动显示未完成任务的需求量,按 Shift 还能看到具体任务名; 显示物品在背包和仓库的数量 彻底解决 “重复捡垃圾” 问题,探索时一眼知道仓库里的绷带还剩多少,不用再纠结是否带走同类物品。 这三个 MOD 精准解决了原版 “任务指引模糊” 的痛点,要知道原版连任务区域都需要手动记笔记,后期多任务并行时很容易混乱。 (二)操作优化:从 “繁琐操作” 到 “行云流水” 钓鱼解放计划 原版钓鱼要先挖蚯蚓(产出还极少),上钩后还要精准按空格,堪称 “休闲杀手”。姜太公钓鱼实现无成本垂钓,搭配钓鱼自动成功 mod彻底解放双手 —— 我通常开着钓鱼挂在基地,转头去整理背包,回来已经收获满满。对于喜欢佛系养成的玩家来说,这组 MOD 直接把 “体力活” 变成了 “被动收益”。 快速自动拾取 V1.4 这是我使用率最高的 MOD。自定义白名单后,打开箱子自动拾取子弹、药品等常用品,黑名单里的垃圾物品绝不碰。智能合并功能还能自动堆叠同类物资,不用再手动拖动整理背包,战斗间隙的物资管理效率提升了一倍。原版需要反复点击拾取的设计,在后期高频率搜刮时格外繁琐,这个 MOD 直接解放了鼠标。 史诗级背包扩容 V2.5 (Epic Backpack Expansion) 默认 + 200 格子、+200 基础负重的配置,让 “捡垃圾” 再也不用做取舍。之前为了带稀有配件忍痛丢医疗包的日子一去不返,配合自动拾取,每局撤离都能满载而归。原版背包容量有限,后期收集品增多后频繁取舍的体验,简直是对 “搜刮乐趣” 的消耗。 (三)战斗与探索:硬核玩法的 “温柔缓冲” 视角与标识优化 第三人称越肩视角 (TPS Shoulder Surfing) 打破了原版俯视角的视野局限,转角遭遇敌人时反应更迅速,晕 3D 的玩家也能轻松适应; Better Key Indicator - 更好的钥匙标识 给已录入的钥匙加绿色 “✓” 标记,再也不会捡重复的钥匙占背包; 显示物品可用次数 让钥匙包一目了然,剩余使用次数清晰可见,避免 “拿着废钥匙白跑一趟”。 这些优化精准命中了原版的操作痛点,比如钥匙管理混乱的问题,曾让我带着十多把重复钥匙跑遍地图。 BOSS 与物品体验升级 Boss 实时地图标记 Live Boss Map Markers 让刷 BOSS 变成 “精准打击”,不用再靠运气在地图里瞎逛,中期刷稀有掉落效率大幅提升; 物品价值稀有度与搜索音效 给物资加上颜色分级和专属音效,摸到高价值道具时的 “叮”…... -
我原本以为trae不好用只是个例问题
这个傻逼公司出的傻逼软件最近几周的智商极速下滑,如果国内版下滑我觉得我能接受的,尼玛的海外版的你还下滑,你还偷换模型,你是个人啊? 我明明安装了MCP,配置了MCP,在智能体里面勾选了亮着绿色的MCP工具,在命令里说了使用的MCP工具名称,他不用就算了,还帮我重复安装,这是什么狗屎行为? 我写了rules,但是他不遵守,他甚至不遵守的指令。 他甚至没有上下文,我明明前面提到了配置文件的信息,它一个对话之后就原地失忆了。 他甚至不会读文档,给了#doc 他依然使用网络搜索,什么水平? 10美金和狗屎一样的体验,他还偷换概念。 各位,谨慎上车,他和隔壁deepseek差不太多,一个初中生,一个小学生,可以说是卧龙凤雏。 牛逼的营销,糟糕的产品,傻逼公司! 前几周,我承认他很牛逼,这几周,我只想说RNM退钱!... -
Umami 源码部署记录[非docker]
开源地址:GitHub - umami-software/umami(一个简单、快速且注重隐私的谷歌分析替代品) 在开始搭建之前,你需要做好以下准备工作: 一台服务器 宝塔面板 已安装 Node.js(版本需在 14 以上) 已安装 yarn 已安装 mysql8 接下来是详细的部署流程: 下载 Umami 源码:git clone https://github.com/umami-software/umami.git ; 安装依赖:在umami目录下运行 yarn install 命令来安装项目所需的依赖; 创建数据库及表:在你的数据库管理系统中创建一个名为“umami”的数据库,接着使用位于 Umami 源码文件夹中“umami/sql/schema.mysql.sql”路径下的建表语句来创建所需的表结构; 配置环境变量:在 Umami 文件夹内新建一个名为“.env”的文件,并在该文件中添加以下配置内容(请将其中的“账号”“密码”“数据库服务器访问地址”替换为实际的数据库连接信息):DATABASE_URL=mysql://账号:密码@数据库服务器访问地址:3306/数据库名称; 构建项目:执行 yarn build 命令来构建项目,等待构建过程完成; 更新数据库:执行 yarn update-db 更新数据库,确保数据结构与项目版本相匹配,同样等待该过程结束; 在宝塔NODE项目里新建项目来启动,Umami(默认启动端口为 3000,如果反代域名的不需要开放端口,如果IP+端口访问的请去防火墙里开放3000端口)。 项目启动后的操作 默认账号密码:admin / umami 添加网站:登录 Umami 管理后台,添加你的网站信息。 获取跟踪代码:添加网站后,获取对应的跟踪代码,并将其放置到网站的<head>标签下。 至此,Umami 的部署工作就全部完成了! 如果之前是通过 Docker 部署的 Umami,并且现在想要迁移为使用源码进行部署,可以按照以下步骤进行操作: 备份原 Docker 部署的 MySQL 数据: 登录到你的 Docker 容器中,找到 Umami 数据库所在的容器。 使用 MySQL 的备份命令(如 mysqldump)将数据库导出为一个 SQL 文件。 在宝塔面板中新建数据库:登录到宝塔面板,进入数据库管理界面。创建一个新的数据库,导入刚刚备份的数据。 重复前面的部署步骤: 完成数据迁移后,按照前面提到的源码部署步骤(第 1、2、3、4、6、7步)继续进行操作。 在第 7 步配置环境变量时,确保 .env 文件中的 DATABASE_URL 配置正确指向了你刚刚在宝塔面板中创建并导入数据的数据库。 通过以上步骤,你就可以将原本通过 Docker 部署的 Umami 迁移到使用源码部署的方式,并且保留原有的数据。 2025年11月更新 MySQL被官方抛弃了……我已经将接近100GB的MySQL数据转换了……MySQL确实不太香……...









![Umami 源码部署记录[非docker]](https://img.apicdo.top/i/1/2025/09/11/cd6106d1a45f8c4175f50c3bf4da8211-1.webp)