V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
not4jerk
V2EX  ›  Go 编程语言

写了一个 100%Go 语言的 Web-Term-SSH 堡垒机项目欢迎大家拍砖

  •  
  •   not4jerk ·
    mojocn · 2019-10-22 15:58:03 +08:00 · 6737 次点击
    这是一个创建于 1863 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前端代码已经被我 Golang 化了,只需要一个二进制文件就可以把项目跑起来(包含前端和后端)

    Github 代码: https://github.com/mojocn/sshfortress

    Live Demo 地址: https://sshfortress.mojotv.cn/#/login 直接输入验证码登陆就可以了

    22 条回复    2019-10-24 10:12:49 +08:00
    kylix
        1
    kylix  
       2019-10-22 16:16:49 +08:00   ❤️ 1
    有意思,顶下
    angiie
        2
    angiie  
       2019-10-22 16:39:03 +08:00   ❤️ 1
    有点意思
    lc7029
        3
    lc7029  
       2019-10-22 16:39:31 +08:00   ❤️ 1
    有意思,先马
    37Y37
        4
    37Y37  
       2019-10-22 18:02:35 +08:00   ❤️ 1
    支持一下先,牛鼻!
    scukmh
        5
    scukmh  
       2019-10-22 18:05:38 +08:00
    先🐎
    huiyifyj
        6
    huiyifyj  
       2019-10-22 18:08:44 +08:00
    支持一下。
    顺便问一下, 前端文件打包进二进制是用的什么库啊?
    superbai
        7
    superbai  
       2019-10-22 18:09:40 +08:00
    前端文件如何打包的?
    not4jerk
        8
    not4jerk  
    OP
       2019-10-22 18:14:54 +08:00
    @huiyifyj [https://github.com/mojocn/sshfortress/blob/master/cmd/ginbin.go]( https://github.com/mojocn/sshfortress/blob/master/cmd/ginbin.go)

    https://github.com/mojocn/sshfortress/blob/master/felixbin/gin_static.go

    前端代码打包成一个`gin middleware`,
    ```go
    //sever static file in http's root path
    binStaticMiddleware, err := felixbin.NewGinStaticBinMiddleware("/")
    if err != nil {
    return err
    }
    r.Use(binStaticMiddleware)
    ```

    这样前后端就可以放在一个域名不需要 nginx-location 支持, 减少了 options 的请求时间, 如果你要使用你要进行改造.

    我写的这个只支持 vuejs-hash 模式, 其他的前端框架没有进行匹配和测试
    not4jerk
        9
    not4jerk  
    OP
       2019-10-22 18:19:34 +08:00
    @superbai
    @huiyifyj

    vuejs-单页面应用可以参照我之前 写的一篇博客 https://mojotv.cn/2019/07/27/how-to-serve-frontend-code-with-api-in-go
    pkwenda
        10
    pkwenda  
       2019-10-22 18:35:09 +08:00   ❤️ 1
    @superbai
    @huiyifyj

    我也有过类似经验,跟楼主不同,我使用的 https://github.com/GeertJohan/go.rice
    neochau
        11
    neochau  
       2019-10-22 19:00:18 +08:00   ❤️ 1
    终于有人使用 golang 写了一个 ssh jumper server, 看 readme.md 一个二进制文件直接搞定前端后端, 而且支持 SQLite3/MySQL 数据. 跑起来确实简单快捷
    huiyifyj
        12
    huiyifyj  
       2019-10-22 22:30:20 +08:00   ❤️ 1
    @not4jerk
    Thanks...
    rrfeng
        13
    rrfeng  
       2019-10-23 00:27:30 +08:00 via Android   ❤️ 1
    一直想要写这个…
    superbai
        14
    superbai  
       2019-10-23 00:35:36 +08:00   ❤️ 1
    @not4jerk #9
    @pkwenda #10 感谢解答,分享
    LancerAMG
        15
    LancerAMG  
       2019-10-23 02:11:10 +08:00 via iPhone   ❤️ 1
    马克
    woniuge
        16
    woniuge  
       2019-10-23 02:29:17 +08:00   ❤️ 1
    玩了半天魂斗罗 哈哈...
    not4jerk
        17
    not4jerk  
    OP
       2019-10-23 09:12:00 +08:00
    @woniuge 像开发自己的魂斗罗 其实很简单 https://github.com/bfirsh/jsnes

    这里有一个我写了一个 3500+Nes 游戏的页面 https://mojotv.cn/misc/games
    JingKeWu
        18
    JingKeWu  
       2019-10-23 09:29:56 +08:00   ❤️ 1
    有点意思 登陆加上 mfa 就好了
    deathscythe
        19
    deathscythe  
       2019-10-23 10:24:26 +08:00   ❤️ 1
    star 了...学习一下
    Kv_se7en
        20
    Kv_se7en  
       2019-10-23 10:59:25 +08:00   ❤️ 1
    Blog 使用 history 跳转之后让页面回到顶部啊....
    not4jerk
        21
    not4jerk  
    OP
       2019-10-23 11:32:29 +08:00
    @Kv_se7en 非常感谢您我的博客网站的体验反馈, `pjax scrollTop = 0` 这行代码已经添加, js 有缓存, 可能要过段时间.才生效.
    not4jerk
        22
    not4jerk  
    OP
       2019-10-24 10:12:49 +08:00
    @JingKeWu MFA 这个不是很好实现 我在国内都安装不了 google authenticator, 如果把 MFA 增加上去预计编译部署的时候会增加难度
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3522 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 04:46 · PVG 12:46 · LAX 20:46 · JFK 23:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.