{"id":26062395,"url":"https://github.com/work-design/dummy","last_synced_at":"2025-07-10T08:35:20.284Z","repository":{"id":29102926,"uuid":"32632295","full_name":"work-design/dummy","owner":"work-design","description":"基础 rails 项目 for engine test","archived":false,"fork":false,"pushed_at":"2025-05-19T09:15:11.000Z","size":12977,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-05-19T10:30:55.653Z","etag":null,"topics":["design","rails","work"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/work-design.png","metadata":{"funding":{"github":["qinmingyuan"]},"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-03-21T13:05:40.000Z","updated_at":"2025-05-19T09:15:15.000Z","dependencies_parsed_at":"2024-03-06T14:57:58.406Z","dependency_job_id":"ae6dd894-218a-459c-a0f0-b4a271a6ef2a","html_url":"https://github.com/work-design/dummy","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/work-design/dummy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/work-design%2Fdummy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/work-design%2Fdummy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/work-design%2Fdummy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/work-design%2Fdummy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/work-design","download_url":"https://codeload.github.com/work-design/dummy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/work-design%2Fdummy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264551672,"owners_count":23626536,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["design","rails","work"],"created_at":"2025-03-08T16:00:06.195Z","updated_at":"2025-07-10T08:35:18.516Z","avatar_url":"https://github.com/work-design.png","language":"JavaScript","funding_links":["https://github.com/sponsors/qinmingyuan"],"categories":[],"sub_categories":[],"readme":"# dummy\n\n这是一个 Work Design 精心打磨后的 Rails 应用模板，主要用于：\n* Rails Engine 测试：Work Design 旗下的所有 engine 下的 test/dummy 都引用本项目作为测试的 dummy 应用；\n* 作为模板初始化一个新的 Rails 应用；\n\n本项目具备如下特性：\n* 最佳实践：集成了 Work Design 的几个基础项目，给你带来了完全没有副作用的开发体验，包括：\n  * 自动生成 migration: `bin/rails g rails_com:migrations`，[详见]()\n\n## 如何使用\n1. Git clone 当前项目\n  * `git clone git@github.com:work-design/dummy.git`\n  * `git submodule update --init` \n  * `git submodule foreach git checkout main`\n2. 安装依赖：\n  * `bundle`\n  * `npm install`\n3. 个性化配置：\n  * 修改 development 配置文件：`bin/rails credentials:edit -e development`\n  * 设置选项：\n    * database_user\n    * secret_key_base\n3. 非加密个性化配置：`config.x`    \n4. 新增 engine 后：\n  * `bin/rails g rails_com:migrations`\n  * 重启 应用\n\n## 开始开发\n1. 启动: `bin/dev`，将启动静态资源（javascript/css/image）的开发编译，命令包含：\n  * `npm build --watch`： 编译 js；\n  * `npm build:css --watch`: 编译 css；\n  * `bin/rails s`: 启动 rails server；\n  * `bin/jobs`: 启动队列任务；\n2. 浏览器里访问: `lvh.me:3000`\n\n## 部署\n\n### 基于 kamal 第一次部署\n  * 购买云主机；\n    * 把 root 账号 ssh 登录授权；\n    * 安全策略，开放 80/443 端口；\n    * [非 root 用户](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user)\n  * `bin/kamal setup`\n  \n### 基于 kamal 后续部署\n  * 进入项目目录；\n  * 拉取最新代码（如需要）：\n    * `git pull`\n    * `git submodule update --rebase` 更新子模块\n  * 更新依赖（如需要）\n    * `bundle install` 安装 gems\n    * `npm install` 安装 js 依赖\n  * 运行部署：`bin/kamal deploy`\n\n## 应用相关 Docker 服务\n\n### 直接使用 docker 启动\n\n```\ndocker run --detach --restart unless-stopped --env RAILS_ENV=\"production\" --env RAILS_MAX_THREADS=\"20\"  --log-opt max-size=\"10m\" --volume ~/app/acme:/rails/acme --volume ~/app/storage:/rails/storage --publish 3000:3000\n```\n\n### Docker 数据持久化目录位于家(linux user)目录的 app 目录下，如有需要可对该目录进行定期备份，包含：\n  * storage: 默认为数据所在目录, 取决于 database.yml 配置；\n  * tmp/storage: 上传文件所在目录, 取决于 storage.yml 配置;\n\n\n## 注意\n* 如果是在本项目下运行 Rails，请使用 `bin/rails`, 这样会正确设置 ENV['BUNDLE_GEMFILE'] 的值；\n* 检查 public 文件夹下是否存在 manifest.json 文件，如果该文件存在，则在本地使用的是编译后的静态资源；\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwork-design%2Fdummy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwork-design%2Fdummy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwork-design%2Fdummy/lists"}