JAVClub/core

恳求稍微详细连贯一些的部署方式

woOzZ2 opened this issue · 13 comments

试了许多次都失败了,数据库需要单独安装吗,是mysql嘛

部署 core 之前请先确定已经部署完 fetcher 了, 不然就算 core 运行起来也不会有数据

数据库是 MySQL, 要求 5.7 及以上

如果依然无法完成可以等待近期 Docker 编排出来使用 Docker 部署

我目前写了个Dockerfile把fetcher和core都给打包进去了 还不太完善
打算过几天整整有没有pr给你交一份

还有这边我是推荐docker-compose的不论维护还是构建都会方便很多
除此之外还可以整一个phpmyadmin进去管理数据库 这样的话我们可以制作一份初始数据库表单以便用户直接导入设置 对于我Google了半天USE SELECT SHOW的菜鸡会比较友好

# From ubuntu, we build our system
FROM ubuntu

# Depends
FROM node as node
FROM rclone/rclone as rclone
FROM linuxserver/ffmpeg as ffmpeg
FROM linuxserver/qbittorrent as qbit
#     environment:
#       - PUID=1000
#       - PGID=1000
#       - TZ=Europe/London
#       - UMASK_SET=022
#       - WEBUI_PORT=8080
#     volumes:
#       - /path/to/appdata/config:/config
#       - /path/to/downloads:/downloads
#     ports:
#       - 6881:6881
#       - 6881:6881/udp
#       - 8080:8080

COPY --from=node / /
COPY --from=rclone/rclone / /
COPY --from=linuxserver/ffmpeg / /
COPY --from=linuxserver/qbittorrent / /

# just in case
RUN mkdir -p /opt &> /dev/null

# do config setup...
RUN cd /opt && git clone https://github.com/JAVClub/core.git ./core --depth=1
RUN cd /opt/core && npm i
RUN cd /opt/core && mv config defaultconfigs

RUN cd /opt && git clone https://github.com/JAVClub/fetcher.git ./fetcher --depth=1
RUN cd /opt/fetcher && npm i

# ports things
EXPOSE 3000

# boostrap scripts
RUN printf "#!/bin/bash\n" > /bootstrap.sh
RUN printf "FILE=/opt/core/config/dev.json\nif [ -f \"\$FILE\" ]; then\n    echo \"$FILE already exist\"\nelse\n    echo \"\$FILE does not exist\"\n    mkdir -p /opt/core/config && cp /opt/core/defaultconfigs/dev.example.json /opt/core/config/dev.json\nfi\n" >> /bootstrap.sh
RUN printf "cd /opt/core && NODE_ENV=dev node src/app.js &\n" >> /bootstrap.sh
RUN printf "wait < <(jobs -p)\n" >> /bootstrap.sh

RUN chmod +x /bootstrap.sh

# Starting up....
CMD ["/bootstrap.sh"]
  
version: '3.2'

services:

  app:
    build: dockerbuild
    ports:
      - 3000:3000
    volumes: 
      - ./mnt/app/config:/opt/core/config
    links: 
      - database

  pma:
    image: phpmyadmin/phpmyadmin
    environment:
      PMA_HOST: database
      PMA_PORT: 3306
      MYSQL_ROOT_PASSWORD: A8635AE6-9C11-4BFF-8FC4-1A58DC105A73
    ports: 
      - 3001:80
    links:
      - database:database

  database:
    image: linuxserver/mariadb
    environment:
      - MYSQL_ROOT_PASSWORD=A8635AE6-9C11-4BFF-8FC4-1A58DC105A73
      - MYSQL_DATABASE=javclub
      - MYSQL_USER=javclub
      - MYSQL_PASSWORD=javclub-1A58DC105A73
    volumes:
      - ./mnt/database/config:/config
    restart: unless-stopped

@LoliLin 我是把fetcher单独放置在ubuntu 18.04上面,另外一台克隆机,放置webcore还有nginx ,两台虚拟机均在本地虚拟机中,内网环境。

mysql8.0
nodejs 12.16.1

fetcher中只做了npm i.env 文件并没有找到

web仓库 执行到第二部npm run serve出错,如下

ERROR  Failed to compile with 1 errors                                 13:10:38

This relative module was not found:

* ./config in ./src/main.js

core中
config/dev.json配置文件中

"proxy": [
        "https://your.img.proxy/"

是否可以写http://127.0.0.1:3000

nginx的配置文件如下

location /api {
        proxy_pass http://127.0.0.1:3000/;
    }

mysql由于5.7不支持utf8mb4_0900_ai_ci 直接使用了8.0,并开启了8.0的强加密特性。最后导入了数据表

fetcher 因为以前写得太复杂最近重构了一遍, 目前仅支持 RSS 订阅, 不过很快会继续支持 onejav

Docker 的编排文件也预计近两天出炉, 所以如果不急的话可以等待一下下

@Co2333

除此之外还可以整一个phpmyadmin进去管理数据库 这样的话我们可以制作一份初始数据库表单以便用户直接导入设置 对于我Google了半天USE SELECT SHOW的菜鸡会比较友好

本来就是默认用户使用 PMA 的 🤣

@woozz1

fetcher中只做了npm i,.env 文件并没有找到

需要将 .env.example 复制为 .env

core中
config/dev.json配置文件中

这里的 proxy 是用来代理 JAVbus 中提供的图片资源的, 而下面一段的 Nginx 是用来代理 core 的 API 的, 完全是不同的两个东西

希望往后能看到详细的部署步骤,对于我们这些没有接触过nodejs的noob搞不定啊

尝试了一下实在是写不来文档, 表达能力太差了 (逃

大概加了一点点说明, 希望能有点用

可以克制住自己想把作者往死里揍心情的能力

怎么会呢

希望可以支持一键部署,如果能跑在群晖上,岂不美哉

我也希望一键部署群辉 美滋滋

更新了详细的 Docker 部署方式, 各位可以试试

This issue is closed due to not being active. Please feel free to open it again or create a new one and reference this if you have further questions.