自托管端口管理系统Portall

在这里插入图片描述

老苏一直在折腾各种开源软件,但总是记不清哪些应用占用了哪些端口,每次都是先随机想一个端口,然后在笔记中搜索,看有没有被占用过。Portall 就是用来解决老苏遇到的这种情况的,当然,excel 也是可以的 😂

什么是 Portall ?

Portall 是一个自托管端口管理系统,它提供了一个直观的 Web 界面,用于生成、跟踪和组织跨多个主机的端口和服务。它旨在让您更轻松地管理自托管应用和服务。

软件主要特征:

  • **轻松的端口管理:**添加、删除和分配端口到不同的服务和主机
  • **端口号生成:**为您的应用程序快速生成唯一的端口号
  • **导入工具:**从 CaddyfileDocker-ComposeJSON 数据导入现有配置
  • **自定义规则:**定义您自己的端口范围并为端口生成器设置排除项
  • **块级设计:**拖放元素来组织端口并在主机之间移动应用程序
  • **主题:**包括明暗模式,计划推出更多主题
  • **CSS Playground:**使用自定义 CSS 支持修改外观
  • **移动响应:**从任何地方管理您的端口

技术栈

  • 后端: Flask(Python)
  • 数据库: SQLAlchemy 和 SQLite
  • 前端: HTML、CSS、JavaScript

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 portall ,选择第一个 need4swede/portall:,版本选择 latest

本文写作时, latest 版本对应为 1.0.3

docker 文件夹中,创建一个新文件夹 portall,并在其中建一个子文件夹 data

文件夹装载路径说明
docker/portall/data/app/instance存放数据库文件

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
88558080

环境

可变
PORT容器端口设置,默认设为 8080
SECRET_KEY用于加密和安全认证的密钥,根据需要进行修改

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 portall 和 子目录
mkdir -p /volume1/docker/portall/data# 进入 portall 目录
cd /volume1/docker/portall# 运行容器
docker run -d \--restart unless-stopped \--name portall \-p 8855:8080 \-v $(pwd)/data:/app/instance \-e PORT=8080 \-e SECRET_KEY=<your_secret_key> \need4swede/portall:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'services:rediary:image: need4swede/portall:latestcontainer_name: portallrestart: unless-stoppedports:- 8855:8080volumes:- ./data:/app/instanceenvironment:- PORT=8080- SECRET_KEY=<your_secret_key>

然后执行下面的命令

# 新建文件夹 portall 和 子目录
mkdir -p /volume1/docker/portall/data# 进入 portall 目录
cd /volume1/docker/portall# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8855 就能看到主界面

Add IP 添加 IP address

加个描述

Generate ,会随机生成了一个端口

Settings --> General ,点 Save 将这个地址保存为缺省的 IP

Ports 会看到之前生成的端口

+ 号可以添加一些之前已经使用的端口

添加完成之后

官方的动图更直观

参考文档

need4swede/Portall: Port Management Interface
地址:https://github.com/need4swede/Portall

Introducing Portall: A Self-Hosted Port Management System : r/selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/1dyack6/introducing_portall_a_selfhosted_port_management/

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

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

相关文章

十分钟“手撕”七大排序

前言&#xff1a;可以通过目录来找你需要的排序的源代码。先是解释底层原理&#xff0c;后附带代码。 目录 稳定的概念 一、插入排序 二、希尔排序 三、选择排序 四、堆排序 五、冒泡排序 六、快速排序 七、归并排序 八、排序总结 额外&#xff1a;计数排序 稳定的…

Qt MV架构-委托类

一、基本概念 与MVC模式不同&#xff0c;MV视图架构中没有包含一个完全分离的组件来处理与用户的交互。 一般地&#xff0c;视图用来将模型中的数据显示给用户&#xff0c;也用来处理用户的输入。为了获得更高的灵活性&#xff0c;交互可以由委托来执行。 这些组件提供了输入…

gradle学习及问题

一、下载安装 参考&#xff1a;https://blog.csdn.net/chentian114/article/details/123344839 1、下载Gradle并解压 安装包&#xff1a;gradle-6.7-bin.zip 可以在idea的安装目录查看自己适配的版本 路径&#xff1a;D:\IDEA2021.3\plugins\gradle\lib 下载地址&#xff1a…

16_网络IPC2-寻址

进程标识 字节序 采用大小模式对数据进行存放的主要区别在于在存放的字节顺序&#xff0c;大端方式将高位存放在低地址&#xff0c;小端方式将高位存放在高地址。 采用大端方式进行数据存放符合人类的正常思维&#xff0c;而采用小端方式进行数据存放利于计算机处理。到目前…

python用selenium网页模拟时xpath无法定位元素解决方法2

有时我们在使用python selenium xpath时&#xff0c;无法定位元素&#xff0c;红字显示no such element。上一篇文章写了1种情况&#xff0c;是包含iframe的&#xff0c;详见https://blog.csdn.net/Sixth5/article/details/140342929。 本篇写第2种情况&#xff0c;就是xpath定…

Linux 线程初步解析

1.线程概念 在一个程序里的一个执行路线就叫做线程&#xff08;thread&#xff09;。更准确的定义是&#xff1a;线程是“一个进程内部的控制序列。在linux中&#xff0c;由于线程和进程都具有id,都需要调度等等相似性&#xff0c;因此都可以用PCB来描述和控制,线程含有PCB&am…

人类或是低等生物?

自工业革命以来&#xff0c;人类对自然资源的消耗日益加剧&#xff0c;引发了对未来可持续性的深刻担忧。然而&#xff0c;一项振奋人心的发现为人类提供了新的希望——一颗名为LHS 1140 b的超级地球&#xff0c;它位于距离地球约48光年的鲸鱼座&#xff0c;由詹姆斯韦布空间望…

uniapp字符串转base64,无需导入依赖(多端支持)

使用示例 import { Base64Encode, Base64Decode } from "@/utils/base64.js" base64.js const _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";export const Base64Encode = (text)

Qt Creator的好用的功能

&#xff08;1&#xff09;ctrlf&#xff1a; 在当前文档进行查询操作 &#xff08;2&#xff09;f3: 找到后&#xff0c;按f3&#xff0c;查找下一个 &#xff08;3&#xff09;shiftf3: 查找上一个 右键菜单&#xff1a; (4)f4&#xff1a;在…

使用vcXsrv可视化pcl文件

1、下载vcXsrc程序 2、按下面步骤配置 3、按上面操作后&#xff0c;在运行菜单就能看到它在运行了 4、去wsl中配置&#xff0c;即设置环境变量 vim ~/.bashrc # 设置连接windows的VcXsrv export DISPLAY192.168.1.100:0.0 #&#xff08;192.168.1.100是我windows的ip&#x…

信创学习笔记(四),信创之数据库DB思维导图

创作不易 只因热爱!! 热衷分享&#xff0c;一起成长! “你的鼓励就是我努力付出的动力” 一. 信创学习回顾 1.信创内容 信创内容思维导图 2.信创之CPU芯片架构 信创之CPU芯片架构思维导图 3.信创之操作系统OS 信创之操作系统OS思维导图 二. 信创之国产数据库DB思维导图 …

LAST_INSERT_ID使用方法-(DM8达梦数据库)

LAST_INSERT_ID使用方法 - DM8达梦数据库 1 示例 11.1 创建表1.2 结果集 2 示例 22.1 创建表2.2 结果集 3 达梦数据库学习使用列表 1 示例 1 1.1 创建表 DROP TABLE AT240715; CREATE TABLE "SYSDBA"."AT240715" ( "ID" INT PRIMARY KEY AUTO_…

Autosar Dcm配置-0x28服务ComControl-基于ETAS软件

文章目录 前言DcmDcmDsdDcmDspBswMBswMModeRequestPortBswMModeConditionBswMLogicalExpressionBswMActionBswMActionListBswMRule总结前言 0x28服务主要用来控制非诊断报文的通讯,一般在刷写预编程过程中,用来禁止APP的通信报文,可以减少总线负载率,提高刷写成功率。本文…

数据结构之线性表表示集合详解与示例(C,C#,C++)

文章目录 基本特征线性表的特点&#xff1a;线性表的表示方法&#xff1a;C、C#和C语言如何实现一个线性表表示集合1. C实现2. C#实现3. C实现 总结 线性表是计算机数据结构中的一个基本概念&#xff0c;它是一种最简单的抽象数据类型。在线性表中&#xff0c;数据元素之间的关…

pip install安装第三方库 error: Microsoft Visual C++ 14.0 or greater is required

原因&#xff1a; 在windows出现此情况的原因是pip安装的库其中部分代码不是python而是使用C等代码编写&#xff0c;我们安装这种类型的库时需要进行编译后安装。 安装Microsoft C Build Tools软件&#xff0c;但这种方式对于很多人来说过于笨重。&#xff08;不推荐&#xf…

VUE:跨域配置代理服务器

//在vite.config。js中&#xff0c;同插件配置同级进行配置server:{proxy:{"/myrequest":{//代理域名&#xff0c;可自行修改target:"https://m.wzj.com/",//访问服务器的目标域名changeOrigin:true,//允许跨域configure:(proxy,options) > {proxy.on(&…

【Django+Vue3 线上教育平台项目实战】登录功能模块之短信登录与钉钉三方登录

文章目录 前言一、几个关键概念1.HTTP无状态性2.Session机制3.Token认证4.JWT 二、通过手机号验证码登录1.前端短信登录界面2.发送短信接口与短信登录接口3.Vue 设置interceptors拦截器4. 服务端验证采用自定义中间件方式实现5. 操作流程及效果图如下&#xff1a; 三、通过第三…

Flychat:跨越距离的心灵桥梁

在当今这个数字化时代&#xff0c;人们的沟通方式变得越来越多样化&#xff0c;而移动设备的普及更是极大地推动了这一趋势。我们几乎可以随时随地与他人进行交流&#xff0c;分享生活的点滴。然而&#xff0c;在享受这些便捷的同时&#xff0c;我们也时常会遇到一些小困扰——…

Rust 使用 panic! 还是不用 panic!

使用 panic! 还是不用 panic! 那么&#xff0c;该如何决定何时应该 panic! 以及何时应该返回 Result 呢&#xff1f;如果代码 panic&#xff0c;就没有恢复的可能。你可以选择对任何错误场景都调用 panic!&#xff0c;不管是否有可能恢复&#xff0c;不过这样就是你代替调用者…

年化18.9%的创业板趋势策略,使用模块化策略模板重构(代码+数据)

原创文章第590篇&#xff0c;专注“AI量化投资、世界运行的规律、个人成长与财富自由"。 昨天咱们分享的文章&#xff1a;”以交易为生“&#xff0c;基础设施很重要。 传统backtrader写策略的步骤是如下&#xff1a; 1、定义因子&#xff0c;比如动量roc&#xff1a; …