UI-SSH: 类似宝塔的面板 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
huangzhiyia

UI-SSH: 类似宝塔的面板

  •  
  •   huangzhiyia May 17, 2023 4372 views
    This topic created in 1079 days ago, the information mentioned may be changed or developed.

    介绍

    宝塔的证书续期功能一直有 bug ,莫名其妙续期不了,看了宝塔源代码感觉很复杂,自己菜无从下手。

    于是动手写了这个面板,目前还有些不完善的地方,欢迎尝鲜!

    好玩的地方

    可以添加多个 ssh 服务器,然后比如你在命令行 cd 某个目录,你直接拖动文件到终端中,就会自动上传文件到这个目录下。(建议 20MB 以内的文件)。

    说明

    技术栈是 React TS + Django, 之前也发过帖子,拖到现在才更新,是因为后来发现可能我的 VUE 水平不够,

    自己的项目写着写着都忘记该传什么参数了,于是去浅学了下 React 把前端重构了一遍。

    仅支持 Debian 11 与 Ubuntu 22.04 ,暂时没精力去适配其他系统。

    视频

    实际的视觉效果比视频好,视频有压缩请见谅。

    Watch the video

    项目地址

    https://github.com/UISSH/backend

    演示地址

    不要搞破坏,搞破坏的话直接删掉机器。

    https://dev.uissh.com/

    用户名:root 密码:root

    Supplement 1    May 17, 2023
    被一位老哥关闭了电源....,演示站已恢复。Orz
    Supplement 2    May 17, 2023
    为了避免破坏,后端权限从 root 降级成 admin ,目前仅为演示所用可能一些操作将会失败。

    正常是以 root 权限运行的。欢迎提出意见。
    Supplement 3    May 17, 2023
    各位老哥部署的时候,尽量使用国外机器,国内机器网络环境估计安装巨慢。

    然后强烈建议添加个域名解析,这样做后端将会尽可能的使用证书,比如 api 接口使用证书,phpmyadmin 也会使用证书,ftp 将会强制使用 ftps 协议。总之,一切能用到证书加密的地方,小弟都尽量使用证书去加密传输过程。

    还有数据库也有证书加密的配置,目前没有做,没有多少人把数据库对外访问叭。

    然后 ftp 支持挂载 s3 ,目前备份功能脚本需要自己写脚本添加到 crontab 中。


    最后最后,各位不用这个面板或者担心安全问题,可以直接 systemctl stop ui-ssh 停掉整个面板而不影响网站的正常运行。

    所有服务绝对不会去依赖面板的功能,面板只是起一个配置项目的可视化界面,而不应该成为项目运行的依赖。
    26 replies    2023-05-31 17:55:22 +08:00
    ltmst
        1
    ltmst  
       May 17, 2023
    整挺好
    基本经常用的都齐了
    docker 镜像容器管理功能考虑添加一下子不
    root01
        2
    root01  
       May 17, 2023
    挺不错的,有人缺德关机 哈哈
    huangzhiyia
        3
    huangzhiyia  
    OP
       May 17, 2023
    @gbw1992 给个竟品借鉴下,hhhh 。目前想法很多,比如后面数据库管理还要增加 redis 支持。支持 django 一键部署等等,支持自动构建 pages 等等。
    huangzhiyia
        4
    huangzhiyia  
    OP
       May 17, 2023
    权限降级后很多功能都不正常了,但是列出来的功能都是可用的,具体看演示视频。
    v2wtf
        5
    v2wtf  
       May 17, 2023
    不错,支持一下
    huangzhiyia
        6
    huangzhiyia  
    OP
       May 17, 2023
    演示站点目前基本是只读模式了,需要体验完整的功能需要自己部署哦。
    ljsh093
        7
    ljsh093  
       May 17, 2023
    @zmaplex #3 以前 iOS 上有个叫 hyperapp 的现在好像已经寄了,他这个容器管理还不错 https://web.archive.org/web/20220903021531/https://www.hyperapp.fun/zh/
    needpp
        8
    needpp  
       May 17, 2023   1
    from .website import WebsiteModel
    File "/usr/local/uissh/backend/website/models/website.py", line 15, in <module>
    from website.applications.app_factory import AppFactory
    File "/usr/local/uissh/backend/website/applications/app_factory.py", line 9, in <module>
    from website.applications.core.application import Application, Storage
    File "/usr/local/uissh/backend/website/applications/core/application.py", line 136, in <module>
    class Application(ApplicationStorage, metaclass=ABCMeta):
    File "/usr/local/uissh/backend/website/applications/core/application.py", line 169, in Application
    def get_app_parameter(cls) -> list[dict]:
    TypeError: 'type' object is not subscriptable
    2023-05-17 14:39:17,630 - main.py[line:151] - INFO: Write the database password to the backend config.
    Error: near line 1: no such table: common_systemconfigmodel
    2023-05-17 14:39:17,650 - main.py[line:48] - ERROR: sqlite3 /usr/local/uissh/backend/db.sqlite3 < config/sync_config.sql failed


    最后报错了,这是啥问题啊
    huangzhiyia
        9
    huangzhiyia  
    OP
       May 17, 2023 via Android
    @needpp Python 版本最低 3.9 啊
    needpp
        10
    needpp  
       May 17, 2023
    @zmaplex 都是脚本自己安装的,需要自己制定 python 版本吗
    huangzhiyia
        11
    huangzhiyia  
    OP
       May 17, 2023 via Android
    @needpp 脚本没有加环境判断,默认 Debian 11 最低的 Python 版本就是 3.9 啊,Ubuntu 22.04 版本更高。老哥啥发行版哦
    needpp
        12
    needpp  
       May 18, 2023
    @zmaplex oracle 我的锅,lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description: Ubuntu 20.04.6 LTS
    Release: 20.04
    Codename: focal 。以为创建的就是 22.04
    8eacekeep
        13
    8eacekeep  
       May 18, 2023
    不孬
    muzihuaner
        14
    muzihuaner  
       May 18, 2023 via Android
    可以加个 docker 管理
    huangzhiyia
        15
    huangzhiyia  
    OP
       May 18, 2023 via Android
    @muzihuaner 类似宝塔的 docker 管理吗
    djkloop
        16
    djkloop  
       May 18, 2023
    djkloop
        17
    djkloop  
       May 18, 2023
    @djkloop 这个貌似也不错
    blankmiss
        18
    blankmiss  
       May 18, 2023
    @djkloop 国产 我怕提交数据
    huangzhiyia
        19
    huangzhiyia  
    OP
       May 18, 2023
    @muzihuaner 今天看了下 docker 确实方便,安排
    royalknight
        20
    royalknight  
       May 18, 2023
    可以基于后端进行前端开发吗
    huangzhiyia
        21
    huangzhiyia  
    OP
       May 18, 2023
    @royalknight 没太明白你的意思,这个后端不包括任何前端代码,如果你要自己写也可以啊。

    前端地址在这: https://github.com/UISSH/react-frontend



    设计思路是后端尽量少提供接口,后端主要暴露两类接口:

    第一个是信息类查询(主要由 osquery 提供,没有的信息只能自己手写)

    第二个是执行接口( cmd )

    想要什么功能就在前端自己写 shell 命令,比如要增加 docker 管理功能。osquery 能直接查询相关信息,前端只要根据信息去向后端发送 `docker kill my_container` 命令就可以了。
    q000q000
        22
    q000q000  
       May 19, 2023
    已 star ,要是能把 FTP 备份完善下就好了。
    huangzhiyia
        23
    huangzhiyia  
    OP
       May 19, 2023 via Android
    @q000q000 具体哪些呢
    q000q000
        24
    q000q000  
       May 19, 2023
    @zmaplex 就是打包目录和数据库定时备份之类的,不用再写脚本...
    huangzhiyia
        25
    huangzhiyia  
    OP
       May 19, 2023 via Android
    @q000q000 这个后期肯定会加上的,是还没想好怎么实现。
    zkw111
        26
    zkw111  
       May 31, 2023
    @blankmiss 不存在 代码开源
    About     Help     Advertise     Blog     API     FAQ     Solana     838 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 52ms UTC 20:40 PVG 04:40 LAX 13:40 JFK 16:40
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86