【Docker】使用Docker部署IT运维管理平台CAT

news2024/11/19 9:28:02

作者怀揣着一个美好的愿景,旨在提升管理效率、推动开源项目的蓬勃发展。

来一杯咖啡与茶,为 IT 运维从业者减轻管理负担,提升管理效率,从繁重无序的工作中解压出来,利用剩余时间多喝一杯休息一下。 这是一个专为 IT 运维从业者打造的一站式解决方案平台,包含资产管理、工单、工作流、仓储等功能模块。 ❤ 感谢各位支持。CAT提倡与各位使用者、开发者一起创建健康生态,让本项目变得更好,欢迎提供 PR 贡献。

在这里插入图片描述
☕ CAT(Coffee And Tea)是一个开源的、开放的一站式 IT 运维管理平台。资产管理、工单、盘点以及可靠的移动端应用支持。

CAT的前世今生

CAT是对celaraze/chemex 重构版。原项目 chemex 名称弃用,需要老版本即 chemex IT资产管理系统的,请访问:https://github.com/celaraze/chemex.git 。

与 chemex 对比,CAT 有什么不同:

  1. CAT 采用全新架构设计,大量提升使用体验的细节,及紧跟最新版本潮流。
  2. CAT 大部分会还原 chemex 的基础功能,但部分设计可能由于实际业务需求将被弃用。
  3. 重做了数据导出、导入功能,现在将提供一个更加人性化的方式。
  4. 简化了部署需求。
  5. 增加各类资产编号自动生成规则。

Docker部署

  1. 执行 docker volume create cat_database 使数据库持久化。
  2. 执行 docker volume create cat_storage 使存储路径持久化,用于保存上传的文件、图片、以及应用产生的日志文件。
  3. 执行以下命令启动容器:
# 第一次启动容器,用于构建本地使用环境,包括生成配置文件。
docker run -itd -p 8000:8000 \
-v cat_database:/var/www/database/data \
-v cat_storage:/var/www/storage \
--name cat celaraze/cat
  1. 执行 docker cp cat:/var/www/.env /path/to/your/local/ 将应用的配置文件从容器中复制出来,配置文件应该存放在宿主机上。
  2. 停止该容器,并删除。 docker stop cat && docker rm cat
  3. 重新执行以下命令启动容器:
# 增加了 .env 配置文件持久化。
docker run -itd -p 8000:8000 \
-v cat_database:/var/www/database/data \
-v cat_storage:/var/www/storage/app/public \
-v /your/path/local/.env:/var/www/.env \
--name cat celaraze/cat

数据库更改为MySQL

如果不使用官方的sqlite存储数据,改为使用mysql数据库,和官方略有不同,请大家酌情使用

  1. 修改/your/path/local/.env
##注释掉了sqllite 使用mysql的配置
# 数据库配置
# 默认使用 sqlite
#DB_CONNECTION=sqlite
#DB_FOREIGN_KEYS=true
#DB_DATABASE=/var/www/database/data/database.sqlite
 
# 如果使用 mysql,取消注释以下配置块并设定
# 同时,注释上述 sqlite 的配置块
 
 DB_CONNECTION=mysql
 DB_HOST=192.168.***.***
 DB_PORT=3306
 DB_DATABASE=cat
 DB_USERNAME=root
 DB_PASSWORD=123456
  1. 修改完后执行 docker exec -it cat /bin/bash 进入容器内部
  2. 运行 php artisan cat:install 用来创建库和刷新权限。

Docker版本更新

  1. 先停止容器并删除容器,不用担心,你的数据库保存在 docker volume 中,执行 docker pull celaraze/cat:latest 拉取最新镜像。
  2. 执行以下命令启动容器:
docker run -itd -p 8000:8000 \
-v cat_database:/var/www/database/data \
-v cat_storage:/var/www/storage/app/public \
-v /your/path/local/.env:/var/www/.env \
--name cat celaraze/cat
  1. 执行 docker exec -it cat /bin/bash 进入容器终端。

  2. 在容器中执行 php artisan cat:update,确认是否在 /var/www 目录中,默认于此。

访问CAT首页

访问地址:http://192.168.3.166:8000,将IP替换为自己服务器IP地址,进入到CAT首页。如果无法访问,则检查服务器防火墙是否设置,云服务器的安全组端口是否放行等。

在这里插入图片描述

默认登录账号密码:admin@localhost.com/admin

部分画面截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

官方代码仓库:https://github.com/celaraze/cat

官方文档:https://celaraze.com/wiki/cat.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1525558.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

亮点抢先看!4月16-17日,百度Create大会开设“AI公开课”,大咖带你打造赚钱工具

3月16日,2024百度Create AI开发者大会正式开放售票,嘉宾套票定价399元。据悉,本次大会以“创造未来(Create the Future)”为主题,设有20深度论坛、超30节AI公开课、3000平AI互动体验区和AI音乐节等精彩环节…

AJAX-Promise

Promise 基本使用 定义:Promise对象用于表示一个异步操作的最终完成(或失败)及其结果值 好处: 1.逻辑更清晰 2.了解axios函数内部运作机制 3.能解决回调函数的问题 // 1.创建Promise对象 const p new Promise((resolve,reject…

【Web】浅聊Hessian反序列化之Resin的打法——远程类加载

目录 前言 原理分析 XString:触发恶意类toString QName的设计理念? 远程恶意类加载Context:ContinuationContext QName:恶意toString利用 hash相等构造 EXP 前言 精神状态有点糟糕,随便学一下吧 首先明确一个…

现代化的轻量级Redis桌面客户端Tiny RDM

​欢迎光临我的博客查看最新文章: https://river106.cn 1、简介 Tiny RDM(全称:Tiny Redis Desktop Manager)是一个界面现代化的轻量级Redis桌面客户端,支持Linux、Mac和Windows。它专为开发和运维人员设计,使得与Red…

2.shell中的echo命令

目录 概述实践shell结果 结束 概述 echo 命令详解 实践 shell #!/bin/bash # 输出一些变量或打印一些字符串 # 加双引号,空格是会保留的 echo "hello , world" # 不加,不会保留 echo hello , worldvar11 "a b c d&…

基于spring boot实现接口管理平台

数据库结构 /* Navicat MySQL Data TransferSource Server : localhost_3306 Source Server Version : 50724 Source Host : localhost:3306 Source Database : interfaceTarget Server Type : MYSQL Target Server Version : 50724 File Encoding…

Java毕业设计-基于SpringBoot的CSGO赛事管理系统-毕业论文+答辩PPT(附源代码+演示视频)

文章目录 前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构 三、系统实现展示1、系统功能模块2、管理员功能模块3、参赛战队功能模块4、合作方功能模块 四、毕设内容和源代码获取总结 Java毕业设计-基于Spring…

Java代码基础算法练习-判断素数-2024.03.17

任务描述: 输入一个数x,判断它是否是素数。 提示:素数是只能被1和它本身整除的数,1不是素数。 任务要求: 代码示例: package march0317_0331;import java.util.Scanner;public class March0317 {public …

【鸿蒙HarmonyOS开发笔记】常用组件介绍篇 —— Toggle切换按钮组件

概述 Toggle为切换按钮组件,一般用于两种状态之间的切换,例如下图中的蓝牙开关。 参数 Toggle组件的参数定义如下 Toggle(options: { type: ToggleType, isOn?: boolean })● type type属性用于设置Toggle组件的类型,可通过ToggleType枚举…

无人机助力智慧农田除草新模式,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建无人机航拍场景下的农田杂草检测识别系统

科技发展到今天,无人机喷洒药物已经不是一件新鲜事情了,在很多高危的工作领域中,比如高空电力设备除冰,电力设备部件传送更换等等,无人机都可以扮演非常出色的作用,前面回到老家一段时间,最近正…

Leetcode 31. 删除无效的括号

心路历程: 一开始看到有点懵,后来发现有点像按照一定规则穷举所有可能情况,想到了排列组合问题,再结合问题长度不固定,无法用已知个for循环表示,从而想到了回溯。这个题相当于需要在一定规则下枚举。 按照…

第2章 进程与线程(3)

2.3 同步与互斥 引入同步的原因是【进程的并发具有异步性,以各自独立不可预知的速度推进】 2.3.1 同步与互斥的基本概念 1.临界资源:一次仅仅允许一个进程所使用的资源叫做临界资源。 2.同步:进程同步是确保多个进程在共享资源的访问过程中按照一定规则进行协调和管理的过程。…

STM32CubeIDE基础学习-BEEP蜂鸣器实验

STM32CubeIDE基础学习-BEEP蜂鸣器实验 文章目录 STM32CubeIDE基础学习-BEEP蜂鸣器实验前言第1章 硬件介绍第2章 工程配置2.1 工程外设配置部分2.2 生成工程代码部分 第3章 代码编写第4章 实验现象总结 前言 前面学习了LED闪烁实验,现在来学习一下蜂鸣器发声实验&am…

Stable Diffusion出图时,一次性比较多个lora的效果?

事前准备 在WebUI中,lora插件(也算是模型)的存放位置为: 你的WebUI启动器根目录\models\Lora 把训练好的,或者下载到的模型放到这个文件夹。 重启WebUI之后就会出现在这里 在Lora标签中 注意:这些lora需要…

前端接口防止重复请求实现方案

虽然大部分的接口处理我们都是加了loading的,但又不能确保真的是每个接口都加了的,可是如果要一个接口一个接口的排查,那这维护了四五年的系统,成百上千的接口肯定要耗费非常多的精力,根本就是不现实的,所以…

springboot基于JAVA的邮件过滤系统设计与实现

摘 要 当今社会已经步入了科学技术进步和经济社会快速发展的新时期,人类的生存和思考方式也产生了变化。传统邮件过滤、意见反馈采取了人工的管理方法,但这种管理方法存在着许多弊端,比如效率低下、安全性低以及信息传输的不准确等&#xff…

【剑指offer--C/C++】JZ25 合并两个排序的链表

题目 思路 这个题目大逻辑比较简单,就是一个比较和穿插,但细节上要考虑清楚,可以画个图模拟一下。我这里是设置将两个链表拆开组成一个新的链表,这样不需要占用新的空间。两个指针对应节点的值进行比较,那个节点值较小…

【2024第一期CANN训练营】3、AscendCL运行时管理

文章目录 【2024第一期CANN训练营】3、AscendCL运行时管理1. 初始化与去初始化2. 资源申请与释放2.1 申请流程2.2 释放流程2.3 运行模式(可选) 3. 数据传输3.1 接口调用流程3.2 主要数据传输场景1. Host内的数据传输2. 从Host到Device的数据传输3. 从Dev…

【深度学习】滴滴出行-交通场景目标检测

案例5:滴滴出行-交通场景目标检测 相关知识点:目标检测、开源框架的配置和使用(mmdetection, mmcv) 1 任务目标 1.1 任务和数据简介 本次案例将使用深度学习技术来完成城市交通场景下的目标检测任务,案例所使用的数…

「全栈」低代码时代开启!页面开发、数据处理、复杂逻辑统统一站搞定!

数字化浪潮的推进让企业对应用开发效率有着愈发严苛的要求。 传统的开发模式,无论是前端开发还是后端处理,都普遍面临周期长、成本高、响应慢、迭代难等问题,由于部分企业长期未进行创新改革,导致每次在新增系统功能时&#xff0…