e621ng/e621ng

GitHub: e621ng/e621ng

这是一个用于构建和管理带有详细标签系统的媒体内容社区的开源 Web 应用平台。

Stars: 530 | Forks: 104

E621

Releases
Issues
Pull Requests
GitHub branch check runs

## 安装说明(简易模式 - 适用于开发环境) ### 前置条件 * 最新版本的 Docker ([下载](https://docs.docker.com/get-docker))。 * 最新版本的 Docker Compose ([下载](https://docs.docker.com/compose/install))。 * Git ([下载](https://git-scm.com/downloads))。 如果你使用 Windows 系统,Docker Compose 已包含在内,无需自行安装。 如果你使用 Linux/MacOS,通常可以通过包管理器安装。 ### 安装步骤 1. 下载并安装[前置条件](#prerequisites)。 2. 使用 `git clone https://github.com/e621ng/e621ng.git` 克隆仓库。 3. 使用 `cd` 进入仓库目录。 4. 使用 `cp .env.sample .env` 复制环境变量示例文件。 5. 仅限 WSL:运行以下命令: `git config core.fileMode false` `cp -ru hooks/ .git` 这将解决权限问题,并设置一个钩子以确保未来文件权限重置为应有的状态。 如果你未使用 WSL,此问题可能不会出现。 6. 运行以下命令: `docker compose run --rm e621 /app/bin/setup` `docker compose up` 首次运行命令后,之后只需使用 `docker compose up` 启动容器。 7. 要确认安装成功,打开你选择的网络浏览器,在地址栏输入 `http://localhost:3000`,查看网站是否能正确加载。系统会自动创建一个管理员账户,用户名和密码分别为 `admin` 和 `hexerade`。 8. 默认情况下,站点将没有任何内容。出于测试目的,你可以使用以下命令生成一些内容: `docker exec -it e621ng-e621-1 /app/bin/populate` 该命令可以多次运行以生成更多内容。 可通过环境变量自定义生成的内容类型。 注意:当 gems 或 js 包更新时,需要执行 `docker compose build` 以使更改在容器中生效。 ### 本地 DText gem 你可能希望在本地实例上测试对 [DText gem](https://github.com/e621ng/dtext) 所做的更改。 建议你重新考虑并反思你的生活选择。 如果你确定要这样做,请遵循以下步骤。 1. 将仓库克隆到一个 `vendor` 目录。例如:`~/e621ng/vendor/dtext/`。 1. `cd ~/e621ng` 2. `mkdir vendor && cd vendor` 3. `git clone https://github.com/e621ng/dtext.git` (根据需要替换为你的本地 fork) 2. 重新构建容器 1. `cd ~/e621ng` 2. `docker compose build --no-cache` 3. 重置 Gemfile.lock:`git checkout HEAD -- Gemfile.lock` 这不是必需的,但可以防止你意外提交错误的更改。 4. 在 `.env` 文件中设置 `LOCAL_DTEXT=true`。 至此,DText 仓库已设置完成。 每当启动 docker 容器时,它将被自动编译。 建议在不活跃处理 DText 仓库相关内容时,将 `LOCAL_DTEXT` 设置为 `false`,然后重新构建容器。 ### 开发环境 此仓库提供了 Dev Container 配置。你可以使用类似 [VSCode 的 Dev Container 扩展](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) 来利用它。只需安装它,在 VSCode 中打开该文件夹,然后点击右下角的按钮在 Dev Container 中打开该文件夹。 #### 我按照上述说明操作但仍无法工作,该怎么办? 尝试以下操作: 1. `docker compose down -v` 删除所有卷。 2. `docker compose build --no-cache` 从头开始重新构建镜像。 3. 从第 5 步开始,按照[说明](#installation)操作。 #### 为什么会出现一堆我无法撤销的更改? 你很可能使用的是 Windows 系统。试试这个,它告诉 Git 停止跟踪文件模式更改: `git config core.fileMode false` #### Truenas / 本地服务器安装 如果你决定将此 docker 镜像部署到外部/本地服务器,你需要记住将 docker-compose.yml 文件中的 `DANBOORU_HOST` 变量更改为服务器的 IP 地址。否则,你将无法访问它,或者图片链接将失效。 特别是对于 Truenas/NAS 盒子用户:你需要使用 shell 本身来设置仓库,设置完成后,你可以使用 Portainer/Dockge 来管理镜像/变量/配置。 ### 测试与代码检查 #### 测试套件 测试套件使用 `parallel_tests` 并行运行。首次运行测试(或在架构更改后),请设置并行测试数据库: ``` docker compose run --rm --entrypoint bin/rake tests parallel:create docker compose run --rm --entrypoint bin/rake tests parallel:load_schema docker compose run --rm --entrypoint bin/rake tests parallel:seed ``` 然后运行套件: ``` docker compose run --rm tests ``` 默认使用 4 个并行工作进程。可通过 `PARALLEL_TEST_PROCESSORS` 覆盖: ``` PARALLEL_TEST_PROCESSORS=8 docker compose run --rm tests ``` #### 代码检查工具 `docker compose run --rm rubocop` 检查 Ruby 代码 `docker compose run --rm linter` 检查 JavaScript 代码 #### 数据库 PostgreSQL 服务器接受外部连接,你可以使用本地客户端访问它。使用 `localhost:34517` 连接到名为 `e621_development` 的数据库,用户名为 `e621`。留空密码,任何内容均可。 ## 生产环境设置 安装步骤与 docker compose 文件相同。当前安装目标是 Ubuntu 20.04。 没有为你执行这些步骤的脚本,因为你需要将它们分开以匹配你的基础设施。 在生产环境中运行单机安装是可能的,但由于 PostgreSQL 和 OpenSearch 之间的磁盘竞争,可能会有些缓慢。 最低内存为 4GB。你需要调整配置文件中的值以匹配可用内存。 如果你的目标是超过十万篇帖子和合理的用户量,你可能需要准备一台数据库服务器。有关这些需求的规划,请参阅 PostgreSQL 和 OpenSearch 的调优指南。 ### 生产环境故障排除 这些说明不适用于所有人。如果你的设置无法正常工作,以下是我通常建议给人们的步骤: 1. 测试数据库。确保你能使用 psql 连接到它。确保表存在。如果失败,你需要正确安装 PostgreSQL、导入初始架构并运行迁移。 2. 使用 Rails 控制台测试 Rails 数据库连接。运行 `Post.count` 以确保 Rails 能够连接到数据库。如果失败,你需要确保你的 Danbooru 配置文件正确。 3. 测试 Nginx 以确保其正常工作。你可能需要调试你的 Nginx 配置文件。 4. 检查所有日志文件。
标签:DNS解析, Docker, Docker Compose, E621, e621ng, Git, NIDS, Syscall, Web开发, 安全可观测性, 安全防御评估, 容器化, 开发环境, 开源项目, 搜索引擎查询, 数据可视化, 数据管道, 测试用例, 版本控制, 版权保护, 环境搭建, 请求拦截, 软件工程, 部署指南