一键部署 acg-faka 发卡系统
一条命令在一台干净的 Linux 服务器上把 acg-faka异次元店铺系统 跑起来。脚本会自动装 Docker、拉上游源码、构建应用镜像nginx PHP-FPM、拉起 MySQL 与 Redis、顺手修掉一个会让安装向导失败的权限坑最后打印安装向导地址和运维命令。适合这样的场景不想手动配 LNMP 和伪静态服务器在国内download.docker.com与 GitHub 都时通时不通希望装完就能进向导而不是先花两小时排网络问题。脚本帮你做了什么环境检查校验 root、识别发行版与架构、检查磁盘内存不足 4GB 且没有 swap 时自动加 2GB swap否则构建 PHP 扩展容易被 OOM 杀掉装 Docker依次探测五个软件源腾讯云内网 / 腾讯云公网 / 阿里云 / 中科大 / 官方要求gpg和dists/codename/Release都能取到才采用装完自动配 Docker Hub 加速并限制容器日志大小拉源码先花 15 秒探测 GitHub通就git clone保留.git日后能git pull不通就依次尝试 5 个国内加速代理下载 tarball生成配置写.env非 amd64 架构自动把 MySQL 换成mariadb:10.6MySQL 5.7 没有 arm64 官方镜像构建加速补丁给上游Dockerfile注入「apt 强制 IPv4 国内 Debian 源」和「Composer 国内源」已打过则跳过构建并启动docker compose up -d --build失败自动重试一次随后修正密钥文件权限等待健康检查轮询容器健康状态最多 4 分钟再请求一次首页打印访问地址与数据卷环境要求项目要求系统Linux需 systemdUbuntu / Debian 已实测权限root或sudo内存建议 ≥ 2GB低于 4GB 且无 swap 时脚本自动补 2GB磁盘建议 ≥ 5GB 可用镜像与构建缓存约 3~4GB端口8080可改需空闲并在云厂商安全组放行实测环境Ubuntu 22.04.5 LTSx86_642 vCPU / 2GB 内存。从零开始到站点可访问约9~12 分钟其中一半以上时间花在容器内编译 PHP 扩展。快速开始第一步下载并执行curl-fsSL-o/tmp/acgfaka.sh https://raw.githubusercontent.com/shubaocai/sbc-acgfaka/main/install_acgfaka.shsudobash/tmp/acgfaka.shraw.githubusercontent.com在国内时通时不通可以换 jsDelivrcurl-fsSL-o/tmp/acgfaka.sh https://cdn.jsdelivr.net/gh/shubaocai/sbc-acgfakamain/install_acgfaka.shsudobash/tmp/acgfaka.sh也可以 clone 下来跑gitclone https://github.com/shubaocai/sbc-acgfaka.gitcdsbc-acgfakasudobashinstall_acgfaka.sh第二步走安装向导浏览器打开http://服务器IP:8080/三步走完步骤要做什么1. 环境检测页面自动检测全绿直接下一步2. 数据库什么都不用改密码框留空直接点「下一步」3. 管理员填邮箱、昵称、登录密码完成安装数据库密码在首次启动时随机生成、写进 Docker 卷acg_secrets向导直接读取既不用你想密码密码也不经过浏览器。第三步进后台http://服务器IP:8080/admin会跳到/admin/authentication/login用刚才填的邮箱和密码登录带验证码。打不开基本都是云厂商安全组没放行 8080去控制台加入站规则即可。踩坑记录脚本里那些看起来啰嗦的分支每一条都是被真实网络环境教出来的。下面 5 个坑按踩到的顺序记一遍。坑 1download.docker.com被 TLS reset装 Docker 第一步是取官方 GPG 公钥结果连着三次都是curl: (35) OpenSSL SSL_connect: Connection reset by peer in connection to download.docker.com:443同一时刻五个国内镜像腾讯云内网、腾讯云公网、阿里云、中科大、清华全部返回 200。所以脚本改成按顺序探测而且不只是取 GPG还要求能拿到对应发行版代号jammy/bookworm的Release文件才算可用——避免手滑选到一个没有该发行版目录的源formin$DOCKER_MIRRORS;doifcurl-fsSL--connect-timeout8-m30--retry2$m/gpg-o/tmp/docker.gpg\curl-fsS-m20-o/dev/null$m/dists/$CODENAME/Release;thenMIRROR_BASE$m;breakfidone实测命中第一个源腾讯云内网就装好了 Docker整个过程不到 40 秒。想手动指定DOCKER_APT_MIRRORhttps://mirrors.aliyun.com/docker-ce/linux/ubuntu。坑 2容器里没有 IPv6apt-get update卡了 8 分半第一次构建镜像时卡在 Dockerfile 的第一层 apt 上8 分 39 秒没有任何输出负载 0.00。看起来像死机其实是主机解析 deb.debian.org → 2a04:4e42:8c::644 IPv6 地址 容器里 ip -6 addr → 只有 ::1 没有 IPv6 出口容器默认只有 IPv4而 Debian 官方源同时有 AAAA 记录apt 会去连 IPv6 地址然后一直等超时。跑到宿主上测deb.debian.org只要 1.5 秒谁也想不到问题出在协议栈上。修法是构建时注入两行只在构建阶段生效printf Acquire::ForceIPv4 true;\n /etc/apt/apt.conf.d/99force-ipv4 sed -i s|deb.debian.org|mirrors.cloud.tencent.com|g; s|security.debian.org|mirrors.cloud.tencent.com|g \ /etc/apt/sources.list /etc/apt/sources.list.d/*.sources加完之后同一层 apt 只花了约 2 分钟。坑 3GitHub 时通时断git clone还会无限挂住有一轮git clone连续失败两次第三次切到gitclone.com之后挂了 8 分钟进程在select()上干等没有任何超时。原因是 git 默认没有停滞多久就放弃的设定。现在的做法是三层保险exportGIT_TERMINAL_PROMPT0exportGIT_HTTP_LOW_SPEED_LIMIT1000GIT_HTTP_LOW_SPEED_TIME30# 低速 30 秒自动断开timeout15gitls-remote$REPO_URLHEAD/dev/null21# 先探 15 秒# 通了 → git clone不通 → 依次尝试 5 个加速代理下载 tarball顺带实测了一下各条线路同一个时刻ghfast.top的 tarball13.8MB / 3.8 秒最快gh-proxy.com、codeload.github.com、ghproxy.net也都通而github.moeyy.xyz、ghproxy.cc已经挂了。这类代理寿命都不长所以脚本按列表顺序试全试完才报错。坑 4向导报Access denied for user acg172.18.0.4 (using password: NO)安装向导第 2 步数据库填好点下一步红色报错注意最后那句using password: NO——它是在用空密码连库。翻源码看逻辑$file$get(ACG_DB_PASSWORD_FILE);// /secrets/mysql_appif($file!is_readable($file)){// ← 这一句在 php-fpm 里是 false$passwordtrim(file_get_contents($file));}if($password){$password$get(ACG_DB_PASSWORD);}生成密码的secrets-init.sh写死了chmod 600root:root而 php-fpm 是以www-data跑的于是is_readable()为 falseACG_DB_PASSWORD环境变量也是空最后拿空密码去连。验证方式很简单dockerexec-uwww-data acg-faka-app php-r\$fgetenv(ACG_DB_PASSWORD_FILE); var_dump(is_readable($f));# 修复前bool(false) 修复后bool(true)脚本第 6 步会自动按 compose 标签找到acg_secrets卷并把两个密钥文件改成 644卷只读挂给 app 和 mysql 两个容器有 docker 权限的人本来就能读它放宽没有实际损失。权限修好后用向导自己的接口测一次就能看到它已经越过数据库这一步curl-s-XPOST-duse_builtin1http://127.0.0.1:8080/install/submit# {code:0,msg:管理员邮箱格式不正确} ← 报的是下一步的校验说明连库已通过坑 5向导停在「导入语言包」不动这次不是网络问题是前端被自己的保护机制误导。上游submit()的顺序是SQL::import(...);// 导数据库setConfig(...database.php);// 写配置file_put_contents(/kernel/Install/Lock,);// ① 先写安装锁try{$this-importLanguagePacks();}catch(...){}// ② 再导语言包失败不报错return$this-json(200,安装完成);而submit()第一行就是装过就拒绝if(file_exists(BASE_PATH./kernel/Install/Lock)){thrownewJSONException(您已经安装过了…);}第一次请求其实已经干完了活数据库 30 张表、语言包 en/ja/zh-tw 各 4153 条共 12459 条都在页面进度条还在等浏览器又发了一次请求拿到的是「您已经安装过了」前端不认识这个返回就永远停在「导入语言包」。处理方式关掉向导页直接访问/admin登录即可。想重跑向导就删掉安装锁cd/opt/acg-fakadockercomposeexecapprm-f/data/install/Lock时间都花在哪了阶段耗时说明装 Docker~40 秒走国内镜像源拉源码~15 秒GitHub 直连探测通过拉基础镜像~40 秒php:8.2-fpm/mysql:5.7/redis:7.2-alpine构建第 1 层aptnginx、supervisor、certbot、mariadb、redis~2 分钟加了 ForceIPv4 之后之前卡 8 分半构建第 2 层编译 PHP 扩展36 分钟gd / zip / bcmath / opcache / pdo_mysql pecl redis2 核满载构建第 3 层composer 装依赖12 分钟走国内 Composer 镜像起容器 MySQL 初始化3060 秒所以首次约 9~12 分钟镜像和构建缓存还在时重跑脚本大约1 分钟所有层命中缓存只剩打 tag 起容器 健康检查。想彻底重来用docker compose down -v但注意这条命令会连数据卷一起删。常用环境变量变量说明默认ACG_PORT对外端口8080ACG_DIR安装目录/opt/acg-fakaSKIP_DOCKER_INSTALL已装 Docker 时跳过安装0USE_MARIADB用mariadb:10.6替代mysql:5.7非 amd64 自动为1REGISTRY_MIRRORDocker Hub 加速地址留空不配置腾讯云DOCKER_APT_MIRROR指定 Docker 软件源自动探测五源CN_DEBIAN_MIRROR/COMPOSER_MIRROR构建时使用的 Debian / Composer 源腾讯云ACG_TARBALL_URLS源码下载源按顺序尝试5 个国内加速代理换端口的写法sudoACG_PORT9090bashinstall_acgfaka.sh用sudo传环境变量记得加-E否则变量会被 sudo 丢掉。日常运维cd/opt/acg-fakadockercomposeps# 查看状态dockercompose logs-fapp# 实时看日志dockercompose restart app# 重启应用dockercompose down# 停止数据卷保留dockercompose up-d--build# 更新代码后重建# 数据库备份dockercomposeexec-Tmysqlsh-c\exec mysqldump -uroot -p$(cat /secrets/mysql_root) --databases acg_fakaacg-$(date%F).sql# 站点数据卷备份配置、上传、插件、模板、安装锁dockerrun--rm-vacg_data:/data-v$PWD:/backupalpine\tarczf /backup/acg-data-$(date%F).tar.gz-C/data.数据不在安装目录里全在四个命名卷acg_data、acg_mysql、acg_redis、acg_secrets。换机器或重装前记得把前两个备份出来。合规提示acg-faka 是 MIT 协议的开源项目作者在仓库 README 中明确声明本程序初衷是提供学习和研究机会未取得合法资质严禁用于任何商业用途尤其是禁止利用本程序搭建平台进行商品销售。部署与使用前请自行确认合规性。MIT License © 2026 鼠宝财 项目地址https://github.com/shubaocai/sbc-acgfaka

相关新闻

OpenLayers 10.2.1 补丁版解析:移除重投影瓦片缓存,修复缺失瓦片问题

OpenLayers 10.2.1 补丁版解析:移除重投影瓦片缓存,修复缺失瓦片问题

前端GIS数据可视化 【免费下载链接】openlayers OpenLayers 项目地址: https://gitcode.com/gh_mirrors/op/openlayers 点击查看 免费下载 OpenLayers 10.2.1 是一个聚焦于修复的补丁版本,核心变更是通过 PR #16221「Get rid of reprojection tile cach…

2026/9/24 7:06:50 阅读更多 →
Manim 渲染故障排查实战指南:video-use manim-video 技能的 Troubleshooting 全解

Manim 渲染故障排查实战指南:video-use manim-video 技能的 Troubleshooting 全解

AI 技能/插件音视频视频处理人工智能 【免费下载链接】video-use Edit videos with coding agents 项目地址: https://gitcode.com/GitHub_Trending/vid/video-use 点击查看 免费下载 导读 本指南以 video-use 仓库中 manim-video 技能的 troubleshooting.md 为骨…

2026/9/24 7:06:50 阅读更多 →
PostGraphile wrapPlans 解析器仿真警告(wpr)深度解析:成因、风险与三种解决方案

PostGraphile wrapPlans 解析器仿真警告(wpr)深度解析:成因、风险与三种解决方案

后端API网关 【免费下载链接】crystal 🔮 Graphiles Crystal Monorepo; home to Grafast, PostGraphile, pg-introspection, pg-sql2 and much more! 项目地址: https://gitcode.com/gh_mirrors/cry/crystal 点击查看 免费下载 本篇文章围绕 PostGraphi…

2026/9/24 7:05:49 阅读更多 →

最新新闻

STM32F103寄存器方式流水灯实验报告

STM32F103寄存器方式流水灯实验报告

STM32F103寄存器方式流水灯实验报告 实验引脚:PA0、PB0、PA5、PC13;低电平点亮;流水间隔1s;包含板载PC13 LED。 文章目录STM32F103寄存器方式流水灯实验报告一、实验目的二、实验环境三、硬件引脚与电路说明四、实验原理五、完整…

2026/9/24 7:46:13 阅读更多 →
鼠标每隔几秒自动点击怎么设置?办公重复点击的间隔、坐标与快捷键方法

鼠标每隔几秒自动点击怎么设置?办公重复点击的间隔、坐标与快捷键方法

日常办公中,有些操作并不复杂,却会因为需要反复执行而不断消耗时间。例如连续确认位置固定的弹窗、按照一定时间间隔刷新数据页面,或者在一些固定流程中重复点击同一个按钮。这类任务单次操作可能只需要几秒,但当次数增加到几十次…

2026/9/24 7:46:13 阅读更多 →
RL-赵-(六):随机逼近与随机梯度下降02-1:Stochastic approximation(SA/随机逼近)算法【无需知道目标函数的表达式或它的导数或梯度表达式】

RL-赵-(六):随机逼近与随机梯度下降02-1:Stochastic approximation(SA/随机逼近)算法【无需知道目标函数的表达式或它的导数或梯度表达式】

二、随机逼近/Stochastic approximation (SA)算法 随机逼近/Stochastic approximation (SA): SA指的是一类广泛的随机迭代算法,用来求解方程的根或者优化问题。 与其他求根算法(如基于梯度的方法)相比,SA的强大之处在于它不需要知道目标函数的表达式,也不知道它的导数或…

2026/9/24 7:46:13 阅读更多 →
EmDash 博客模板深度指南:基于 Astro 的全栈 CMS 站点搭建与定制

EmDash 博客模板深度指南:基于 Astro 的全栈 CMS 站点搭建与定制

CMS后端前端插件系统 【免费下载链接】emdash EmDash is a full-stack TypeScript CMS based on Astro; the spiritual successor to WordPress 项目地址: https://gitcode.com/gh_mirrors/emdas/emdash 点击查看 免费下载 EmDash 是一个基于 Astro 构建的全栈 Typ…

2026/9/24 7:46:13 阅读更多 →
OpenHarmony设备上Flutter内存泄漏与GPU掉帧排查实战指南

OpenHarmony设备上Flutter内存泄漏与GPU掉帧排查实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 7:46:13 阅读更多 →
STM32F407ZGT6实战指南:平衡性、外设与工业级开发要点

STM32F407ZGT6实战指南:平衡性、外设与工业级开发要点

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 7:45:12 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/23 4:49:06 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →