{"id":19444706,"url":"https://github.com/xerrors/meco","last_synced_at":"2025-07-23T17:07:06.832Z","repository":{"id":155875831,"uuid":"353985562","full_name":"xerrors/Meco","owner":"xerrors","description":"a blog site powered by vuepress-v2","archived":false,"fork":false,"pushed_at":"2022-03-07T06:03:28.000Z","size":1090,"stargazers_count":8,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-25T01:42:10.610Z","etag":null,"topics":["antd-vue","blog-theme","vue","vuepress","vuepress-blog"],"latest_commit_sha":null,"homepage":"https://www.xerrors.fun","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xerrors.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-04-02T10:29:03.000Z","updated_at":"2022-06-08T07:49:30.000Z","dependencies_parsed_at":"2023-06-26T03:01:35.204Z","dependency_job_id":null,"html_url":"https://github.com/xerrors/Meco","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/xerrors/Meco","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xerrors%2FMeco","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xerrors%2FMeco/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xerrors%2FMeco/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xerrors%2FMeco/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xerrors","download_url":"https://codeload.github.com/xerrors/Meco/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xerrors%2FMeco/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266717709,"owners_count":23973384,"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","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["antd-vue","blog-theme","vue","vuepress","vuepress-blog"],"created_at":"2024-11-10T16:07:58.910Z","updated_at":"2025-07-23T17:07:06.811Z","avatar_url":"https://github.com/xerrors.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Meco\n\n![](https://img.shields.io/badge/Python-14354C?style=for-the-badge\u0026logo=python\u0026logoColor=white)\n\n一个基于 vuepress v2 的默认主题开发的博客网站；\n\n- 易自定义；\n- 魔改程度低，便于升级；\n- 使用 AntD for vue2\n- 可以使用后台管理系统对数据进行管理，见[Meco-MS](https://github.com/Xerrors/Meco-MS/)\n- 可以使用基于 flask 的后端脚本来处理后台管理系统，见[Meco-Server](https://github.com/Xerrors/Meco-Server/)\n\n预览：[站点](https://www.xerrors.fun)\n\n![图片](https://xerrors.oss-cn-shanghai.aliyuncs.com/imgs/20210726163746-image.png)\n\n\u003e 提醒：\n\u003e 此博客服务需要配合后台管理系统[Meco-MS by Vue3](https://github.com/Xerrors/Meco-MS/)和后台数据服务[Meco-Server by Flask](https://github.com/Xerrors/Meco-Server/)才能正常使用，否则部分页面是加载不出来数据的（如博客页面、动态页面），文章页面可以正常显示；而后台管理系统和后台数据服务器的部署需要一定的门槛，请酌情使用。\n\n## Docker 部署\n\n使用 docker 可以方便的在服务器上部署，首先 clone 此项目：\n\n```sh\ngit clone https://github.com/Xerrors/Meco.git\n\ncd Meco\n```\n\n### 1. 直接部署\n\n首先此项目的目录下面创建一个 Dockerfile，内容如下。\n\n```dockerfile\n# build stage\nFROM node:lts-alpine as build-stage\nWORKDIR /app\n\nCOPY package.json ./\nRUN yarn\n\nCOPY . .\nRUN yarn docs:build\n\n# production stage\nFROM nginx:stable-alpine as production-stage\nCOPY --from=build-stage /app/docs/.vuepress/dist /usr/share/nginx/html\nEXPOSE 80\nCMD [\"nginx\", \"-g\", \"daemon off;\"]\n```\n\n然后 build 一个镜像，并启动这个镜像：\n\n```sh\ndocker build --tag vuepress-docker .\n\ndocker run -d -p 80:80 --rm vuepress-docker --name meco\n```\n\n此时使用 http://127.0.0.1 就可以在本地访问到，如果是在服务器上面，使用服务器的 IP 地址即可。\n\n\n### 2. 主机编译，然后部署到 docker\n\n首先要确保主机已经有了 node (version\u003e=12) 环境，然后创建一个 Dockerfile，内容如下：\n\n```dockerfile\nFROM nginx\nMAINTAINER Xerrors \u003cxerrors@163.com\u003e\n\n\nCOPY docs/.vuepress/dist  /usr/share/nginx/html\n\nEXPOSE 80\nCMD [\"nginx\", \"-g\", \"daemon off;\"]\n```\n\n之后就可以直接运行部署的脚本就可以了：\n\n```sh\nbash deploy.sh\n```\n\n当然也可以手动编译并运行 docker，首先\n\n```sh\ndocker build --tag vue-deploy .\n\ndocker run -d -p 80:80 --rm --name meco vue-deploy\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxerrors%2Fmeco","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxerrors%2Fmeco","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxerrors%2Fmeco/lists"}