\n\n\n##平台历史\n本世纪以来,随着软件创新需求和应用规模的飞速增长,软件开发队伍、开发资源、可信评估呈现出规模化、开放化、持续化的新特点,软件开发活动面临协同难、复用难、评估难的制约,经典的工程化软件开发方法面临严峻挑战,严重影响了软件开发效率和质量的提升。在此背景下,国防科技大学联合国内多所知名高校、科研机构和软件企业,围绕开源创新开展了持续性探索,构建形成了以Trustie(确实)为代表的一系列开源创新服务基础设施。自2006年以来,Trustie经过三个阶段的演化发展,于2021年迎来全面升级:在中国计算机学会(CCF)的带领指导下,共同推进产学研用深度融合,共筑新一代开源创新服务平台GitLink![详细](https://www.gitlink.org.cn/aboutus \"详细\")\n\n##特色功能\n\n- **分布式协作开发**:支持在线文件编辑、分支管理、贡献统计、仓库复刻、合并请求\n\n- **一站式过程管理**:支持易修、里程碑、通知提醒、标签归档、Wiki文档、组织管理\n\n- **高效流水线运维**:提供轻量级工作流引擎,支持自定义配置、静态扫描、制品构建\n\n- **多层次代码分析**:支持代码溯源分析、许可证风险分析、开源漏洞检测和加固建议\n\n- **多维度用户画像**:支持开发活动统计、贡献日历、能力建模、角色与专业定位分析\n\n##规划功能\n\n- 平台博客模块\n- 工具市场\n- Wiki文件夹功能\n- 代码质量溯源分析\n- 在线研讨系统\n- 项目指数\n\n更多详情请查阅[【Wiki文档-规划功能】](https://www.gitlink.org.cn/Gitlink/forgeplus/wiki \"【详情】\")\n\n##参与贡献\n\n贡献流程请查阅[【Wiki文档-GitLink协作开发流程】](https://www.gitlink.org.cn/Gitlink/forgeplus/wiki \"【Wiki文档-GitLink协作开发流程】\")\n\n##联系我们\n- 官方论坛\nhttps://forum.gitlink.org.cn/forums\n- 官方邮箱\ngitlink@ccf.org.cn\n- 官方QQ群\n群号1071514693\n\n![](/api/attachments/378778)\n\n\n\n","website":"https://www.gitlink.org.cn","lesson_url":"","identifier":"forgeplus","invite_code":"SUB6J5","name":"确实开源","description":"GitLink(确实开源)是中国计算机学会CCF官方指定的开源创新服务平台","project_id":5988,"repo_id":4844,"issues_count":78,"pull_requests_count":0,"project_identifier":"forgeplus","praises_count":54,"forked_count":62,"watchers_count":63,"versions_count":2,"version_releases_count":15,"version_releasesed_count":15,"permission":"","mirror_url":null,"mirror":false,"has_actions":false,"web_site":null,"type":0,"open_devops":true,"topics":[{"id":1,"name":"ruby"},{"id":3,"name":"开源"},{"id":4,"name":"gitlink"},{"id":5,"name":"确实"},{"id":6,"name":"ccf"}],"watched":false,"praised":false,"status":1,"forked_from_project_id":null,"empty":false,"size":"749.7 MB","ssh_url":"git@code.gitlink.org.cn:Gitlink/forgeplus.git","clone_url":"https://gitlink.org.cn/Gitlink/forgeplus.git","default_branch":"master","full_name":"Gitlink/forgeplus","private":false,"license_name":"MulanPSL-2.0","branches_count":7,"tags_count":16,"author":{"id":88495,"login":"Gitlink","type":"Organization","name":"GitLink","image_url":"images/avatars/Organization/88495?t=1666228706"}},"projectBase":{"identifier":"forgeplus","name":"确实开源","platform":"forge","id":5988,"repo_id":4844,"open_devops":false,"type":0,"author":{"login":"Gitlink","name":"GitLink","type":"Organization","image_url":"images/avatars/Organization/88495?t=1666228706"},"project_category_id":12,"project_language_id":1,"license_id":359,"jianmu_devops_url":"https://jianmu.gitlink.org.cn","cloud_ide_saas_url":"https://saasfactory.test.opentrs.com/oauth/login?product_account_id=PA1001218&tenant_code=TI1001383&oauth_url=https://www.gitlink.org.cn/api/users/info.json&token=6a2a7a21ca3843ecb172ff3febbe04ca7fcbf909","open_blockchain":false,"has_dataset":false,"open_portrait":false,"ignore_id":96},"projectEntries":{"last_commit":{"commit":{"sha":"adf77df1bf75292aa3ae6a02d949574089fbe318","message":"Merge pull request '20240823版本' (#345) from Trustie/forgeplus:trustie_server into master\n","author":{"name":"xxq250","email":"xxq250@qq.com","date":"2024-08-23T15:06:57+08:00"},"committer":{"name":"xxq250","email":"xxq250@qq.com","date":"2024-08-23T15:06:57+08:00"},"timestamp":1724396817,"time_from_now":"3个月前"},"author":{"id":"86107","login":"xxq250","name":"肖小琼","type":"User","image_url":"images/avatars/User/86107?t=1668998259"},"committer":{"id":"86107","login":"xxq250","name":"肖小琼","type":"User","image_url":"images/avatars/User/86107?t=1668998259"}},"commits_count":5758,"zip_url":"https://www.gitlink.org.cn/api/Gitlink/forgeplus/archive/master.zip","tar_url":"https://www.gitlink.org.cn/api/Gitlink/forgeplus/archive/master.tar.gz","entries":[{"name":"app","path":"app","sha":"3f2b303b6f5d8749fbdbb29cae298c90766dfe4c","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"fixed 项目列表支持多个标签名称查询\n","sha":"19c2367257c1a8f4ef5696d879247d06b94770fd","created_at":"2024-08-21 11:00","time_from_now":"3个月前","created_at_unix":1724209254}},{"name":"bin","path":"bin","sha":"34b2de2733d19b1c6260331365418e3ee4388f2e","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"ADD action cable for migrate project\n","sha":"c1a5c390f73ba0637c2023690e13221eb6b6070e","created_at":"2020-07-02 15:49","time_from_now":"4年前","created_at_unix":1593676162}},{"name":"cable","path":"cable","sha":"57a6ec294b834348eb037a567ffc3bc6479534a2","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"ADD action cable for migrate project\n","sha":"c1a5c390f73ba0637c2023690e13221eb6b6070e","created_at":"2020-07-02 15:49","time_from_now":"4年前","created_at_unix":1593676162}},{"name":"config","path":"config","sha":"373e19a28e4175d3dc79ddc2555c5571690f145a","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"Merge branch 'pre_trustie_server' into trustie_server\n","sha":"65dba54a417777fd0e746d6a62582098982d7b3b","created_at":"2024-08-12 15:04","time_from_now":"3个月前","created_at_unix":1723446298}},{"name":"db","path":"db","sha":"185136366f507b6ce1d7e63772799f1bc5759a9c","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"Merge branch 'pre_trustie_server' into trustie_server\n","sha":"8819c9b9ae57ef81fd7c3b02964c81cdef9b86af","created_at":"2024-08-09 11:31","time_from_now":"3个月前","created_at_unix":1723174267}},{"name":"docs","path":"docs","sha":"8804ff08920afba8b61e8106f570c467f5a3f18e","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"add figs\n\nSigned-off-by: young <1593815610@qq.com>\n","sha":"9835d69da041c54145a2869c004b63e783bb3f0e","created_at":"2022-02-24 16:18","time_from_now":"2年前","created_at_unix":1645690724}},{"name":"gitea","path":"gitea","sha":"16d3f06059351d30b2384a3cafe19fd57e4e261e","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"整理gitea docker配置文件\n","sha":"d1c8f1aeadd7358cb01ffb743a928bdf26043e86","created_at":"2023-05-10 18:38","time_from_now":"1年前","created_at_unix":1683715115}},{"name":"lib","path":"lib","sha":"e17e0786b01faaf4d2b2a17652b48ed0757d353e","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"Merge branch 'pre_trustie_server' into trustie_server\n","sha":"0414086daaeb087c054565c8314c9577028f9b01","created_at":"2024-05-10 15:12","time_from_now":"7个月前","created_at_unix":1715325144}},{"name":"public","path":"public","sha":"b334c9fa48a06b66b97999e2fe054ae1d9b9f01b","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"sitemaptest.xml\n","sha":"97af146a30e84bd05b43e6c477d6907672c87b5c","created_at":"2024-07-22 09:41","time_from_now":"4个月前","created_at_unix":1721612516}},{"name":"spec","path":"spec","sha":"922b568637abb708c3e0efb82131f399b50f2f0b","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"新增:开源大赛战队同步保存至gitlink\n","sha":"caa7acc654a80eaef130b849183f43c3359fd9cc","created_at":"2024-05-22 11:05","time_from_now":"6个月前","created_at_unix":1716347140}},{"name":"test","path":"test","sha":"714fadd496876bdb9f7c5e725dc4533002bd0dec","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"fixed bot安装仓库列表必须使用access_tokens获取到bot的token才能查询\n","sha":"80fa5330b2e374587eca29b5e835ac6a41bc517d","created_at":"2023-04-04 17:38","time_from_now":"1年前","created_at_unix":1680601128}},{"name":"tmp","path":"tmp","sha":"29a422c19251aeaeb907175e9b3219a9bed6c616","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"init project\n","sha":"2937b2a94deace53d2b5648585eef3f8e07896a8","created_at":"2020-03-09 00:40","time_from_now":"4年前","created_at_unix":1583685616}},{"name":"vendor","path":"vendor","sha":"e77343b0d4dc816d9c602bfd4cd465759228eb53","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"init project\n","sha":"2937b2a94deace53d2b5648585eef3f8e07896a8","created_at":"2020-03-09 00:40","time_from_now":"4年前","created_at_unix":1583685616}},{"name":"warn","path":"warn","sha":"c6d04efea20262eb105054d5e4c9c677c049b46e","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"init project\n","sha":"2937b2a94deace53d2b5648585eef3f8e07896a8","created_at":"2020-03-09 00:40","time_from_now":"4年前","created_at_unix":1583685616}},{"name":".gitignore","path":".gitignore","sha":"d0186c4a3e201807a674ca4cef0d895df519d167","type":"file","submodule_git_url":null,"size":1535,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"update model page url\n","sha":"3a0a95a18fea1d1028600c6b4973b6abd8852192","created_at":"2023-12-21 14:13","time_from_now":"11个月前","created_at_unix":1703139222}},{"name":".rspec","path":".rspec","sha":"c99d2e7396e14ac072c63ec8419d9b8fede28d86","type":"file","submodule_git_url":null,"size":22,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"ADD sync trustie data\n","sha":"bf5e191efa8a9aa74022186cad0b4cbde492067f","created_at":"2020-03-19 17:17","time_from_now":"4年前","created_at_unix":1584609447}},{"name":".trustie-pipeline.yml","path":".trustie-pipeline.yml","sha":"8f326548f6587dfb1bf9b942c2579f1b2225264a","type":"file","submodule_git_url":null,"size":310,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"更新 '.trustie-pipeline.yml'\n","sha":"6bc9ca50ee7af3af0337abbb93a97323416cd7d6","created_at":"2020-11-30 17:23","time_from_now":"4年前","created_at_unix":1606728199}},{"name":"CHANGELOG.md","path":"CHANGELOG.md","sha":"d0a865bba6000ce0851fca27bdd64e6cced1648e","type":"file","submodule_git_url":null,"size":5502,"is_readme_file":0,"content":null,"target":null,"commit":{"message":"fix: 易修 to 疑修\n","sha":"da4fd3a762db5857452be906c2cf35009db0cbc8","created_at":"2021-12-17 15:35","time_from_now":"2年前","created_at_unix":1639726530}},{"name":"Dockerfile","path":"Dockerfile","sha":"c7320f6cd5e05d4a280b21b856ace46bc8f4bd4c","type":"file","submodule_git_url":null,"size":1856,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"整理docker配置文件\n","sha":"bf1ffadf41fd9a2fc73bcc3d259a2992146169c6","created_at":"2023-05-10 17:41","time_from_now":"1年前","created_at_unix":1683711675}},{"name":"Dockerfile-ruby","path":"Dockerfile-ruby","sha":"1dab7af6e9f48c27ef7c123b1eb7be0fa0535ad2","type":"file","submodule_git_url":null,"size":764,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Add Dockerfile-ruby\n","sha":"b66293b044465d4966d256b5a6965072af7d4c07","created_at":"2023-05-24 10:12","time_from_now":"1年前","created_at_unix":1684894330}},{"name":"Gemfile","path":"Gemfile","sha":"4e7d9d77bea924539dc8663c91d3c1d0e3e1a340","type":"file","submodule_git_url":null,"size":2587,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"新增:流水线运行接口\n","sha":"99266bce7ef10f0202ce0c4afa77b1099dda6ca0","created_at":"2024-07-11 10:38","time_from_now":"4个月前","created_at_unix":1720665506}},{"name":"Gemfile.lock","path":"Gemfile.lock","sha":"838873f318f50d30ea0f2a5461b055168933c150","type":"file","submodule_git_url":null,"size":13684,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"rake copy attachemnt\n","sha":"d0623e4d57d023823ca995dd232ee830ff1c337e","created_at":"2023-12-01 14:59","time_from_now":"12个月前","created_at_unix":1701413984}},{"name":"LICENSE","path":"LICENSE","sha":"2b9b385e6bd98336c9f9bd81c540215c05d173c8","type":"file","submodule_git_url":null,"size":9182,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"FIX change license\n","sha":"1fca089949062dcf274e44c616e1332481a07be1","created_at":"2021-06-09 09:43","time_from_now":"3年前","created_at_unix":1623203014}},{"name":"README.md","path":"README.md","sha":"857627be57a5f7e1e485c78ce9e517472c22d492","type":"file","submodule_git_url":null,"size":6788,"is_readme_file":true,"content":null,"target":null,"commit":{"message":"Update README.md\n","sha":"63cc2528cdec0bff86b0c68e880e864ae118002f","created_at":"2023-06-15 14:47","time_from_now":"1年前","created_at_unix":1686811620}},{"name":"Rakefile","path":"Rakefile","sha":"4d8b3eb3c289d1d0ddb96eb6ffeba28e340b6c3d","type":"file","submodule_git_url":null,"size":233,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"init project\n","sha":"2937b2a94deace53d2b5648585eef3f8e07896a8","created_at":"2020-03-09 00:40","time_from_now":"4年前","created_at_unix":1583685616}},{"name":"api_document.md","path":"api_document.md","sha":"a43147bb2301b4dc7cc7cf2e0225f76f9f88c36f","type":"file","submodule_git_url":null,"size":127860,"is_readme_file":0,"content":null,"target":null,"commit":{"message":"FIX 调整注册接口\n","sha":"1008f1784931329a1231c1539ece6b10efde814b","created_at":"2021-11-02 13:39","time_from_now":"3年前","created_at_unix":1635831585}},{"name":"bootstrap-datetimepicker.css","path":"bootstrap-datetimepicker.css","sha":"537c6a4ce8a214a26295689a530cd059544b9ace","type":"file","submodule_git_url":null,"size":12339,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"init project\n","sha":"2937b2a94deace53d2b5648585eef3f8e07896a8","created_at":"2020-03-09 00:40","time_from_now":"4年前","created_at_unix":1583685616}},{"name":"build_api_docs.sh","path":"build_api_docs.sh","sha":"75b8ceeac5fab770bc6baaff1578dc55d13c00e5","type":"file","submodule_git_url":null,"size":68,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"ADD api document on line\n","sha":"165f8108f70ebae3831c15fd5d1cfe16a2e2da82","created_at":"2021-02-02 14:07","time_from_now":"3年前","created_at_unix":1612246066}},{"name":"config.ru","path":"config.ru","sha":"897c3f927a5fe2cfccc5c5325255986f0ea44986","type":"file","submodule_git_url":null,"size":135,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"init project\n","sha":"2937b2a94deace53d2b5648585eef3f8e07896a8","created_at":"2020-03-09 00:40","time_from_now":"4年前","created_at_unix":1583685616}},{"name":"deploy.md","path":"deploy.md","sha":"83a03878723851a155c850131975e84b95077b01","type":"file","submodule_git_url":null,"size":2450,"is_readme_file":0,"content":null,"target":null,"commit":{"message":"Update deploy.md\n","sha":"72f88c8c13dafc0c53b831e56b870f4f90443140","created_at":"2023-07-18 15:52","time_from_now":"1年前","created_at_unix":1689666774}},{"name":"deployment.md","path":"deployment.md","sha":"e8e510f3812ba1c799b135b0710f5a7f3fdcb76a","type":"file","submodule_git_url":null,"size":43951,"is_readme_file":0,"content":null,"target":null,"commit":{"message":"upate readme\n","sha":"a9358552c0c95a7bc56b3f396cc4a93988f84c27","created_at":"2020-10-13 16:29","time_from_now":"4年前","created_at_unix":1602577789}},{"name":"dir.md","path":"dir.md","sha":"1d3c35e3e56fa7301dc4df25efbfe3396f368219","type":"file","submodule_git_url":null,"size":7113,"is_readme_file":0,"content":null,"target":null,"commit":{"message":"fix: 易修 to 疑修\n","sha":"da4fd3a762db5857452be906c2cf35009db0cbc8","created_at":"2021-12-17 15:35","time_from_now":"2年前","created_at_unix":1639726530}},{"name":"docker-compose.yml","path":"docker-compose.yml","sha":"ef066bc1648cde758336e9fe7d725157b4805969","type":"file","submodule_git_url":null,"size":757,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"优化部署流程\n","sha":"2ac6cdf69d9a32ff5084b49936e9dd6bdcd0cc80","created_at":"2022-09-02 11:15","time_from_now":"2年前","created_at_unix":1662088535}},{"name":"dump.rdb","path":"dump.rdb","sha":"f32855aa2218c0b6fabc47c634896f23703b1770","type":"file","submodule_git_url":null,"size":809,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"change\n","sha":"7ffe33858b2f9107e39e73b36c7294046276549c","created_at":"2020-06-12 18:48","time_from_now":"4年前","created_at_unix":1591958912}}]},"projectMenu":[{"menu_name":"home"},{"menu_name":"code"},{"menu_name":"issues"},{"menu_name":"pulls"},{"menu_name":"devops"},{"menu_name":"dataset"},{"menu_name":"versions"},{"menu_name":"wiki"},{"menu_name":"activity"}],"projectReadMe":"%7B%22type%22%3A%22file%22%2C%22encoding%22%3A%22base64%22%2C%22size%22%3A6788%2C%22name%22%3A%22README.md%22%2C%22path%22%3A%22README.md%22%2C%22content%22%3A%22%23%20GitLink%20-%20CCF%E5%BC%80%E6%BA%90%E5%88%9B%E6%96%B0%E6%9C%8D%E5%8A%A1%E5%B9%B3%E5%8F%B0%5Cn%5CnGitLink%EF%BC%88%E7%A1%AE%E5%AE%9E%E5%BC%80%E6%BA%90%EF%BC%89%E6%98%AF%E4%B8%AD%E5%9B%BD%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%AD%A6%E4%BC%9A%EF%BC%88CCF%EF%BC%89%E5%AE%98%E6%96%B9%E6%8C%87%E5%AE%9A%E7%9A%84%E5%BC%80%E6%BA%90%E5%88%9B%E6%96%B0%E6%9C%8D%E5%8A%A1%E5%B9%B3%E5%8F%B0%EF%BC%8C%E6%97%A8%E5%9C%A8%E4%BB%A5%E2%80%9C%E4%B8%BA%E5%BC%80%E6%BA%90%E5%88%9B%E6%96%B0%E6%9C%8D%E5%8A%A1%E2%80%9D%E4%B8%BA%E4%BD%BF%E5%91%BD%EF%BC%8C%E4%BB%A5%E2%80%9C%E6%88%90%E4%B8%BA%E5%BC%80%E6%BA%90%E5%88%9B%E6%96%B0%E7%9A%84%E6%B1%87%E8%81%9A%E5%9C%B0%E2%80%9D%E4%B8%BA%E6%84%BF%E6%99%AF%EF%BC%8C%E7%A7%89%E6%89%BF%E2%80%9C%E5%88%9B%E6%96%B0%E3%80%81%E5%BC%80%E6%94%BE%E3%80%81%E5%8D%8F%E4%BD%9C%E3%80%81%E5%85%B1%E4%BA%AB%E2%80%9D%E7%9A%84%E4%BB%B7%E5%80%BC%E8%A7%82%EF%BC%8C%E8%87%B4%E5%8A%9B%E4%BA%8E%E4%B8%BA%E5%A4%A7%E8%A7%84%E6%A8%A1%E5%BC%80%E6%BA%90%E5%BC%80%E6%94%BE%E5%8D%8F%E5%90%8C%E5%88%9B%E6%96%B0%E5%8A%A9%E5%8A%9B%E8%B5%8B%E8%83%BD%EF%BC%8C%E6%89%93%E9%80%A0%E5%88%9B%E6%96%B0%E6%88%90%E6%9E%9C%E5%AD%B5%E5%8C%96%E5%92%8C%E6%96%B0%E5%B7%A5%E7%A7%91%E4%BA%BA%E6%89%8D%E5%9F%B9%E5%85%BB%E7%9A%84%E5%BC%80%E6%BA%90%E5%88%9B%E6%96%B0%E7%94%9F%E6%80%81%EF%BC%81%5Cn%5Cn%3Ccenter%3E%5Cn%3Cimg%20src%3D%5C%22docs%2Ffigs%2Fgitlink.png%5C%22%20width%3D80%25%20%2F%3E%3C%2Fcenter%3E%5Cn%5Cn%20%20%20%20%5Cn%23%23%20%E7%89%B9%E8%89%B2%E5%8A%9F%E8%83%BD%5Cn%5Cn-%20**%E5%88%86%E5%B8%83%E5%BC%8F%E5%8D%8F%E4%BD%9C%E5%BC%80%E5%8F%91**%EF%BC%9A%E5%9F%BA%E4%BA%8EGit%E6%89%93%E9%80%A0%E5%88%86%E5%B8%83%E5%BC%8F%E4%BB%A3%E7%A0%81%E6%89%98%E7%AE%A1%E7%8E%AF%E5%A2%83%EF%BC%8C%E6%8F%90%E4%BE%9B%E5%85%8D%E8%B4%B9%E5%85%AC%E3%80%81%E7%A7%81%E6%9C%89%E4%BB%A3%E7%A0%81%E4%BB%93%E5%BA%93%EF%BC%8C%E6%94%AF%E6%8C%81%E5%9C%A8%E7%BA%BF%E6%96%87%E4%BB%B6%E7%BC%96%E8%BE%91%E3%80%81%E4%BB%A3%E7%A0%81%E5%88%86%E6%94%AF%E7%AE%A1%E7%90%86%E3%80%81%E5%8D%8F%E4%BD%9C%E8%B4%A1%E7%8C%AE%E7%BB%9F%E8%AE%A1%E3%80%81%E4%BB%A3%E7%A0%81%E4%BB%93%E5%BA%93%E5%A4%8D%E5%88%BB%EF%BC%88Fork%EF%BC%89%E3%80%81%E8%B4%A1%E7%8C%AE%E5%90%88%E5%B9%B6%E8%AF%B7%E6%B1%82%EF%BC%88PR%EF%BC%89%E3%80%81%E7%BE%A4%E6%99%BA%E8%B4%A1%E7%8C%AE%E5%AE%A1%E9%98%85%E7%AD%89%E5%8A%9F%E8%83%BD%EF%BC%8C%E8%AE%A9%E6%82%A8%E7%9A%84%E9%A1%B9%E7%9B%AE%E5%9C%A8%E8%BF%99%E9%87%8C%E5%81%A5%E5%BA%B7%E3%80%81%E5%BF%AB%E9%80%9F%E7%9A%84%E6%88%90%E9%95%BF%EF%BC%81%5Cn%5Cn-%20**%E4%B8%80%E7%AB%99%E5%BC%8F%E8%BF%87%E7%A8%8B%E7%AE%A1%E7%90%86**%EF%BC%9A%E6%8F%90%E4%BE%9B%E7%96%91%E4%BF%AE%EF%BC%88Issue%EF%BC%89%E3%80%81%E9%87%8C%E7%A8%8B%E7%A2%91%E3%80%81%E9%80%9A%E7%9F%A5%E6%8F%90%E9%86%92%E3%80%81%E6%A0%87%E7%AD%BE%E5%BD%92%E6%A1%A3%E7%AD%89%E5%A4%9A%E6%A0%B7%E5%8C%96%E4%BB%BB%E5%8A%A1%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7%EF%BC%8C%E6%94%AF%E6%8C%81%E5%90%84%E7%B1%BB%E5%BC%80%E5%8F%91%E4%BB%BB%E5%8A%A1%E7%9A%84%E5%8F%91%E5%B8%83%E3%80%81%E6%8C%87%E6%B4%BE%E4%B8%8E%E8%B7%9F%E8%B8%AA%EF%BC%8C%E5%90%8C%E6%97%B6%E6%8F%90%E4%BE%9B%E5%9C%A8%E7%BA%BFWiki%E6%96%87%E6%A1%A3%E3%80%81%E7%BB%84%E7%BB%87%E5%A4%9A%E7%B2%92%E5%BA%A6%E7%AE%A1%E7%90%86%E7%AD%89%E5%8A%9F%E8%83%BD%EF%BC%8C%E4%B8%BA%E6%82%A8%E6%90%AD%E5%BB%BA%E4%B8%80%E7%AB%99%E5%BC%8F%E7%9A%84%E9%A1%B9%E7%9B%AE%E8%BF%87%E7%A8%8B%E7%AE%A1%E7%90%86%E7%8E%AF%E5%A2%83%EF%BC%8C%E8%AE%A9%E6%82%A8%E7%9A%84%E5%9B%A2%E9%98%9F%E5%8D%8F%E4%BD%9C%E6%9B%B4%E9%AB%98%E6%95%88%E3%80%81%E8%BF%87%E7%A8%8B%E6%9B%B4%E9%80%8F%E6%98%8E%EF%BC%81%5Cn%5Cn-%20**%E9%AB%98%E6%95%88%E6%B5%81%E6%B0%B4%E7%BA%BF%E8%BF%90%E7%BB%B4**%EF%BC%9A%E8%9E%8D%E5%90%88DevOps%E6%80%9D%E6%83%B3%EF%BC%8C%E6%8F%90%E4%BE%9B%E8%BD%BB%E9%87%8F%E7%BA%A7%E7%9A%84%E5%B7%A5%E4%BD%9C%E6%B5%81%E5%BC%95%E6%93%8E%EF%BC%88Engine%EF%BC%89%EF%BC%8C%E6%89%93%E9%80%9A%E7%BC%96%E7%A0%81%E3%80%81%E6%B5%8B%E8%AF%95%E3%80%81%E6%9E%84%E5%BB%BA%E3%80%81%E9%83%A8%E7%BD%B2%E7%AD%89%E5%BC%80%E5%8F%91%E8%BF%90%E7%BB%B4%E7%8E%AF%E8%8A%82%EF%BC%9B%E6%94%AF%E6%8C%81%E8%87%AA%E5%AE%9A%E4%B9%89%E9%85%8D%E7%BD%AE%E3%80%81%E4%BB%A3%E7%A0%81%E9%9D%99%E6%80%81%E6%89%AB%E6%8F%8F%E3%80%81%E6%9E%84%E5%BB%BA%E8%87%AA%E5%8A%A8%E8%A7%A6%E5%8F%91%E3%80%81%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E6%89%98%E7%AE%A1%E7%AD%89%E5%8A%9F%E8%83%BD%EF%BC%8C%E5%90%8C%E6%97%B6%E6%94%AF%E6%8C%81%E6%8E%A5%E5%85%A5%E7%AC%AC%E4%B8%89%E6%96%B9%E8%BF%90%E7%BB%B4%E5%B7%A5%E5%85%B7%EF%BC%8C%E8%AE%A9%E6%82%A8%E7%9A%84%E4%BB%A3%E7%A0%81%E6%9B%B4%E5%8A%A0%E5%BF%AB%E9%80%9F%E3%80%81%E5%8F%AF%E9%9D%A0%E5%9C%B0%E5%BD%A2%E6%88%90%E9%AB%98%E8%B4%A8%E9%87%8F%E7%9A%84%E4%BA%A7%E5%93%81%EF%BC%81%5Cn%5Cn-%20**%E5%A4%9A%E5%B1%82%E6%AC%A1%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%90**%EF%BC%9A%E6%8F%90%E4%BE%9B%E8%BD%AF%E4%BB%B6%E8%BD%AF%E4%BB%A3%E7%A0%81%E5%92%8C%E8%8A%AF%E7%89%87RTL%E4%BB%A3%E7%A0%81%E7%9A%84%E6%BA%AF%E6%BA%90%E5%88%86%E6%9E%90%E3%80%81%E6%96%87%E4%BB%B6%E7%BA%A7%E5%92%8C%E7%BB%84%E4%BB%B6%E7%BA%A7%E8%AE%B8%E5%8F%AF%E8%AF%81%E8%AF%86%E5%88%AB%E5%8F%8A%E9%A3%8E%E9%99%A9%E5%88%86%E6%9E%90%E3%80%81%E8%BE%93%E5%85%A5%E6%80%A7%E5%BC%80%E6%BA%90%E6%BC%8F%E6%B4%9E%E6%A3%80%E6%B5%8B%E5%92%8C%E5%8A%A0%E5%9B%BA%E5%BB%BA%E8%AE%AE%EF%BC%8C%E6%94%AF%E6%8C%81%E5%88%86%E6%9E%90%E7%BB%93%E6%9E%9C%E7%9A%84%E5%A4%9A%E5%B1%82%E6%AC%A1%E5%8F%AF%E8%A7%86%E5%8C%96%E5%B1%95%E7%A4%BA%EF%BC%8C%E5%B8%AE%E5%8A%A9%E6%82%A8%E5%AE%9E%E6%96%BD%E6%9C%89%E6%95%88%E5%BC%80%E6%BA%90%E6%B2%BB%E7%90%86%EF%BC%8C%E5%8E%98%E6%B8%85%E4%BB%A3%E7%A0%81%E5%BC%95%E7%94%A8%E9%93%BE%EF%BC%8C%E5%8F%91%E7%8E%B0%E5%B9%B6%E6%B6%88%E9%99%A4%E6%BC%8F%E6%B4%9E%E6%84%9F%E6%9F%93%E9%93%BE%EF%BC%8C%E4%B8%BA%E5%AE%89%E5%85%A8%E5%90%88%E8%A7%84%E7%9A%84%E5%BC%80%E6%BA%90%E5%BC%95%E7%94%A8%E4%BF%9D%E9%A9%BE%E6%8A%A4%E8%88%AA%EF%BC%81%5Cn%5Cn-%20**%E5%A4%9A%E7%BB%B4%E5%BA%A6%E7%94%A8%E6%88%B7%E7%94%BB%E5%83%8F**%EF%BC%9A%E5%AE%9E%E6%97%B6%E9%87%87%E9%9B%86%E5%92%8C%E5%88%86%E6%9E%90%E5%B9%B3%E5%8F%B0%E4%B8%AD%E7%9A%84%E5%90%84%E7%B1%BB%E5%BC%80%E6%BA%90%E8%B5%84%E6%BA%90%E6%95%B0%E6%8D%AE%EF%BC%8C%E6%90%AD%E5%BB%BA%E5%A4%9A%E7%BB%B4%E5%BA%A6%E7%94%A8%E6%88%B7%E7%94%BB%E5%83%8F%E8%AF%84%E4%BC%B0%E7%B3%BB%E7%BB%9F%EF%BC%8C%E6%8F%90%E4%BE%9B%E5%BC%80%E5%8F%91%E6%B4%BB%E5%8A%A8%E7%BB%9F%E8%AE%A1%E3%80%81%E8%B4%A1%E7%8C%AE%E5%BA%A6%E6%97%A5%E5%8E%86%E3%80%81%E7%94%A8%E6%88%B7%E8%83%BD%E5%8A%9B%E5%BB%BA%E6%A8%A1%E3%80%81%E8%A7%92%E8%89%B2%E4%B8%8E%E4%B8%93%E4%B8%9A%E5%AE%9A%E4%BD%8D%E5%88%86%E6%9E%90%E7%AD%89%E5%8A%9F%E8%83%BD%EF%BC%8C%E8%AE%A9%E6%82%A8%E5%9C%A8%E4%B8%AA%E4%BA%BA%E4%B8%BB%E9%A1%B5%E5%B1%95%E7%A4%BA%E5%BC%80%E5%8F%91%E5%8A%A8%E6%80%81%E4%B8%8E%E5%88%9B%E6%96%B0%E8%83%BD%E5%8A%9B%EF%BC%81%5Cn%5Cn%5Cn%23%23%20%E9%83%A8%E7%BD%B2%E6%B5%81%E7%A8%8B%5Cn%5Cn%5Cn%23%23%23%20%E4%BE%9D%E8%B5%96%E5%BA%93%5Cn%5Cn*%20Ruby%202.4.5%5Cn%5Cn*%20Rails%20~%3E%205.2%5Cn%5Cn*%20MySql%20~%3E%205.6%5Cn%5Cn*%20Redis%205%2B%5Cn%5Cn*%20imagemagick%5Cn%5Cn%23%23%23%20%E6%AD%A5%E9%AA%A4%5Cn%EF%BC%881%EF%BC%89%E5%AE%89%E8%A3%85%20Rails%20%E5%BF%85%E8%A6%81%E7%9A%84%E4%B8%80%E4%BA%9B%E4%B8%89%E6%96%B9%E5%BA%93%EF%BC%9A%5Cn-%20Mac%20OS%20X%5Cn%60%60%60bash%5Cn%20brew%20install%20imagemagick%20ghostscript%20libxml2%20libxslt%20libiconv%5Cn%60%60%60%5Cn%5Cn-%20Ubuntu%5Cn%60%60%60bash%5Cnsudo%20apt-get%20update%5Cnsudo%20apt-get%20install%20-y%20openssl%20libssl-dev%20imagemagick%20git%20ruby-dev%20nodejs%20libmariadb-dev%20libmysqlclient-dev%20shared-mime-info%20libpq-dev%20libxml2-dev%20libxslt-dev%5Cnsudo%20DEBIAN_FRONTEND%3D%5C%22noninteractive%5C%22%20apt-get%20install%20-y%20tzdata%5Cnsudo%20ln%20-s%20%2Fusr%2Fshare%2Fzoneinfo%2FAsia%2FShanghai%20%20%2Fetc%2Flocaltime%5Cn%60%60%60%5Cn%5Cn%EF%BC%882%EF%BC%89%E5%AE%89%E8%A3%85%20Ruby%2C%20Rails%20%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83%EF%BC%9A%5B%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E6%AD%A3%E7%A1%AE%E7%9A%84%E5%AE%89%E8%A3%85%20Ruby%2C%20Rails%20%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83%5D(https%3A%2F%2Fruby-china.org%2Fwiki%2Finstall_ruby_guide)%5Cn%60%60%60bash%5Cn%23%E6%A3%80%E9%AA%8C%E7%8E%AF%E5%A2%83%E6%98%AF%E5%90%A6%E6%AD%A3%E7%A1%AE%5Cnruby%20-v%5Cn%23ruby%202.4.x%20...%5Cn%5Cngem%20-v%5Cn%233.x.x%5Cn%5Cnbundle%20-v%5Cn%23Bundler%20version%202.x.x%5Cn%5Cnrails%20-v%5Cn%23Rails%205.2.x%5Cn%60%60%60%5Cn%5Cn%EF%BC%883%EF%BC%89%E5%85%8B%E9%9A%86%E7%A8%B3%E5%AE%9A%E7%89%88%E6%9C%AC%5Cn%60%60%60bash%5Cngit%20clone%20-b%20master%20https%3A%2F%2Fgitlink.org.cn%2FGitlink%2Fforgeplus.git%5Cn%60%60%60%5Cn%5Cn%EF%BC%884%EF%BC%89%E5%AE%89%E8%A3%85%E4%BE%9D%E8%B5%96%E5%8C%85%5Cn%60%60%60bash%5Cn%23%E8%BF%9B%E5%85%A5%E7%9B%AE%E5%BD%95%5Cncd%20forgeplus%5Cn%23%E5%88%A0%E9%99%A4Gemfile.lock%5Cnrm%20-rf%20Gemfile.lock%5Cn%23%E5%AE%89%E8%A3%85%E4%BE%9D%E8%B5%96%E5%8C%85%5Cnbundle%20install%5Cn%60%60%60%5Cn%5Cn%EF%BC%885%EF%BC%89%E9%85%8D%E7%BD%AE%E5%88%9D%E5%A7%8B%E5%8C%96%E6%96%87%E4%BB%B6%EF%BC%9A%E8%BF%9B%E5%85%A5%E9%A1%B9%E7%9B%AE%E6%A0%B9%E7%9B%AE%E5%BD%95%E6%89%A7%E8%A1%8C%E4%BB%A5%E4%B8%8B%E5%91%BD%E4%BB%A4%5Cn%60%60%60bash%5Cncp%20config%2Fconfiguration.yml.example%20config%2Fconfiguration.yml%5Cncp%20config%2Fdatabase.yml.example%20config%2Fdatabase.yml%5Cntouch%20config%2Fredis.yml%5Cntouch%20config%2Felasticsearch.yml%5Cn%60%60%60%5Cn%5Cn%EF%BC%886%EF%BC%89%E9%85%8D%E7%BD%AE%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%9A%E6%95%B0%E6%8D%AE%E5%BA%93%E9%85%8D%E7%BD%AE%E4%BF%A1%E6%81%AF%E8%AF%B7%E6%9F%A5%E7%9C%8B%2Fconfig%2Fdatabase.yml%E6%96%87%E4%BB%B6%EF%BC%8C%E9%A1%B9%E7%9B%AE%E9%BB%98%E8%AE%A4%E9%87%87%E7%94%A8mysql%E6%95%B0%E6%8D%AE%E5%BA%93%2C%20%E5%A6%82%E9%9C%80%E6%9B%B4%E6%94%B9%EF%BC%8C%E8%AF%B7%E8%87%AA%E8%A1%8C%E4%BF%AE%E6%94%B9%E9%85%8D%E7%BD%AE%E4%BF%A1%E6%81%AF%EF%BC%8C%E9%BB%98%E8%AE%A4%E9%85%8D%E7%BD%AE%E5%A6%82%E4%B8%8B%5Cn%60%60%60yaml%5Cndefault%3A%20%26default%5Cn%20%20adapter%3A%20mysql2%5Cn%20%20host%3A%20127.0.0.1%5Cn%20%20encoding%3A%20utf8%5Cn%20%20username%3A%20root%5Cn%20%20password%3A%20123456%5Cn%60%60%60%5Cn%5Cn%EF%BC%887%EF%BC%89%E9%85%8D%E7%BD%AEgitea%E6%9C%8D%E5%8A%A1(%E5%8F%AF%E9%80%89)%EF%BC%9A%E5%A6%82%E9%9C%80%E8%A6%81%E9%83%A8%E7%BD%B2%E8%87%AA%E5%B7%B1%E7%9A%84gitea%E5%B9%B3%E5%8F%B0%EF%BC%8C%E8%AF%B7%E5%8F%82%E8%80%83%5Bgitea%E5%AE%98%E6%96%B9%E5%B9%B3%E5%8F%B0%E6%96%87%E6%A1%A3%5D(https%3A%2F%2Fdocs.gitea.io%2Fzh-cn%2Finstall-from-binary%2F)%E3%80%82%E5%9B%A0%E7%9B%AE%E5%89%8Dgitea%E5%B9%B3%E5%8F%B0api%E5%8F%97%E9%99%90%EF%BC%8C%E6%9A%82%E6%97%B6%E6%8E%A8%E8%8D%90%E4%BB%8Eforge%E5%B9%B3%E5%8F%B0%E8%8E%B7%E5%8F%96%5Bgitea%E9%83%A8%E7%BD%B2%E6%96%87%E4%BB%B6%5D(https%3A%2F%2Fwww.gitlink.org.cn%2FGitlink%2Fgitea-binary)%E8%BF%9B%E8%A1%8C%E9%83%A8%E7%BD%B2%5Cn%5Cn-%20%E9%85%8D%E7%BD%AEgitea%E6%9C%8D%E5%8A%A1%E6%AD%A5%E9%AA%A4%EF%BC%9A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%5Ct--%20%E9%83%A8%E7%BD%B2gitea%E6%9C%8D%E5%8A%A1%EF%BC%8C%E5%B9%B6%E6%B3%A8%E5%86%8Croot%E8%B4%A6%E6%88%B7%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%5Ct--%20%E4%BF%AE%E6%94%B9forge%E5%B9%B3%E5%8F%B0%E7%9A%84%20config%2Fconfiguration.yml%E4%B8%AD%E7%9A%84gitea%E6%9C%8D%E5%8A%A1%E6%8C%87%E5%90%91%E5%9C%B0%E5%9D%80%EF%BC%8C%E5%A6%82%EF%BC%9A%5Cn%5Cn%60%60%60yaml%5Cngitea%3A%5Cn%20%20access_key_id%3A%20'root'%5Cn%20%20access_key_secret%3A%20'password'%5Cn%20%20domain%3A%20'http%3A%2F%2Fwww.gitea.example.com'%5Cn%20%20base_url%3A%20'%2Fapi%2Fv1'%5Cn%20%20hat_base_url%3A%20'%2Fapi%2Fhat'%5Cn%60%60%60%5Cn%5Cn%EF%BC%888%EF%BC%89%E9%85%8D%E7%BD%AE%2Fconfig%2Fdatabase.yml%E6%96%87%E4%BB%B6(%E5%AE%89%E8%A3%85redis%E7%8E%AF%E5%A2%83%3A%E8%AF%B7%E8%87%AA%E8%A1%8C%E6%90%9C%E7%B4%A2%E5%90%84%E5%B9%B3%E5%8F%B0%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2redis%E7%8E%AF%E5%A2%83)%5Cn%60%60%60yaml%5Cndefault%3A%20%26default%5Cn%20%20url%3A%20redis%3A%2F%2Flocalhost%3A6379%5Cn%20%20db%3A%201%5Cn%5Cnproduction%3A%5Cn%20%20%3C%3C%3A%20*default%5Cn%20%20url%3A%20redis%3A%2F%2Flocalhost%3A6379%5Cn%60%60%60%5Cn%5Cn%EF%BC%889%EF%BC%89%E5%88%9B%E5%BB%BA%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%9A%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E4%B8%BAdevelopment%EF%BC%8C%20%E7%94%9F%E6%88%90%E7%8E%AF%E5%A2%83%E4%B8%BAproduction%5Cn%60%60%60bash%5Cnrails%20db%3Acreate%20%20RAILS_ENV%3Ddevelopment%5Cn%60%60%60%5Cn%5Cn%EF%BC%8810%EF%BC%89%E5%AF%BC%E5%85%A5%E6%95%B0%E6%8D%AE%E8%A1%A8%E7%BB%93%E6%9E%84%5Cn%5Cn%60%60%60bash%5Cnbundle%20exec%20rake%20sync_table_structure%3Aimport_csv%5Cn%60%60%60%5Cn%5Cn%EF%BC%8811%EF%BC%89%E6%89%A7%E8%A1%8Cmigrate%E8%BF%81%E7%A7%BB%E6%96%87%E4%BB%B6%EF%BC%9A%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E4%B8%BAdevelopment%EF%BC%8C%20%E7%94%9F%E6%88%90%E7%8E%AF%E5%A2%83%E4%B8%BAproduction%5Cn%60%60%60bash%5Cnrails%20db%3Amigrate%20RAILS_ENV%3Ddevelopment%5Cn%60%60%60%5Cn%5Cn%EF%BC%8812%EF%BC%89clone%E5%89%8D%E7%AB%AF%E4%BB%A3%E7%A0%81%EF%BC%9A%E5%B0%86%E5%89%8D%E7%AB%AF%E4%BB%A3%E7%A0%81%E5%85%8B%E9%9A%86%E5%88%B0public%2Freact%E7%9B%AE%E5%BD%95%E4%B8%8B%EF%BC%8C%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84%E5%BA%94%E8%AF%A5%E6%98%AF%3A%20public%2Freact%2Fbuild%5Cn%60%60%60bash%5Cngit%20clone%20-b%20master%20https%3A%2F%2Fgitlink.org.cn%2FGitlink%2Fbuild.git%5Cn%60%60%60%5Cn%5Cn%EF%BC%8813%EF%BC%89%E5%90%AF%E5%8A%A8redis(%E6%AD%A4%E5%A4%84%E4%BB%A5macOS%E7%B3%BB%E7%BB%9F%E4%B8%BA%E4%BE%8B)%5Cn%60%60%60bash%5Cnredis-server%26%5Cn%60%60%60%5Cn%5Cn%EF%BC%8814%EF%BC%89%E5%90%AF%E5%8A%A8sidekiq%EF%BC%9A%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E4%B8%BAdevelopment%EF%BC%8C%20%E7%94%9F%E6%88%90%E7%8E%AF%E5%A2%83%E4%B8%BAproduction%5Cn%60%60%60bash%5Cnbundle%20exec%20sidekiq%20-C%20config%2Fsidekiq.yml%20-e%20production%20-d%5Cn%60%60%60%5Cn%5Cn%EF%BC%8815%EF%BC%89%E5%90%AF%E5%8A%A8rails%E6%9C%8D%E5%8A%A1%5Cn%60%60%60bash%5Cnrails%20s%5Cn%60%60%60%5Cn%5Cn%EF%BC%8816%EF%BC%89%E6%B5%8F%E8%A7%88%E5%99%A8%E8%AE%BF%E9%97%AE%EF%BC%9A%E5%9C%A8%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%AD%E8%BE%93%E5%85%A5%E5%A6%82%E4%B8%8B%E5%9C%B0%E5%9D%80%E8%AE%BF%E9%97%AE%5Cn%60%60%60bash%5Cnhttp%3A%2F%2Flocalhost%3A3000%2F%5Cn%60%60%60%5Cn%5Cn%EF%BC%8817%EF%BC%89%E5%85%B6%E4%BB%96%E8%AF%B4%E6%98%8E%EF%BC%9A%E9%80%9A%E8%BF%87%E9%A1%B5%E9%9D%A2%E6%B3%A8%E5%86%8C%E4%BB%A5%E7%AC%AC%E4%B8%80%E4%B8%AA%E7%94%A8%E6%88%B7%E4%B8%BA%E5%B9%B3%E5%8F%B0%E7%AE%A1%E7%90%86%E5%91%98%E7%94%A8%E6%88%B7%5Cn%5Cn%5Cn%23%23%20%E9%A1%B5%E9%9D%A2%E5%B1%95%E7%A4%BA%5Cn%5Cn-%20%E9%A1%B9%E7%9B%AE%E5%88%97%E8%A1%A8%5Cn%5Cn%3Ccenter%3E%5Cn%3Cimg%20src%3D%5C%22docs%2Ffigs%2Fproject_list.png%5C%22%20width%3D80%25%20%2F%3E%5Cn%3C%2Fcenter%3E%5Cn%20%20%20%20%20%20%20%20%5Cn-%20%E4%BB%A3%E7%A0%81%E4%BB%93%E5%BA%93%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%3Ccenter%3E%5Cn%3Cimg%20src%3D%5C%22docs%2Ffigs%2Frepo.png%5C%22%20width%3D80%25%20%2F%3E%5Cn%3C%2Fcenter%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn-%20%E4%BB%BB%E5%8A%A1%E7%AE%A1%E7%90%86%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%3Ccenter%3E%5Cn%3Cimg%20src%3D%5C%22docs%2Ffigs%2Fissues.png%5C%22%20width%3D80%25%20%2F%3E%5Cn%3C%2Fcenter%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn-%20%E5%90%88%E5%B9%B6%E8%AF%B7%E6%B1%82%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%3Ccenter%3E%5Cn%3Cimg%20src%3D%5C%22docs%2Ffigs%2FPR.png%5C%22%20width%3D80%25%20%2F%3E%5Cn%3C%2Fcenter%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn-%20%E5%BC%95%E6%93%8E%E9%85%8D%E7%BD%AE%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%3Ccenter%3E%5Cn%3Cimg%20src%3D%5C%22docs%2Ffigs%2Fengine.png%5C%22%20width%3D80%25%20%2F%3E%5Cn%3C%2Fcenter%3E%5Cn%5Cn%5Cn%23%23%20%E8%B4%A1%E7%8C%AE%E4%BB%A3%E7%A0%81%5Cn%5Cn%E6%88%91%E4%BB%AC%E6%9C%9F%E5%BE%85%E6%82%A8%E5%90%91GitLink%E6%8F%90%E4%BA%A4%E8%B4%A1%E7%8C%AE%EF%BC%81%E5%9C%A8%E6%82%A8%E8%B4%A1%E7%8C%AE%E6%97%B6%EF%BC%8C%E8%AF%B7%E9%81%B5%E5%BE%AA%E6%B5%81%E7%A8%8B%EF%BC%9A%5B%E3%80%90Wiki%E6%96%87%E6%A1%A3-GitLink%E5%8D%8F%E4%BD%9C%E5%BC%80%E5%8F%91%E6%B5%81%E7%A8%8B%E3%80%91%5D(https%3A%2F%2Fwww.gitlink.org.cn%2FGitlink%2Fforgeplus%2Fwiki%20%5C%22%E3%80%90Wiki%E6%96%87%E6%A1%A3-GitLink%E5%8D%8F%E4%BD%9C%E5%BC%80%E5%8F%91%E6%B5%81%E7%A8%8B%E3%80%91%5C%22)%5Cn%5Cn%23%23%23%23%20%E6%8C%87%E5%AF%BC%E6%96%87%E6%A1%A3%5Cn-%20%5BAPI%E6%96%87%E6%A1%A3%5D(https%3A%2F%2Fwww.gitlink.org.cn%2Fdocs%2Fapi)%5Cn-%20%5BGit%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%5D(https%3A%2F%2Fgit-scm.com%2F)%5Cn%5Cn%23%23%20%E8%AE%B8%E5%8F%AF%E8%AF%81%E5%8D%8F%E8%AE%AE%5Cn%22%2C%22sha%22%3A%22857627be57a5f7e1e485c78ce9e517472c22d492%22%2C%22replace_content%22%3A%22%23%20GitLink%20-%20CCF%E5%BC%80%E6%BA%90%E5%88%9B%E6%96%B0%E6%9C%8D%E5%8A%A1%E5%B9%B3%E5%8F%B0%5Cn%5CnGitLink%EF%BC%88%E7%A1%AE%E5%AE%9E%E5%BC%80%E6%BA%90%EF%BC%89%E6%98%AF%E4%B8%AD%E5%9B%BD%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%AD%A6%E4%BC%9A%EF%BC%88CCF%EF%BC%89%E5%AE%98%E6%96%B9%E6%8C%87%E5%AE%9A%E7%9A%84%E5%BC%80%E6%BA%90%E5%88%9B%E6%96%B0%E6%9C%8D%E5%8A%A1%E5%B9%B3%E5%8F%B0%EF%BC%8C%E6%97%A8%E5%9C%A8%E4%BB%A5%E2%80%9C%E4%B8%BA%E5%BC%80%E6%BA%90%E5%88%9B%E6%96%B0%E6%9C%8D%E5%8A%A1%E2%80%9D%E4%B8%BA%E4%BD%BF%E5%91%BD%EF%BC%8C%E4%BB%A5%E2%80%9C%E6%88%90%E4%B8%BA%E5%BC%80%E6%BA%90%E5%88%9B%E6%96%B0%E7%9A%84%E6%B1%87%E8%81%9A%E5%9C%B0%E2%80%9D%E4%B8%BA%E6%84%BF%E6%99%AF%EF%BC%8C%E7%A7%89%E6%89%BF%E2%80%9C%E5%88%9B%E6%96%B0%E3%80%81%E5%BC%80%E6%94%BE%E3%80%81%E5%8D%8F%E4%BD%9C%E3%80%81%E5%85%B1%E4%BA%AB%E2%80%9D%E7%9A%84%E4%BB%B7%E5%80%BC%E8%A7%82%EF%BC%8C%E8%87%B4%E5%8A%9B%E4%BA%8E%E4%B8%BA%E5%A4%A7%E8%A7%84%E6%A8%A1%E5%BC%80%E6%BA%90%E5%BC%80%E6%94%BE%E5%8D%8F%E5%90%8C%E5%88%9B%E6%96%B0%E5%8A%A9%E5%8A%9B%E8%B5%8B%E8%83%BD%EF%BC%8C%E6%89%93%E9%80%A0%E5%88%9B%E6%96%B0%E6%88%90%E6%9E%9C%E5%AD%B5%E5%8C%96%E5%92%8C%E6%96%B0%E5%B7%A5%E7%A7%91%E4%BA%BA%E6%89%8D%E5%9F%B9%E5%85%BB%E7%9A%84%E5%BC%80%E6%BA%90%E5%88%9B%E6%96%B0%E7%94%9F%E6%80%81%EF%BC%81%5Cn%5Cn%3Ccenter%3E%5Cn%3Cimg%20src%3D%5C%22https%3A%2F%2Fwww.gitlink.org.cn%2Fapi%2FGitlink%2Fforgeplus%2Fraw%2Fdocs%2Ffigs%2Fgitlink.png%3Fref%3Dmaster%5C%22%20width%3D80%25%20%2F%3E%3C%2Fcenter%3E%5Cn%5Cn%20%20%20%20%5Cn%23%23%20%E7%89%B9%E8%89%B2%E5%8A%9F%E8%83%BD%5Cn%5Cn-%20**%E5%88%86%E5%B8%83%E5%BC%8F%E5%8D%8F%E4%BD%9C%E5%BC%80%E5%8F%91**%EF%BC%9A%E5%9F%BA%E4%BA%8EGit%E6%89%93%E9%80%A0%E5%88%86%E5%B8%83%E5%BC%8F%E4%BB%A3%E7%A0%81%E6%89%98%E7%AE%A1%E7%8E%AF%E5%A2%83%EF%BC%8C%E6%8F%90%E4%BE%9B%E5%85%8D%E8%B4%B9%E5%85%AC%E3%80%81%E7%A7%81%E6%9C%89%E4%BB%A3%E7%A0%81%E4%BB%93%E5%BA%93%EF%BC%8C%E6%94%AF%E6%8C%81%E5%9C%A8%E7%BA%BF%E6%96%87%E4%BB%B6%E7%BC%96%E8%BE%91%E3%80%81%E4%BB%A3%E7%A0%81%E5%88%86%E6%94%AF%E7%AE%A1%E7%90%86%E3%80%81%E5%8D%8F%E4%BD%9C%E8%B4%A1%E7%8C%AE%E7%BB%9F%E8%AE%A1%E3%80%81%E4%BB%A3%E7%A0%81%E4%BB%93%E5%BA%93%E5%A4%8D%E5%88%BB%EF%BC%88Fork%EF%BC%89%E3%80%81%E8%B4%A1%E7%8C%AE%E5%90%88%E5%B9%B6%E8%AF%B7%E6%B1%82%EF%BC%88PR%EF%BC%89%E3%80%81%E7%BE%A4%E6%99%BA%E8%B4%A1%E7%8C%AE%E5%AE%A1%E9%98%85%E7%AD%89%E5%8A%9F%E8%83%BD%EF%BC%8C%E8%AE%A9%E6%82%A8%E7%9A%84%E9%A1%B9%E7%9B%AE%E5%9C%A8%E8%BF%99%E9%87%8C%E5%81%A5%E5%BA%B7%E3%80%81%E5%BF%AB%E9%80%9F%E7%9A%84%E6%88%90%E9%95%BF%EF%BC%81%5Cn%5Cn-%20**%E4%B8%80%E7%AB%99%E5%BC%8F%E8%BF%87%E7%A8%8B%E7%AE%A1%E7%90%86**%EF%BC%9A%E6%8F%90%E4%BE%9B%E7%96%91%E4%BF%AE%EF%BC%88Issue%EF%BC%89%E3%80%81%E9%87%8C%E7%A8%8B%E7%A2%91%E3%80%81%E9%80%9A%E7%9F%A5%E6%8F%90%E9%86%92%E3%80%81%E6%A0%87%E7%AD%BE%E5%BD%92%E6%A1%A3%E7%AD%89%E5%A4%9A%E6%A0%B7%E5%8C%96%E4%BB%BB%E5%8A%A1%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7%EF%BC%8C%E6%94%AF%E6%8C%81%E5%90%84%E7%B1%BB%E5%BC%80%E5%8F%91%E4%BB%BB%E5%8A%A1%E7%9A%84%E5%8F%91%E5%B8%83%E3%80%81%E6%8C%87%E6%B4%BE%E4%B8%8E%E8%B7%9F%E8%B8%AA%EF%BC%8C%E5%90%8C%E6%97%B6%E6%8F%90%E4%BE%9B%E5%9C%A8%E7%BA%BFWiki%E6%96%87%E6%A1%A3%E3%80%81%E7%BB%84%E7%BB%87%E5%A4%9A%E7%B2%92%E5%BA%A6%E7%AE%A1%E7%90%86%E7%AD%89%E5%8A%9F%E8%83%BD%EF%BC%8C%E4%B8%BA%E6%82%A8%E6%90%AD%E5%BB%BA%E4%B8%80%E7%AB%99%E5%BC%8F%E7%9A%84%E9%A1%B9%E7%9B%AE%E8%BF%87%E7%A8%8B%E7%AE%A1%E7%90%86%E7%8E%AF%E5%A2%83%EF%BC%8C%E8%AE%A9%E6%82%A8%E7%9A%84%E5%9B%A2%E9%98%9F%E5%8D%8F%E4%BD%9C%E6%9B%B4%E9%AB%98%E6%95%88%E3%80%81%E8%BF%87%E7%A8%8B%E6%9B%B4%E9%80%8F%E6%98%8E%EF%BC%81%5Cn%5Cn-%20**%E9%AB%98%E6%95%88%E6%B5%81%E6%B0%B4%E7%BA%BF%E8%BF%90%E7%BB%B4**%EF%BC%9A%E8%9E%8D%E5%90%88DevOps%E6%80%9D%E6%83%B3%EF%BC%8C%E6%8F%90%E4%BE%9B%E8%BD%BB%E9%87%8F%E7%BA%A7%E7%9A%84%E5%B7%A5%E4%BD%9C%E6%B5%81%E5%BC%95%E6%93%8E%EF%BC%88Engine%EF%BC%89%EF%BC%8C%E6%89%93%E9%80%9A%E7%BC%96%E7%A0%81%E3%80%81%E6%B5%8B%E8%AF%95%E3%80%81%E6%9E%84%E5%BB%BA%E3%80%81%E9%83%A8%E7%BD%B2%E7%AD%89%E5%BC%80%E5%8F%91%E8%BF%90%E7%BB%B4%E7%8E%AF%E8%8A%82%EF%BC%9B%E6%94%AF%E6%8C%81%E8%87%AA%E5%AE%9A%E4%B9%89%E9%85%8D%E7%BD%AE%E3%80%81%E4%BB%A3%E7%A0%81%E9%9D%99%E6%80%81%E6%89%AB%E6%8F%8F%E3%80%81%E6%9E%84%E5%BB%BA%E8%87%AA%E5%8A%A8%E8%A7%A6%E5%8F%91%E3%80%81%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E6%89%98%E7%AE%A1%E7%AD%89%E5%8A%9F%E8%83%BD%EF%BC%8C%E5%90%8C%E6%97%B6%E6%94%AF%E6%8C%81%E6%8E%A5%E5%85%A5%E7%AC%AC%E4%B8%89%E6%96%B9%E8%BF%90%E7%BB%B4%E5%B7%A5%E5%85%B7%EF%BC%8C%E8%AE%A9%E6%82%A8%E7%9A%84%E4%BB%A3%E7%A0%81%E6%9B%B4%E5%8A%A0%E5%BF%AB%E9%80%9F%E3%80%81%E5%8F%AF%E9%9D%A0%E5%9C%B0%E5%BD%A2%E6%88%90%E9%AB%98%E8%B4%A8%E9%87%8F%E7%9A%84%E4%BA%A7%E5%93%81%EF%BC%81%5Cn%5Cn-%20**%E5%A4%9A%E5%B1%82%E6%AC%A1%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%90**%EF%BC%9A%E6%8F%90%E4%BE%9B%E8%BD%AF%E4%BB%B6%E8%BD%AF%E4%BB%A3%E7%A0%81%E5%92%8C%E8%8A%AF%E7%89%87RTL%E4%BB%A3%E7%A0%81%E7%9A%84%E6%BA%AF%E6%BA%90%E5%88%86%E6%9E%90%E3%80%81%E6%96%87%E4%BB%B6%E7%BA%A7%E5%92%8C%E7%BB%84%E4%BB%B6%E7%BA%A7%E8%AE%B8%E5%8F%AF%E8%AF%81%E8%AF%86%E5%88%AB%E5%8F%8A%E9%A3%8E%E9%99%A9%E5%88%86%E6%9E%90%E3%80%81%E8%BE%93%E5%85%A5%E6%80%A7%E5%BC%80%E6%BA%90%E6%BC%8F%E6%B4%9E%E6%A3%80%E6%B5%8B%E5%92%8C%E5%8A%A0%E5%9B%BA%E5%BB%BA%E8%AE%AE%EF%BC%8C%E6%94%AF%E6%8C%81%E5%88%86%E6%9E%90%E7%BB%93%E6%9E%9C%E7%9A%84%E5%A4%9A%E5%B1%82%E6%AC%A1%E5%8F%AF%E8%A7%86%E5%8C%96%E5%B1%95%E7%A4%BA%EF%BC%8C%E5%B8%AE%E5%8A%A9%E6%82%A8%E5%AE%9E%E6%96%BD%E6%9C%89%E6%95%88%E5%BC%80%E6%BA%90%E6%B2%BB%E7%90%86%EF%BC%8C%E5%8E%98%E6%B8%85%E4%BB%A3%E7%A0%81%E5%BC%95%E7%94%A8%E9%93%BE%EF%BC%8C%E5%8F%91%E7%8E%B0%E5%B9%B6%E6%B6%88%E9%99%A4%E6%BC%8F%E6%B4%9E%E6%84%9F%E6%9F%93%E9%93%BE%EF%BC%8C%E4%B8%BA%E5%AE%89%E5%85%A8%E5%90%88%E8%A7%84%E7%9A%84%E5%BC%80%E6%BA%90%E5%BC%95%E7%94%A8%E4%BF%9D%E9%A9%BE%E6%8A%A4%E8%88%AA%EF%BC%81%5Cn%5Cn-%20**%E5%A4%9A%E7%BB%B4%E5%BA%A6%E7%94%A8%E6%88%B7%E7%94%BB%E5%83%8F**%EF%BC%9A%E5%AE%9E%E6%97%B6%E9%87%87%E9%9B%86%E5%92%8C%E5%88%86%E6%9E%90%E5%B9%B3%E5%8F%B0%E4%B8%AD%E7%9A%84%E5%90%84%E7%B1%BB%E5%BC%80%E6%BA%90%E8%B5%84%E6%BA%90%E6%95%B0%E6%8D%AE%EF%BC%8C%E6%90%AD%E5%BB%BA%E5%A4%9A%E7%BB%B4%E5%BA%A6%E7%94%A8%E6%88%B7%E7%94%BB%E5%83%8F%E8%AF%84%E4%BC%B0%E7%B3%BB%E7%BB%9F%EF%BC%8C%E6%8F%90%E4%BE%9B%E5%BC%80%E5%8F%91%E6%B4%BB%E5%8A%A8%E7%BB%9F%E8%AE%A1%E3%80%81%E8%B4%A1%E7%8C%AE%E5%BA%A6%E6%97%A5%E5%8E%86%E3%80%81%E7%94%A8%E6%88%B7%E8%83%BD%E5%8A%9B%E5%BB%BA%E6%A8%A1%E3%80%81%E8%A7%92%E8%89%B2%E4%B8%8E%E4%B8%93%E4%B8%9A%E5%AE%9A%E4%BD%8D%E5%88%86%E6%9E%90%E7%AD%89%E5%8A%9F%E8%83%BD%EF%BC%8C%E8%AE%A9%E6%82%A8%E5%9C%A8%E4%B8%AA%E4%BA%BA%E4%B8%BB%E9%A1%B5%E5%B1%95%E7%A4%BA%E5%BC%80%E5%8F%91%E5%8A%A8%E6%80%81%E4%B8%8E%E5%88%9B%E6%96%B0%E8%83%BD%E5%8A%9B%EF%BC%81%5Cn%5Cn%5Cn%23%23%20%E9%83%A8%E7%BD%B2%E6%B5%81%E7%A8%8B%5Cn%5Cn%5Cn%23%23%23%20%E4%BE%9D%E8%B5%96%E5%BA%93%5Cn%5Cn*%20Ruby%202.4.5%5Cn%5Cn*%20Rails%20~%3E%205.2%5Cn%5Cn*%20MySql%20~%3E%205.6%5Cn%5Cn*%20Redis%205%2B%5Cn%5Cn*%20imagemagick%5Cn%5Cn%23%23%23%20%E6%AD%A5%E9%AA%A4%5Cn%EF%BC%881%EF%BC%89%E5%AE%89%E8%A3%85%20Rails%20%E5%BF%85%E8%A6%81%E7%9A%84%E4%B8%80%E4%BA%9B%E4%B8%89%E6%96%B9%E5%BA%93%EF%BC%9A%5Cn-%20Mac%20OS%20X%5Cn%60%60%60bash%5Cn%20brew%20install%20imagemagick%20ghostscript%20libxml2%20libxslt%20libiconv%5Cn%60%60%60%5Cn%5Cn-%20Ubuntu%5Cn%60%60%60bash%5Cnsudo%20apt-get%20update%5Cnsudo%20apt-get%20install%20-y%20openssl%20libssl-dev%20imagemagick%20git%20ruby-dev%20nodejs%20libmariadb-dev%20libmysqlclient-dev%20shared-mime-info%20libpq-dev%20libxml2-dev%20libxslt-dev%5Cnsudo%20DEBIAN_FRONTEND%3D%5C%22noninteractive%5C%22%20apt-get%20install%20-y%20tzdata%5Cnsudo%20ln%20-s%20%2Fusr%2Fshare%2Fzoneinfo%2FAsia%2FShanghai%20%20%2Fetc%2Flocaltime%5Cn%60%60%60%5Cn%5Cn%EF%BC%882%EF%BC%89%E5%AE%89%E8%A3%85%20Ruby%2C%20Rails%20%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83%EF%BC%9A%5B%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E6%AD%A3%E7%A1%AE%E7%9A%84%E5%AE%89%E8%A3%85%20Ruby%2C%20Rails%20%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83%5D(https%3A%2F%2Fruby-china.org%2Fwiki%2Finstall_ruby_guide)%5Cn%60%60%60bash%5Cn%23%E6%A3%80%E9%AA%8C%E7%8E%AF%E5%A2%83%E6%98%AF%E5%90%A6%E6%AD%A3%E7%A1%AE%5Cnruby%20-v%5Cn%23ruby%202.4.x%20...%5Cn%5Cngem%20-v%5Cn%233.x.x%5Cn%5Cnbundle%20-v%5Cn%23Bundler%20version%202.x.x%5Cn%5Cnrails%20-v%5Cn%23Rails%205.2.x%5Cn%60%60%60%5Cn%5Cn%EF%BC%883%EF%BC%89%E5%85%8B%E9%9A%86%E7%A8%B3%E5%AE%9A%E7%89%88%E6%9C%AC%5Cn%60%60%60bash%5Cngit%20clone%20-b%20master%20https%3A%2F%2Fgitlink.org.cn%2FGitlink%2Fforgeplus.git%5Cn%60%60%60%5Cn%5Cn%EF%BC%884%EF%BC%89%E5%AE%89%E8%A3%85%E4%BE%9D%E8%B5%96%E5%8C%85%5Cn%60%60%60bash%5Cn%23%E8%BF%9B%E5%85%A5%E7%9B%AE%E5%BD%95%5Cncd%20forgeplus%5Cn%23%E5%88%A0%E9%99%A4Gemfile.lock%5Cnrm%20-rf%20Gemfile.lock%5Cn%23%E5%AE%89%E8%A3%85%E4%BE%9D%E8%B5%96%E5%8C%85%5Cnbundle%20install%5Cn%60%60%60%5Cn%5Cn%EF%BC%885%EF%BC%89%E9%85%8D%E7%BD%AE%E5%88%9D%E5%A7%8B%E5%8C%96%E6%96%87%E4%BB%B6%EF%BC%9A%E8%BF%9B%E5%85%A5%E9%A1%B9%E7%9B%AE%E6%A0%B9%E7%9B%AE%E5%BD%95%E6%89%A7%E8%A1%8C%E4%BB%A5%E4%B8%8B%E5%91%BD%E4%BB%A4%5Cn%60%60%60bash%5Cncp%20config%2Fconfiguration.yml.example%20config%2Fconfiguration.yml%5Cncp%20config%2Fdatabase.yml.example%20config%2Fdatabase.yml%5Cntouch%20config%2Fredis.yml%5Cntouch%20config%2Felasticsearch.yml%5Cn%60%60%60%5Cn%5Cn%EF%BC%886%EF%BC%89%E9%85%8D%E7%BD%AE%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%9A%E6%95%B0%E6%8D%AE%E5%BA%93%E9%85%8D%E7%BD%AE%E4%BF%A1%E6%81%AF%E8%AF%B7%E6%9F%A5%E7%9C%8B%2Fconfig%2Fdatabase.yml%E6%96%87%E4%BB%B6%EF%BC%8C%E9%A1%B9%E7%9B%AE%E9%BB%98%E8%AE%A4%E9%87%87%E7%94%A8mysql%E6%95%B0%E6%8D%AE%E5%BA%93%2C%20%E5%A6%82%E9%9C%80%E6%9B%B4%E6%94%B9%EF%BC%8C%E8%AF%B7%E8%87%AA%E8%A1%8C%E4%BF%AE%E6%94%B9%E9%85%8D%E7%BD%AE%E4%BF%A1%E6%81%AF%EF%BC%8C%E9%BB%98%E8%AE%A4%E9%85%8D%E7%BD%AE%E5%A6%82%E4%B8%8B%5Cn%60%60%60yaml%5Cndefault%3A%20%26default%5Cn%20%20adapter%3A%20mysql2%5Cn%20%20host%3A%20127.0.0.1%5Cn%20%20encoding%3A%20utf8%5Cn%20%20username%3A%20root%5Cn%20%20password%3A%20123456%5Cn%60%60%60%5Cn%5Cn%EF%BC%887%EF%BC%89%E9%85%8D%E7%BD%AEgitea%E6%9C%8D%E5%8A%A1(%E5%8F%AF%E9%80%89)%EF%BC%9A%E5%A6%82%E9%9C%80%E8%A6%81%E9%83%A8%E7%BD%B2%E8%87%AA%E5%B7%B1%E7%9A%84gitea%E5%B9%B3%E5%8F%B0%EF%BC%8C%E8%AF%B7%E5%8F%82%E8%80%83%5Bgitea%E5%AE%98%E6%96%B9%E5%B9%B3%E5%8F%B0%E6%96%87%E6%A1%A3%5D(https%3A%2F%2Fdocs.gitea.io%2Fzh-cn%2Finstall-from-binary%2F)%E3%80%82%E5%9B%A0%E7%9B%AE%E5%89%8Dgitea%E5%B9%B3%E5%8F%B0api%E5%8F%97%E9%99%90%EF%BC%8C%E6%9A%82%E6%97%B6%E6%8E%A8%E8%8D%90%E4%BB%8Eforge%E5%B9%B3%E5%8F%B0%E8%8E%B7%E5%8F%96%5Bgitea%E9%83%A8%E7%BD%B2%E6%96%87%E4%BB%B6%5D(https%3A%2F%2Fwww.gitlink.org.cn%2FGitlink%2Fgitea-binary)%E8%BF%9B%E8%A1%8C%E9%83%A8%E7%BD%B2%5Cn%5Cn-%20%E9%85%8D%E7%BD%AEgitea%E6%9C%8D%E5%8A%A1%E6%AD%A5%E9%AA%A4%EF%BC%9A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%5Ct--%20%E9%83%A8%E7%BD%B2gitea%E6%9C%8D%E5%8A%A1%EF%BC%8C%E5%B9%B6%E6%B3%A8%E5%86%8Croot%E8%B4%A6%E6%88%B7%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%5Ct--%20%E4%BF%AE%E6%94%B9forge%E5%B9%B3%E5%8F%B0%E7%9A%84%20config%2Fconfiguration.yml%E4%B8%AD%E7%9A%84gitea%E6%9C%8D%E5%8A%A1%E6%8C%87%E5%90%91%E5%9C%B0%E5%9D%80%EF%BC%8C%E5%A6%82%EF%BC%9A%5Cn%5Cn%60%60%60yaml%5Cngitea%3A%5Cn%20%20access_key_id%3A%20'root'%5Cn%20%20access_key_secret%3A%20'password'%5Cn%20%20domain%3A%20'http%3A%2F%2Fwww.gitea.example.com'%5Cn%20%20base_url%3A%20'%2Fapi%2Fv1'%5Cn%20%20hat_base_url%3A%20'%2Fapi%2Fhat'%5Cn%60%60%60%5Cn%5Cn%EF%BC%888%EF%BC%89%E9%85%8D%E7%BD%AE%2Fconfig%2Fdatabase.yml%E6%96%87%E4%BB%B6(%E5%AE%89%E8%A3%85redis%E7%8E%AF%E5%A2%83%3A%E8%AF%B7%E8%87%AA%E8%A1%8C%E6%90%9C%E7%B4%A2%E5%90%84%E5%B9%B3%E5%8F%B0%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2redis%E7%8E%AF%E5%A2%83)%5Cn%60%60%60yaml%5Cndefault%3A%20%26default%5Cn%20%20url%3A%20redis%3A%2F%2Flocalhost%3A6379%5Cn%20%20db%3A%201%5Cn%5Cnproduction%3A%5Cn%20%20%3C%3C%3A%20*default%5Cn%20%20url%3A%20redis%3A%2F%2Flocalhost%3A6379%5Cn%60%60%60%5Cn%5Cn%EF%BC%889%EF%BC%89%E5%88%9B%E5%BB%BA%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%9A%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E4%B8%BAdevelopment%EF%BC%8C%20%E7%94%9F%E6%88%90%E7%8E%AF%E5%A2%83%E4%B8%BAproduction%5Cn%60%60%60bash%5Cnrails%20db%3Acreate%20%20RAILS_ENV%3Ddevelopment%5Cn%60%60%60%5Cn%5Cn%EF%BC%8810%EF%BC%89%E5%AF%BC%E5%85%A5%E6%95%B0%E6%8D%AE%E8%A1%A8%E7%BB%93%E6%9E%84%5Cn%5Cn%60%60%60bash%5Cnbundle%20exec%20rake%20sync_table_structure%3Aimport_csv%5Cn%60%60%60%5Cn%5Cn%EF%BC%8811%EF%BC%89%E6%89%A7%E8%A1%8Cmigrate%E8%BF%81%E7%A7%BB%E6%96%87%E4%BB%B6%EF%BC%9A%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E4%B8%BAdevelopment%EF%BC%8C%20%E7%94%9F%E6%88%90%E7%8E%AF%E5%A2%83%E4%B8%BAproduction%5Cn%60%60%60bash%5Cnrails%20db%3Amigrate%20RAILS_ENV%3Ddevelopment%5Cn%60%60%60%5Cn%5Cn%EF%BC%8812%EF%BC%89clone%E5%89%8D%E7%AB%AF%E4%BB%A3%E7%A0%81%EF%BC%9A%E5%B0%86%E5%89%8D%E7%AB%AF%E4%BB%A3%E7%A0%81%E5%85%8B%E9%9A%86%E5%88%B0public%2Freact%E7%9B%AE%E5%BD%95%E4%B8%8B%EF%BC%8C%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84%E5%BA%94%E8%AF%A5%E6%98%AF%3A%20public%2Freact%2Fbuild%5Cn%60%60%60bash%5Cngit%20clone%20-b%20master%20https%3A%2F%2Fgitlink.org.cn%2FGitlink%2Fbuild.git%5Cn%60%60%60%5Cn%5Cn%EF%BC%8813%EF%BC%89%E5%90%AF%E5%8A%A8redis(%E6%AD%A4%E5%A4%84%E4%BB%A5macOS%E7%B3%BB%E7%BB%9F%E4%B8%BA%E4%BE%8B)%5Cn%60%60%60bash%5Cnredis-server%26%5Cn%60%60%60%5Cn%5Cn%EF%BC%8814%EF%BC%89%E5%90%AF%E5%8A%A8sidekiq%EF%BC%9A%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E4%B8%BAdevelopment%EF%BC%8C%20%E7%94%9F%E6%88%90%E7%8E%AF%E5%A2%83%E4%B8%BAproduction%5Cn%60%60%60bash%5Cnbundle%20exec%20sidekiq%20-C%20config%2Fsidekiq.yml%20-e%20production%20-d%5Cn%60%60%60%5Cn%5Cn%EF%BC%8815%EF%BC%89%E5%90%AF%E5%8A%A8rails%E6%9C%8D%E5%8A%A1%5Cn%60%60%60bash%5Cnrails%20s%5Cn%60%60%60%5Cn%5Cn%EF%BC%8816%EF%BC%89%E6%B5%8F%E8%A7%88%E5%99%A8%E8%AE%BF%E9%97%AE%EF%BC%9A%E5%9C%A8%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%AD%E8%BE%93%E5%85%A5%E5%A6%82%E4%B8%8B%E5%9C%B0%E5%9D%80%E8%AE%BF%E9%97%AE%5Cn%60%60%60bash%5Cnhttp%3A%2F%2Flocalhost%3A3000%2F%5Cn%60%60%60%5Cn%5Cn%EF%BC%8817%EF%BC%89%E5%85%B6%E4%BB%96%E8%AF%B4%E6%98%8E%EF%BC%9A%E9%80%9A%E8%BF%87%E9%A1%B5%E9%9D%A2%E6%B3%A8%E5%86%8C%E4%BB%A5%E7%AC%AC%E4%B8%80%E4%B8%AA%E7%94%A8%E6%88%B7%E4%B8%BA%E5%B9%B3%E5%8F%B0%E7%AE%A1%E7%90%86%E5%91%98%E7%94%A8%E6%88%B7%5Cn%5Cn%5Cn%23%23%20%E9%A1%B5%E9%9D%A2%E5%B1%95%E7%A4%BA%5Cn%5Cn-%20%E9%A1%B9%E7%9B%AE%E5%88%97%E8%A1%A8%5Cn%5Cn%3Ccenter%3E%5Cn%3Cimg%20src%3D%5C%22https%3A%2F%2Fwww.gitlink.org.cn%2Fapi%2FGitlink%2Fforgeplus%2Fraw%2Fdocs%2Ffigs%2Fproject_list.png%3Fref%3Dmaster%5C%22%20width%3D80%25%20%2F%3E%5Cn%3C%2Fcenter%3E%5Cn%20%20%20%20%20%20%20%20%5Cn-%20%E4%BB%A3%E7%A0%81%E4%BB%93%E5%BA%93%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%3Ccenter%3E%5Cn%3Cimg%20src%3D%5C%22https%3A%2F%2Fwww.gitlink.org.cn%2Fapi%2FGitlink%2Fforgeplus%2Fraw%2Fdocs%2Ffigs%2Frepo.png%3Fref%3Dmaster%5C%22%20width%3D80%25%20%2F%3E%5Cn%3C%2Fcenter%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn-%20%E4%BB%BB%E5%8A%A1%E7%AE%A1%E7%90%86%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%3Ccenter%3E%5Cn%3Cimg%20src%3D%5C%22https%3A%2F%2Fwww.gitlink.org.cn%2Fapi%2FGitlink%2Fforgeplus%2Fraw%2Fdocs%2Ffigs%2Fissues.png%3Fref%3Dmaster%5C%22%20width%3D80%25%20%2F%3E%5Cn%3C%2Fcenter%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn-%20%E5%90%88%E5%B9%B6%E8%AF%B7%E6%B1%82%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%3Ccenter%3E%5Cn%3Cimg%20src%3D%5C%22https%3A%2F%2Fwww.gitlink.org.cn%2Fapi%2FGitlink%2Fforgeplus%2Fraw%2Fdocs%2Ffigs%2FPR.png%3Fref%3Dmaster%5C%22%20width%3D80%25%20%2F%3E%5Cn%3C%2Fcenter%3E%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn-%20%E5%BC%95%E6%93%8E%E9%85%8D%E7%BD%AE%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%3Ccenter%3E%5Cn%3Cimg%20src%3D%5C%22https%3A%2F%2Fwww.gitlink.org.cn%2Fapi%2FGitlink%2Fforgeplus%2Fraw%2Fdocs%2Ffigs%2Fengine.png%3Fref%3Dmaster%5C%22%20width%3D80%25%20%2F%3E%5Cn%3C%2Fcenter%3E%5Cn%5Cn%5Cn%23%23%20%E8%B4%A1%E7%8C%AE%E4%BB%A3%E7%A0%81%5Cn%5Cn%E6%88%91%E4%BB%AC%E6%9C%9F%E5%BE%85%E6%82%A8%E5%90%91GitLink%E6%8F%90%E4%BA%A4%E8%B4%A1%E7%8C%AE%EF%BC%81%E5%9C%A8%E6%82%A8%E8%B4%A1%E7%8C%AE%E6%97%B6%EF%BC%8C%E8%AF%B7%E9%81%B5%E5%BE%AA%E6%B5%81%E7%A8%8B%EF%BC%9A%5B%E3%80%90Wiki%E6%96%87%E6%A1%A3-GitLink%E5%8D%8F%E4%BD%9C%E5%BC%80%E5%8F%91%E6%B5%81%E7%A8%8B%E3%80%91%5D(https%3A%2F%2Fwww.gitlink.org.cn%2FGitlink%2Fforgeplus%2Fwiki%20%5C%22%E3%80%90Wiki%E6%96%87%E6%A1%A3-GitLink%E5%8D%8F%E4%BD%9C%E5%BC%80%E5%8F%91%E6%B5%81%E7%A8%8B%E3%80%91%5C%22)%5Cn%5Cn%23%23%23%23%20%E6%8C%87%E5%AF%BC%E6%96%87%E6%A1%A3%5Cn-%20%5BAPI%E6%96%87%E6%A1%A3%5D(https%3A%2F%2Fwww.gitlink.org.cn%2Fdocs%2Fapi)%5Cn-%20%5BGit%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%5D(https%3A%2F%2Fgit-scm.com%2F)%5Cn%5Cn%23%23%20%E8%AE%B8%E5%8F%AF%E8%AF%81%E5%8D%8F%E8%AE%AE%5Cn%22%7D"},"zoneReducer":{"zoneDetail":"","newsDetail":""}}
GitLink - CCF开源创新服务平台
GitLink(确实开源)是中国计算机学会(CCF)官方指定的开源创新服务平台,旨在以“为开源创新服务”为使命,以“成为开源创新的汇聚地”为愿景,秉承“创新、开放、协作、共享”的价值观,致力于为大规模开源开放协同创新助力赋能,打造创新成果孵化和新工科人才培养的开源创新生态!
特色功能
分布式协作开发:基于Git打造分布式代码托管环境,提供免费公、私有代码仓库,支持在线文件编辑、代码分支管理、协作贡献统计、代码仓库复刻(Fork)、贡献合并请求(PR)、群智贡献审阅等功能,让您的项目在这里健康、快速的成长!
一站式过程管理:提供疑修(Issue)、里程碑、通知提醒、标签归档等多样化任务管理工具,支持各类开发任务的发布、指派与跟踪,同时提供在线Wiki文档、组织多粒度管理等功能,为您搭建一站式的项目过程管理环境,让您的团队协作更高效、过程更透明!
高效流水线运维:融合DevOps思想,提供轻量级的工作流引擎(Engine),打通编码、测试、构建、部署等开发运维环节;支持自定义配置、代码静态扫描、构建自动触发、容器镜像托管等功能,同时支持接入第三方运维工具,让您的代码更加快速、可靠地形成高质量的产品!
多层次代码分析:提供软件软代码和芯片RTL代码的溯源分析、文件级和组件级许可证识别及风险分析、输入性开源漏洞检测和加固建议,支持分析结果的多层次可视化展示,帮助您实施有效开源治理,厘清代码引用链,发现并消除漏洞感染链,为安全合规的开源引用保驾护航!
多维度用户画像:实时采集和分析平台中的各类开源资源数据,搭建多维度用户画像评估系统,提供开发活动统计、贡献度日历、用户能力建模、角色与专业定位分析等功能,让您在个人主页展示开发动态与创新能力!
部署流程
依赖库
Ruby 2.4.5
Rails ~> 5.2
MySql ~> 5.6
Redis 5+
imagemagick
步骤
(1)安装 Rails 必要的一些三方库:
Mac OS X
Ubuntu
(2)安装 Ruby, Rails 运行环境:如何快速正确的安装 Ruby, Rails 运行环境
(3)克隆稳定版本
(4)安装依赖包
(5)配置初始化文件:进入项目根目录执行以下命令
(6)配置数据库:数据库配置信息请查看/config/database.yml文件,项目默认采用mysql数据库, 如需更改,请自行修改配置信息,默认配置如下
(7)配置gitea服务(可选):如需要部署自己的gitea平台,请参考gitea官方平台文档。因目前gitea平台api受限,暂时推荐从forge平台获取gitea部署文件进行部署
(8)配置/config/database.yml文件(安装redis环境:请自行搜索各平台如何安装部署redis环境)
(9)创建数据库:开发环境为development, 生成环境为production
(10)导入数据表结构
(11)执行migrate迁移文件:开发环境为development, 生成环境为production
(12)clone前端代码:将前端代码克隆到public/react目录下,目录结构应该是: public/react/build
(13)启动redis(此处以macOS系统为例)
(14)启动sidekiq:开发环境为development, 生成环境为production
(15)启动rails服务
(16)浏览器访问:在浏览器中输入如下地址访问
(17)其他说明:通过页面注册以第一个用户为平台管理员用户
页面展示
贡献代码
我们期待您向GitLink提交贡献!在您贡献时,请遵循流程:【Wiki文档-GitLink协作开发流程】
指导文档
许可证协议