如何搭建企业管理系统Odoo并远程访问管理界面【内网穿透】
文章目录
- 前言
- 1. 下载安装Odoo:
- 2. 实现公网访问Odoo本地系统:
- 3. 固定域名访问Odoo本地系统
前言
Odoo是全球流行的开源企业管理套件,是一个一站式全功能ERP及电商平台。
开源性质:Odoo是一个开源的ERP软件,这意味着企业可以自由选择部署方式(如云端或本地服务器),并根据自身需求进行定制开发。这为企业提供了更大的灵活性和控制权。

其功能涵盖了客户管理系统CRM、生产管理系统ERP、销售、采购、仓储管理系统WMS、MRP生产制造、内部即时通讯IM、条码追溯管理、质量管理系统QMS、HR全功能、财务管理、项目管理、制造执行系统MES、产品生命周期PLM、VOIP、电子商务E-Commerce、POS收银等一系列完善的企业信息化需求。
Odoo包含一站式的企业所需功能。
销售管理:订单处理、报价、客户关系管理等。
采购管理:供应商信息、采购订单跟踪等。
库存管理:产品分类、库存控制及调拨等。
生产制造:生产计划、工艺路线及成本分析等。
财务会计:财务报表生成、税收处理及预算控制等。
Odoo有两个版本 - 企业版和社区版。两个版本都是开源的,企业版其实是在社区版上层增加了更多应用模块,两者核心是一致的,我们今天来使用免费的社区版来进行内网穿透,实现远程访问本地部署的odoo企业管理系统。
当内网穿透软件cpolar映射生效后,在任意上网地方,都可以通过外网域名进行访问。让外网访问内网,主要原理方案是将内网地址变成外网地址,在目标内网操作设置添加内网IP端口映射成域名。在让外网访问前,先明确自己本地内网的具体内网地址端口协议信息,并确保在内网能够正常访问。
本地搭建服务器,跨网互通互连,是网络应用场景常见需求。通过cpolar内网穿透软件,我们可以轻松实现将内网服务让外网远程访问。内网穿透的应用场景十分广泛,比如外网远程桌面连接内网计算机、nas的远程访问、个人博客的搭建、FTP文件共享、数据库跨网连接等等。
1. 下载安装Odoo:
官方首页:
odoo


安装包地址:
Index of /15.0/nightly/ (odoo.com)
本教程使用windows版本部署安装,作为演示:

点击链接,下载安装包,开始安装:

一路默认设置即可

这里是数据库的端口,用户名等信息,需要截图保存。

安装完毕后,点 finish,就会自动弹出localhost:8069 的本地页面:

点击创建数据库后,需要加载一会儿,请耐心等待

注意,我的odoo默认打开端口为8069,我们之后会内网穿透这个端口,实现公网访问本地部署的ERP系统。
进入应用选择页面:

能够正常打开进入crm系统:


具体如何使用各个功能详见Odoo官网——文档手册,本教程主要解决如何在外地公网访问这套强大的企业管理系统。

2. 实现公网访问Odoo本地系统:
首先,我们需要安装内网穿透软件cpolar
安装完毕后,打开[仪表盘 - Cpolar](http://localhost:9200/#/tunnels/list)


-
隧道名称:可自定义,注意不要重复
-
协议:http
-
本地地址:8069 (odoo的 默认端口)
-
域名类型:选择随机域名(免费)
-
地区:Auto

复制这个公网地址:

成功登陆:


这样我们实现了使用公网访问本地部署的开源ERP,但是免费版cpolar生成的是随机域名(24小时变化),接下来我们使用付费版将域名固定:
3. 固定域名访问Odoo本地系统
上面使用Cpolar建立的临时http数据隧道,连接上了Odoo。不过,此时还是随机临时http隧道,每隔24小时端口号就会发生变化。
如果想要让不同设备间的数据隧道长期稳定存在,我们还需要进一步的设置(由于固定TCP隧道会长期占用Cpolar服务器资源,因此不得不将此服务列入VIP项目中)。
要建立一条稳定的http数据隧道,我们首先要登录Cpolar官网,进入仪表台的预留界面


在预留界面中,找到 保留二级子域名 项目。在这个项目下,我们填入一些必要信息,如识别数据隧道的隧道名称、隧道使用区域等。

在这些信息填入后,点击右侧的保留按钮,将Cpolar官网后台的隧道固定下来
复制填写的二级子域名:

回到Cpolar webui界面:

- 隧道名称:可自定义,注意不要重复
- 协议:http
- 本地地址:8069 (网页的 默认端口)
- 域名类型:二级子域名(需要升级至基础版套餐及以上)
- sub domain:填刚刚在官网保留的二级域名
- 地区:我这里选择的是美国,这里需要与官网保留界面选择的一致!
点击 更新 后, 到 状态——在线隧道列表

再次查看在线隧道列表,发现localhost:8069隧道对应的公网地址变成了我们官网保留的固定二级子域名地址。
复制这个固定地址到浏览器:

穿透成功!


这样我们就实现了将本地部署的开源免费版Odoo系统上云,企业员工们可以实现在家或在户外来访问在办公室主机上安装的Odoo。
相关文章:
如何搭建企业管理系统Odoo并远程访问管理界面【内网穿透】
文章目录 前言1. 下载安装Odoo:2. 实现公网访问Odoo本地系统:3. 固定域名访问Odoo本地系统 前言 Odoo是全球流行的开源企业管理套件,是一个一站式全功能ERP及电商平台。 开源性质:Odoo是一个开源的ERP软件,这意味着企…...
【Git】git常用问题汇总
1. gitlab如何打tag gitlab打tag的目的 git作为代码管理工具已经使用的越来越多了。而且一般开发人员在Dev分支下进行开发。但是当代码需要发布到测试环境时,需要将代码先合并到master,然后打个tag ,类似于SVN中tag处理。这样便于后期代码向…...
2024免费mac苹果电脑系统电脑管家CleanMyMac X
macOS已经成为最受欢迎的桌面操作系统之一,它提供了直观、简洁的用户界面,使用户可以轻松使用和管理系统。macOS拥有丰富的应用程序生态系统;还可以与其他苹果产品和服务紧密协作,如iPhone、iPad,用户可以通过iCloud同…...
ElasticSearch详细搭建以及常见错误high disk watermark [ES系列] - 第497篇
导读 历史文章(文章累计490) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六…...
ADB:获取坐标
命令: adb shell getevent | grep -e "0035" -e "0036" adb shell getevent -l | grep -e "0035" -e "0036" 这一条正确,但是,grep给过滤了,导致没有输出 getevent -c 10 //输出10条信息…...
关于“Python”的核心知识点整理大全27
目录 10.5 小结 第11 章 测试代码 11.1 测试函数 name_function.py 函数get_formatted_name()将名和姓合并成姓名,在名和姓之间加上一个空格,并将它们的 首字母都大写,再返回结果。为核实get_formatted_name()像期望的那样工…...
实验三 MapReduce编程
实验目的: 1.掌握MapReduce的基本编程流程; 2.掌握MapReduce序列化的使用; 实验内容: 一、在本地创建名为MapReduceTest的Maven工程,在pom.xml中引入相关依赖包,配置log4j.properties文件,搭…...
element组件库的日期选择器如何限制?
本次项目中涉及到根据日期查找出来的数据进行调整,所以修改的数据必须是查找范围内的数据.需要对调整数据的日期进行限制,效果如下: 首先我们使用了element 组件库的日期选择器,其中灌完介绍, picker-options中函数disabledDate可以设置禁用状态,代码如下: <el-date-pickerv…...
QSqlQueryModel
QSqlQueryModel 是 Qt 框架中的一个模型类,用于在 Qt 的视图组件(如 QTableView、QListView)中显示数据库查询结果。 QSqlQueryModel 继承自 QAbstractTableModel,它通过执行 SQL 查询并将结果存储在内部数据结构中,提…...
docker-compose介绍和用法
docker-compose介绍和用法详解 1、docker-compose介绍2、docker-compose build3、docker-compose down4、docker-compose up -d 1、docker-compose介绍 Docker Compose是一个用于快速配置多个Docker容器的工具。它是一个定义和运行多容器的Docker应用工具,通过YAML…...
Mac下ERROR: Cannot connect to the Docker daemon
解决Mac下ERROR: Cannot connect to the Docker daemon at unix:///Users/qq/.orbstack/run/docker.sock. Is the docker daemon running? 在Mac系统的中, 如果实际已经安装docker并且已经启动了. 但执行 docker info 时 报错: ERROR: Cannot connect to the Docker daemon …...
本地项目添加到gitlab命令操作
gitlab上面创建一个跟项目名同名的文件夹 创建文件夹,填写信息 添加readme文档,先保存下创建的文件夹 回到项目,复制项目的git 地址 然后进入到本地项目的文件夹,如d:/workspace/spring-demo,右键打开git bash弹框 命令…...
t-io 程序执行后,jvm不退出的原因
基于t-io 1.7.3 版本分析源码 1、设定当前时间,每10毫秒执行一次 (非守护线程) 2、对应线程池的核心线程在AioServer启动时全部激活,并且添加空任务到阻塞队列,让核心线程(非守护线程)一直存活...
Vue3使用Three.js导入gltf模型并解决模型为黑色的问题
背景 如今各类数字孪生场景对三维可视化的需求持续旺盛,因为它们可以用来创建数字化的双胞胎,即现实世界的物体或系统的数字化副本。这种技术在工业、建筑、医疗保健和物联网等领域有着广泛的应用,可以帮助人们更好地理解和管理现实世界的事…...
说一下 jvm 有哪些垃圾回收算法?
说一下 jvm 有哪些垃圾回收算法? 一.对象是否已死算法 1.引用计数器算法 2.可达性分析算法 二.GC算法 1.标记清除算法 如果对象被标记后进行清除,会带来一个新的问题–内存碎片化。如果下次有比较大的对象实例需要在堆上分配较大的内存空间时࿰…...
【23真题】一共10道题,押题卷5道!
哈喽大家好,现在这个时间节点,有很多同学开始刷真题了!所以23真题系列正式启动!小马哥将全面发布23真题及详细解析! 小马哥Tips: 今天分享的是23年天津师范大学804的信号与系统试题及解析。这所院校一共出…...
JS的浅拷贝和深拷贝
首先理解什么是浅拷贝和深拷贝: 浅拷贝: 浅拷贝只会复制对象的第一层属性,而不会递归地复制嵌套的对象。浅拷贝仅复制对象的引用,新对象和原始对象仍然共享相同的引用,因此对新对象的修改可能会影响到原始对象。浅拷…...
天软特色因子看板 (2023.12 第12期)
该因子看板跟踪天软特色因子A06008(聪明钱因子(beta),该因子为以分钟行情价量信息为基础,识别聪明钱交易,用以刻画机构交易行为 值越大,越反映其悲观情绪,反之,反映其乐观情绪。 今日为该因子跟踪第12期&am…...
【Logback技术专题】「入门到精通系列教程」深入探索Logback日志框架的原理分析和开发实战技术指南(上篇)
深入探索Logback日志框架的原理分析和开发实战指南系列 Logback日志框架Logback基本模块logback-corelogback-classiclogback-accessLogback的核心类LoggerAppenderLayoutLayout和Appender filterlogback模块和核心所属关系 Logbackj日志级别日志输出级别日志级别介绍 Logback的…...
vue3+element Plus 清空el-tree复选框选中项
前提问题:el-tree加了show-checkbox复选框属性后,在选择完复选框后切换,不会自动清空选中内容,要求在切换时清空复选框选中内容,解决过程:设置el-tree的ref值,使用setCheckedKeys方法可清空复选…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...
