{"id":13637994,"url":"https://github.com/open-cmdb/cmdb","last_synced_at":"2025-04-19T17:32:26.524Z","repository":{"id":38259159,"uuid":"123585908","full_name":"open-cmdb/cmdb","owner":"open-cmdb","description":"CMDB 配置管理系统 资产管理系统","archived":false,"fork":false,"pushed_at":"2020-03-06T08:41:17.000Z","size":4530,"stargazers_count":992,"open_issues_count":22,"forks_count":375,"subscribers_count":43,"default_branch":"master","last_synced_at":"2024-11-09T08:38:49.389Z","etag":null,"topics":["cmdb","django","django-rest-framework","element-ui","vue"],"latest_commit_sha":null,"homepage":"http://cmdb.mmtweb.xyz","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/open-cmdb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-03-02T14:00:49.000Z","updated_at":"2024-10-23T11:11:35.000Z","dependencies_parsed_at":"2022-08-09T02:00:32.247Z","dependency_job_id":null,"html_url":"https://github.com/open-cmdb/cmdb","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-cmdb%2Fcmdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-cmdb%2Fcmdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-cmdb%2Fcmdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-cmdb%2Fcmdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-cmdb","download_url":"https://codeload.github.com/open-cmdb/cmdb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249750075,"owners_count":21320074,"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":["cmdb","django","django-rest-framework","element-ui","vue"],"created_at":"2024-08-02T01:00:38.241Z","updated_at":"2025-04-19T17:32:24.816Z","avatar_url":"https://github.com/open-cmdb.png","language":"Python","readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/open-cmdb/cmdb/blob/dev/images/cmdb-0.png\"\u003e\n\u003c/p\u003e\n\n# cmdb\n\n\u003e CMDB 资产管理系统\n\n[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n![pyversions](https://img.shields.io/badge/python%20-3.5%2B-blue.svg)\n![vueversions](https://img.shields.io/badge/Vue.js-2.3.4-4fc08d.svg)\n![es2015](https://img.shields.io/badge/ECMAScript-6-green.svg)\n![element ui](https://img.shields.io/badge/element-2.1.0-20a0ff.svg)\n\n## 知乎链接\nhttps://zhuanlan.zhihu.com/p/34191320\n\n## 在线演示\nhttp://cmdb.xyz\n用户名：admin  密码：cmdbcmdb (请不要修改)\n\n## 问答群\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/open-cmdb/cmdb/blob/master/images/cmdb-weichat-QR.png\"\u003e\n\u003c/p\u003e\n\n## 特性\n* 热添加删除表 自定义字段类型\n* REST前后端分离架构 开放所有API接口\n* 强大的搜索查找能力（后端使用elasticsearch存储数据 ） 可以配合kibana使用\n* 支持查看数据修改记录\n* 表级权限管理\n* 容器快速部署\n\n### 前端\n\n* Vue\n* Element-ui\n* Vue-Router\n* Vuex\n* Axios\n\n### 后端\n\n* Python3\n* Django 1.11\n* Django REST framework\n* Elasticsearch\n* Mysql\n* LDAP\n* uwsgi\n* Nginx\n* Docker\n\n## 前端\nhttps://github.com/open-cmdb/cmdb-web\n\n## 快速开始\n\n\n准备一台可以访问互联网的centos服务器（内存大于等于4G） 将下面代码保存到install_cmdb.py  执行sudo python install_cmdb.py\n```python\n#!/usr/bin/env python2\n# -*- coding: utf-8 -*-\nimport os\nimport subprocess\nimport argparse\nimport time\n\ndef base(cmd):\n    if subprocess.call(cmd, shell=True):\n        raise Exception(\"{} 执行失败\".format(cmd))\n\ndef install_docker():\n    base(\"sudo yum install -y yum-utils device-mapper-persistent-data lvm2\")\n    base(\"sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo\")\n    base(\"sudo yum makecache fast\")\n    base(\"sudo yum -y install docker-ce\")\n    if(not os.path.exists(\"/etc/docker\")):\n        base(\"mkdir -p /etc/docker\")\n    with open(\"/etc/docker/daemon.json\", \"w\") as f:\n        f.write('{\\n    \"registry-mirrors\": [\"https://9f4w4icn.mirror.aliyuncs.com\"] \\n}')\n    base(\"sudo systemctl daemon-reload\")\n    base(\"sudo systemctl start docker\")\n\ndef create_dir():\n    if (not os.path.exists(\"/var/cmdb/db\")):\n        base(\"sudo mkdir -p /var/cmdb/db\")\n    if (not os.path.exists(\"/var/cmdb/es\")):\n        base(\"sudo mkdir -p /var/cmdb/es\")\n\ndef run_db_container():\n    base(\"sudo docker run --name cmdb-db -d -e MYSQL_ROOT_PASSWORD=cmdbcmdb -v /var/cmdb/db:/var/lib/mysql mysql:5.7.21\")\n\ndef run_es_container():\n    base(\"sudo docker run --name cmdb-es -d -v /var/cmdb/es:/usr/share/elasticsearch/data elasticsearch:5.6.8\")\n\ndef init_db():\n    base(\"sudo docker run -it --rm --link cmdb-db -e DB_HOST=cmdb-db -e ENV=PRO -e DB_PORT=3306 -e DB_USERNAME=root -e DB_PASSWORD=cmdbcmdb -e DB_NAME=cmdb mingmingtang/cmdb init-db\")\n\ndef run_cmdb_container(site_url, email_host, email_port, email_username, email_password):\n    base(\"sudo docker run -d --name cmdb --link cmdb-db --link cmdb-es -p 80:80 -e ENV=PRO -e SITE_URL={} -e DB_HOST=cmdb-db -e DB_PORT=3306 -e DB_USERNAME=root -e DB_PASSWORD=cmdbcmdb -e DB_NAME=cmdb -e ELASTICSEARCH_HOSTS=cmdb-es -e EMAIL_HOST={} -e EMAIL_PORT={} -e EMAIL_USERNAME={} -e EMAIL_PASSWORD={} mingmingtang/cmdb start\".format(site_url, email_host, email_port, email_username, email_password))\n\ndef input_para(help):\n    value = \"\"\n    while(not value):\n        value = raw_input(help)\n    return value\n\nif __name__ == '__main__':\n    if(os.geteuid() != 0):\n        raise(\"请以root权限运行\")\n    # parser = argparse.ArgumentParser()\n    # parser.add_argument(\"--siteurl\", type=str, help=\"E.g: http://cmdb.xxx.com, http://172.17.100.1\")\n    # parser.add_argument(\"--emailhost\", type=str, help=\"E.g: http://cmdb.xxx.com, http://172.17.100.1\")\n    # parser.add_argument(\"--emailport\", type=str, help=\"E.g: http://cmdb.xxx.com, http://172.17.100.1\")\n    # parser.add_argument(\"--emailusername\", type=str, help=\"E.g: http://cmdb.xxx.com, http://172.17.100.1\")\n    # parser.add_argument(\"--emailpassword\", type=str, help=\"E.g: http://cmdb.xxx.com, http://172.17.100.1\")\n    # args = parser.parse_args()\n    # SITE_URL = args.SITE_URL\n\n    site_url = input_para(\"请输入网站域名或IP（http://cmdb.xxx.com）：\")\n    email_host = input_para(\"网站邮箱服务器（smtp.163.com）：\")\n    email_port = input_para(\"邮箱服务器端口（25）：\")\n    email_username = input_para(\"邮箱用户名（cmdb@163.com）：\")\n    email_password = input_para(\"邮箱密码|独立授权码（P@ssw0rd）：\")\n\n    print(\"开始安装docker\")\n    install_docker()\n    print(\"开始创建目录\")\n    create_dir()\n    print(\"开始运行mysql容器\")\n    run_db_container()\n    print(\"开始运行elasticsearch容器\")\n    run_es_container()\n    print(\"等待数据库启动完成(10s)\")\n    time.sleep(10)\n    print(\"开始初始化数据库\")\n    init_db()\n    print(\"开始运行cmdb\")\n    run_cmdb_container(site_url, email_host, email_port, email_username, email_password)\n    print(\"完成！\")\n```\n\n## 手工部署\n先安装好Elasticsearch(5.6) 和 Mysql(5.7) 其它版本未测试\n\n### 容器名称\nmingmingtang/cmdb\n\n### 初始化数据库\n```bash\ndocker run -it --name cmdb-init-db --rm -e DB_HOST=数据库地址 -e ENV=PRO -e DB_PORT=数据库端口 -e DB_USERNAME=数据库用户名 -e DB_PASSWORD=数据库密码 -e DB_NAME=cmdb mingmingtang/cmdb init-db\n```\n示例：\n```bash\ndocker run -it --name cmdb-init-db --rm -e DB_HOST=172.16.0.11 -e ENV=PRO -e DB_PORT=3306 -e DB_USERNAME=root -e DB_PASSWORD=******** -e DB_NAME=cmdb mingmingtang/cmdb init-db\n```\n\n### 运行CMDB\n```bash\ndocker run -d --name cmdb -p 80:80 -e ENV=PRO -e SITE_URL=网站地址 -e DB_HOST=数据库地址 -e DB_PORT=数据库端口 -e DB_USERNAME=数据库用户名 -e DB_PASSWORD=数据库密码 -e DB_NAME=cmdb -e ELASTICSEARCH_HOSTS=ES地址，多个用英文逗号隔开，格式http://xx.xx.xx.xx:9200 -e EMAIL_HOST=邮箱smtp地址 -e EMAIL_PORT=邮箱smtp端口 -e EMAIL_USERNAME=发件箱 -e EMAIL_PASSWORD=邮箱密码 mingmingtang/cmdb start\n```\n示例：\n```bash\ndocker run -d --name cmdb -p 80:80 -e ENV=PRO -e SITE_URL=http://120.79.60.130 -e DB_HOST=172.16.0.11 -e DB_PORT=3306 -e DB_USERNAME=root -e DB_PASSWORD=******** -e DB_NAME=cmdb -e ELASTICSEARCH_HOSTS=http://127.0.0.1:9200 -e EMAIL_HOST=smtp.163.com -e EMAIL_PORT=25 -e EMAIL_USERNAME=mmt_cmdb@163.com -e EMAIL_PASSWORD=******** mingmingtang/cmdb start\n```\n\n## 嘿 哥们儿 给颗星吧 ┭┮﹏┭┮\n","funding_links":[],"categories":["Python","运维相关管理系统"],"sub_categories":["运维管理系统"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-cmdb%2Fcmdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopen-cmdb%2Fcmdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-cmdb%2Fcmdb/lists"}