chore: add Dockerfile and docker-compose.yml for NAS deployment
This commit is contained in:
+24
@@ -0,0 +1,24 @@
|
||||
FROM node:22-alpine
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# 复制依赖配置并安装
|
||||
COPY package*.json ./
|
||||
RUN npm install --production
|
||||
|
||||
# 复制其余的项目代码
|
||||
COPY sub2proxy.js ./
|
||||
COPY public/ ./public/
|
||||
COPY templates/ ./templates/
|
||||
|
||||
# 创建持久化存储的目录与文件
|
||||
RUN mkdir -p out
|
||||
|
||||
# 暴露 3000 端口
|
||||
EXPOSE 3000
|
||||
|
||||
# 环境变量:让服务不自动在后台执行浏览器拉起命令
|
||||
ENV HEADLESS=true
|
||||
|
||||
# 启动服务
|
||||
CMD ["node", "sub2proxy.js"]
|
||||
@@ -0,0 +1,16 @@
|
||||
services:
|
||||
sub2proxy:
|
||||
build: .
|
||||
container_name: sub2proxy
|
||||
ports:
|
||||
- "3000:3000"
|
||||
volumes:
|
||||
# 映射订阅配置文件,防止容器重启后订阅丢失
|
||||
- ./subs.json:/app/subs.json
|
||||
# 映射模板文件夹,方便在 NAS 目录下随时修改或添加自定义配置模板
|
||||
- ./templates:/app/templates
|
||||
# 映射输出文件夹,生成的文件和历史记录将同步保存在 NAS 主机目录中
|
||||
- ./out:/app/out
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- HEADLESS=true
|
||||
+4
-2
@@ -794,8 +794,10 @@ function startServer() {
|
||||
server.listen(PORT, () => {
|
||||
console.log(`CatMata Sub2Proxy 控制面板已启动!`);
|
||||
console.log(`本地访问地址: http://localhost:${PORT}`);
|
||||
console.log(`正在自动打开默认浏览器...`);
|
||||
openBrowser(`http://localhost:${PORT}`);
|
||||
if (process.env.HEADLESS !== 'true') {
|
||||
console.log(`正在自动打开默认浏览器...`);
|
||||
openBrowser(`http://localhost:${PORT}`);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user