当前位置: 首页 > news >正文

一个运行在浏览器中的开源Web操作系统Puter本地部署与远程访问

文章目录

    • 前言
    • 1.关于Puter
    • 2.本地部署Puter
    • 3.Puter简单使用
    • 4. 安装内网穿透
    • 5.配置puter公网地址
    • 6. 配置固定公网地址

💡 推荐

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击跳转到网站】

前言

你是否厌倦了每次启动电脑时都必须逐一登录各种网盘和应用程序,感到不胜其烦?是否担心自己的隐私被大型科技公司不断监视?今天,我要为你介绍一款超酷的工具——Puter!这个名字听起来就很酷炫的设备,不仅是一个个人云平台,还是一个强大的Web应用构建器。最关键的是,它能让你的数据真正属于你自己,而不是存放在那些“友好”的网盘服务商那里。

本文将向你展示如何在本地Linux系统上使用Docker部署Puter,并利用cpolar内网穿透工具,让你能够随时随地通过浏览器访问和管理你的个人数据中心,无需公网IP,也无需域名和云服务器。

截图

1.关于Puter

Puter 是一个先进的开源互联网操作系统,设计为功能丰富、速度极快且高度可扩展。Puter 可用作:

  • 一个以隐私为优先的个人云,将所有文件、应用程序和游戏保存在一个安全的地方,随时随地可访问。
  • 构建和发布网站、Web 应用程序和游戏的平台。
  • Dropbox、Google Drive、OneDrive 等的替代品,具有全新的界面和强大的功能。
  • 服务器和工作站的远程桌面环境。
  • 一个友好的开源项目和社区,学习 Web 开发、云计算、分布式系统等更多内容!

简单来说,Puter 就是你的私人数据中心+网盘+远程桌面+开发者乐园!你不仅可以把所有重要文件放在一个地方管理,还能轻松构建和发布自己的网站、Web应用甚至游戏。是不是听起来就超有科技感?而且最关键的是——这一切都在你自己的服务器上运行,安全又可靠!

2.本地部署Puter

本例使用Docker Compose部署,如果没有安装Docker,可以查看这篇教程进行安装:《Docker安装教程——Linux、Windows、MacOS》

打开终端执行下方命令 :

mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml

image-20241209162814183

启动:

sudo docker compose up

image-20241209162842610

和我一样使用虚拟机部署的小伙伴看到鲜红的ERRO别担心,是内存不太足了,不过对puter来说还是够用的。

接下来我们打开浏览器输入puter.localhost:4100即可在线访问puter了。

image-20241209163020101

3.Puter简单使用

右上角菜单,选择Save Session来创建新的账号。

image-20241209163143179

创建账号是为了保存会话和存储数据,这个账号是可以直接在 https://puter.com 上登录的

image-20241209163242748

Start 会看到自带的应用:

image-20241209163342209

对于开发人员来说,可以基于Puter.js 构建强大的 Web 应用程序,因为 Puter.js 可以让您的前端代码直接免费访问各种云端和人工智能服务。它将云存储、键值存储、GPT-3.5 TurboDALL·E、托管等功能带到您的前端代码中。

4. 安装内网穿透

不过我们目前只能在本地局域网内使用电脑等设备访问刚刚使用docker部署的使用puter。使用puter + Cpolar的组合可以完美解决这个问题,安装一个cpolar内网穿透工具就能轻松实现远程访问内网主机中部署的服务了,接下来介绍一下如何安装cpolar内网穿透。

下面是安装cpolar步骤:

Cpolar官网地址: https://www.cpolar.com

使用一键脚本安装命令

sudo curl https://get.cpolar.sh | sh

img

安装完成后,执行下方命令查看cpolar服务状态:(如图所示running即为正常启动)

sudo systemctl status cpolar

img

Cpolar安装和成功启动服务后,在浏览器上输入ubuntu主机IP加9200端口即:【http://localhost:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

image-20240801133735424

5.配置puter公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:puter 注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:4100
  • 域名类型:随机域名
  • 地区:选择China Top

image-20241209165642669

由于头域原因我们需要点击高级,添加host头域信息,点击创建。

image-20241209165749934

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑(异地)上,使用任意一个地址在浏览器中访问即可。

image-20241209164819104

如下图所示,成功实现使用公网地址异地远程访问本地部署的puter

image-20241209165837891

小结

为了方便演示,我们在上边的操作过程中使用cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

如果有长期使用puter,或者异地访问与使用其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想让公网地址好看又好记并体验更多功能与更快的带宽,那我推荐大家选择使用固定的二级子域名方式来配置公网地址。

6. 配置固定公网地址

由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。

点击左侧的预留,选择保留二级子域名,地区选择China TOP,然后设置一个二级子域名名称,填写备注信息,点击保留。

image-20241209170038897

保留成功后复制保留的二级子域名地址:puter

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道puter,点击右侧的编辑

image-20241209170118098

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China TOP

点击更新

image-20241209170145848

现在一个永久不会变化的网址就设置好了。

image-20241209170229178

我们复制下来打开浏览器粘贴,现在我们使用固定的公网地址访问puter可以看到访问成功。

image-20241209170323131

接下来就可以随时随地进行公网访问puter了,把公网地址分享给身边的人,还可以方便团队协作。以上就是如何在Linux Ubuntu系统Docker本地安装puter并实现异地远程访问的全部过程,感谢观看!

相关文章:

一个运行在浏览器中的开源Web操作系统Puter本地部署与远程访问

文章目录 前言1.关于Puter2.本地部署Puter3.Puter简单使用4. 安装内网穿透5.配置puter公网地址6. 配置固定公网地址 💡 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击跳转到网站…...

【零基础入门Go语言】struct 和 interface:Go语言是如何实现继承的?

提到面向对象编程中的继承,许多人脑海中可能会浮现出 Java、C 等语言中那一套熟悉的类继承体系。然而,Go 语言作为一门别具一格的编程语言,并没有遵循传统的继承模式。那么,在 Go 语言的世界里,它是怎样实现类似于继承…...

麦田物语学习笔记:实现拖拽物品交换数据和在地图上生成物品

基本流程 1.代码思路 (1)InventoryUI的PlayerSlots与PlayerBag里一一对应,所以想要实现交换数据实际上是,先拿到被拖拽的物体所对的Slot的序号和目标的Slot序号,然后将这两个序号对调一下 (2)物品交换的数据逻辑应该在InventoryManager里去调用,因为InventoryManager里管理了p…...

一些计算机零碎知识随写(25年1月)-1

我原以为世界上有技术的那批人不会那么闲,我错了,被脚本真实了。 今天正隔着画画呢,手机突然弹出几条安全告警通知。 急忙打开服务器,发现问题不简单,直接关服务器重装系统..... 首先,不要认为小网站&…...

Qt学习笔记第81到90讲

第81讲 串口调试助手实现自动发送 为这个名叫“定时发送”的QCheckBox编写槽函数。 想要做出定时发送的效果,必须引入QT框架下的毫秒级定时器QTimer,查阅手册了解详情。 在widget.h内添加新的私有成员变量: QTimer *timer; 在widget类的构造…...

Centos9 + Docker 安装 MySQL8.4.0 + 定时备份数据库到本地

Centos9 Docker 安装 MySQL8.4.0 定时备份数据库到本地 创建目录,创建配置文件启动容器命令定时备份MySQL执行脚本Linux每日定时任务命令文件内参数其他时间参数 AT一次性定时任务 创建目录,创建配置文件 $ mkdir -p /opt/mysql/conf$ vim /opt/mysql/…...

网络原理一>UDP协议详解

UDP和TCP都是应用层中的重要协议,如果做基础架构开发,会用得多一些。 这一篇我们先简单聊一下的UDP TCP格式呈现: 我们知道UDP是一种无连接,面向数据报,全双工,不可靠传输特性的网络协议。 基本格式如图…...

MySQL的小问题

编码问题 不管官方使用什么编码:latin1、gbk、utf8、utfmb4。统一使用utfmb4 MySQL中的utf8并不是utf-8,它省略了一个字节,只是用三个字节存储所有的符号,utfmb4才是utf-8 远程登录问题: MySQL官方默认没有启动远程…...

Mac——Docker desktop安装与使用教程

摘要 本文是一篇关于Mac系统下Docker Desktop安装与使用教程的博文。首先介绍连接WiFi网络,然后详细阐述了如何在Mac上安装Docker,包括下载地址以及不同芯片版本的选择。接着讲解了如何下载基础镜像和指定版本镜像,旨在帮助用户在Mac上高效使…...

FastApi Swagger 序列化问题

问题 错误现象: fastapi的 swagger 界面无法正常打开控制台报错:raise PydanticInvalidForJsonSchema(fCannot generate a JsonSchema for {error_info}) 详细报错: File "d:\Envs\miniconda3\envs\xdagent\lib\site-packages\pydan…...

《机器学习》——sklearn库中CountVectorizer方法(词频矩阵)

CountVectorizer方法介绍 CountVectorizer 是 scikit-learn 库中的一个工具,它主要用于将文本数据转换为词频矩阵,而不是传统意义上的词向量转换,但可以作为词向量转换的一种基础形式。用于将文本数据转换为词频矩阵,它是文本特征…...

UML系列之Rational Rose笔记三:活动图(泳道图)

一、新建活动图(泳道图) 依旧在用例视图里面,新建一个activity diagram;新建好之后,就可以绘制活动图了: 正常每个活动需要一个开始,点击黑点,然后在图中某个位置安放,接…...

Java面向对象面经总结

目录 面向对象基础 面向对象与面向过程的区别 创建一个对象用什么运算符,对象实体与对象引用的区别 对象相等和引用相等的区别 构造方法的特点,是否可被重写? 面向对象三大特征 封装 继承 多态 接口和抽象类的共同点和区别 深拷贝…...

红队工具使用全解析:揭开网络安全神秘面纱一角

红队工具使用全解析:揭开网络安全神秘面纱一角 B站红队公益课:https://space.bilibili.com/350329294 学习网盘资源链接:https://pan.quark.cn/s/4079487939e8 嘿,各位网络安全爱好者们!在风云变幻的网络安全战场上&am…...

OpenLinkSaas 2025年第一季度开发计划

OpenLinkSaas在2025的发展方向是强化基础设施和研发协作,弱化管理相关的功能。 为了根据参与到软件研发的整个流程,OpenLinkSaas会增加一系列的基础设施项目,并和OpenLinksaas进行深度整合。 目前计划中的基础设施: 链路追踪系统(OpenDragonF…...

【python小工具】怎么获取视频的关键帧频率?

使用 FFmpeg 提取 MP4 视频的关键帧并计算关键帧频率可以按以下步骤进行: 提取关键帧: 使用 FFmpeg 提取视频中的关键帧可以通过以下命令实现: ffmpeg -i input.mp4 -vf "selecteq(pict_type,I)" -vsync vfr keyframes_%03d.jpg…...

数字孪生可视化在各个行业的应用场景

数字孪生技术,作为新一代信息技术的集大成者,正在深刻改变着我们对物理世界的认知和管理方式。本文将探讨数字孪生可视化在不同行业的应用场景,以及它们如何赋能行业数字化转型。 1. 智慧城市与交通 在智慧城市领域,数字孪生技术…...

Python实现windows自动关机

python <shut.py> import ntplib from datetime import datetime, timezoneimport time import osimport easygui# net time def get_network_time():time.sleep(3)"""从网络时间服务器获取时间"""client ntplib.NTPClient()response c…...

Go可以使用设计模式,但绝不是《设计模式》中的那样

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons&#xff1a;JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram&#xff0c;自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 &#xff1f; 5 IDEA必装的插件&…...

【C语言】_使用冒泡排序模拟实现qsort函数

目录 1. 排序函数的参数 2. 排序函数函数体 2.1 比较元素的表示 2.2 交换函数Swap的实现 2.3 排序函数bubble_sort的实现 3. 测试整型数据排序 3.1 整型数据比较函数cmp_int的实现 3.2 整型数据排序后输出函数print_int的实现 3.3 整型数据测试函数test_int的实现 3…...

openCvSharp 计算机视觉图片找茬

一、安装包 <PackageReference Include"OpenCvSharp4" Version"4.10.0.20241108" /> <PackageReference Include"OpenCvSharp4.runtime.win" Version"4.10.0.20241108" /> 二、准备两张图片 三、编写代码 using OpenCv…...

从零开始开发纯血鸿蒙应用之处理外部文件

从零开始开发纯血鸿蒙应用 一、外部文件二、外部文件的访问形式1、主动访问2、被动访问 三、代码实现1、DocumentViewPicker2、Ability Skills3、onNewWant 函数4、冷启动时处理外部文件 一、外部文件 对于移动端app来说&#xff0c;什么是外部文件呢&#xff1f;是那些存储在…...

Spring中三级缓存详细讲解

1、Spring三级缓存是什么&#xff0c;过程是怎么样的&#xff1f; Spring 中的三级缓存主要用于单例 Bean 的生命周期管理&#xff0c;特别是在循环依赖时&#xff0c;它通过不同阶段暴露 Bean 实例来确保依赖注入的顺利完成。缓存的内容如下&#xff1a; 一级缓存 (singleton…...

论文阅读:《Whole-animal connectomes of both Caenorhabditis elegans sexes》

一 论文整体概述 论文下载链接&#xff1a;《Whole-animal connectomes of both Caenorhabditis elegans sexes》 补充信息和额外数据&#xff1a;https://www.nature.com/articles/s41586-019-1352-7 1. 作者期刊背景 该论文由Scott W. Emmons&#xff0c;David H. Hall等…...

嵌入式开发之STM32学习笔记day03

STM32之ADC&#xff08;模拟数字转换器&#xff09; 1 ADC简述2 ADC转换时间3 ADC转化结果存放机制4 ADC转化结果存放机制5 ADC电压转换 1 ADC简述 ADC&#xff08;Analog-Digital Converter&#xff09;模拟—数字转换器&#xff1b;ADC可以将引脚上连续变化的模拟电压转换为…...

windows10 安装 Golang 版本控制工具g与使用

下载包&#xff1a;https://github.com/voidint/g/releases 解压&#xff0c; 并添加到环境变量 g 常用命令 查询当前可供安装的stable状态及所有的 go 版本 # stable 版本 g ls-remote stable# 所有版本 g ls-remote安装目标 go 版本1.23.4g install 1.23.4切换到已安装的…...

SpringBoot 使用 Cache 集成 Redis做缓存保姆教程

1. 项目背景 Spring Cache是Spring框架提供的一个缓存抽象层&#xff0c;它简化了缓存的使用和管理。Spring Cache默认使用服务器内存&#xff0c;并无法控制缓存时长&#xff0c;查找缓存中的数据比较麻烦。 因此Spring Cache支持将缓存数据集成到各种缓存中间件中。本文已常…...

R数据分析:多分类问题预测模型的ROC做法及解释

有同学做了个多分类的预测模型,结局有三个类别,做的模型包括多分类逻辑回归、随机森林和决策树,多分类逻辑回归是用ROC曲线并报告AUC作为模型评估的,后面两种模型报告了混淆矩阵,审稿人就提出要统一模型评估指标。那么肯定是统一成ROC了,刚好借这个机会给大家讲讲ROC在多…...

数据结构与算法之二叉树: LeetCode 654. 最大二叉树 (Ts版)

最大二叉树 https://leetcode.cn/problems/maximum-binary-tree/ 描述 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值递归地在最大值 左边 的 子数组前缀上 构建左子树递归地在最大值…...

Linux 容器漏洞

定义&#xff1a;Linux 容器漏洞是指在容器技术&#xff08;如 Docker、LXC 等&#xff09;运行环境中存在的安全弱点。这些漏洞可能存在于容器镜像本身、容器运行时&#xff08;如 runc&#xff09;、容器编排工具&#xff08;如 Kubernetes&#xff09;或者容器与主机之间的交…...

吉林市教做网站/推广普通话手抄报简单又好看内容

结果显示&#xff0c;绝大部分程序员年龄都不到35岁。超过一半的程序员年龄在23-30岁之间。当然程序员中间的“天才少年”的比例也不低。(三)程序员性别比例一直以来&#xff0c;程序员这一群体主要是男性为主。在本次调查中发现&#xff0c;程序员群体中男女比例超过了12:1。如…...

做bjd娃娃的手工网站/杭州新站整站seo

jQuery鼠标换轮滚动事件1、鼠标混轮滚动事件2、添加class属性3、实现屏幕滚动效果css代码部分html与javascript部分1、鼠标混轮滚动事件 代码如下所示&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">…...

做网站要搭建什么平台/百度推广客服投诉电话

我的电脑的地址 C:\Users\Administrator.SC-201810160958\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions 网上很多地方说是和git有关&#xff0c;没错确实是和git有关&#xff0c;但是不是说删除本地的git就可以解决问题了&#xff0c;这个地方的git扩展…...

wordpress 粘贴表格/如何制作一个网页页面

从2月13号开学到现在&#xff0c;感觉自己每天的生活都是恍恍惚惚的&#xff0c;缺乏动力&#xff0c;缺少恒心和毅力。 四月份&#xff0c;更是如此。4月1号&#xff0c;三年级的师兄师姐们毕业离校了&#xff0c;陪着师兄师姐high了两三天。 接下来是清明节&#xff0c;懒懒的…...

中国空间站24小时直播入口/互联网广告营销是什么

起因 学习和使用PHP也有不少年头了&#xff0c;而自己也在学习和使用其他许多语言。我想通过这个总结来给自己一个交代。另一方面也分享一下开发经验&#xff0c;如何用PHP开发和管理大型的项目。 闲聊 许多人说自己1天学会PHP&#xff0c;头3天就写了个网站。的确PHP是个上手简…...

玉溪网站制作/近期热点新闻事件

北京出台文件支持区块链&#xff0c;提出 “一区一核、多点支撑” 51BB8财经 2018.11.13 11:10 字数 3965 阅读 0评论 0喜欢 0 编辑文章 11月9日&#xff0c;中关村管委会、北京市金融工作局和北京市科学技术委员会发布消息&#xff0c;经市政府同意&#xff0c;联合发布《北…...