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

用 golang 写了一个个人站点-大家轻点喷

  •  3
     
  •   ysz1121 · 2020-03-21 17:14:58 +08:00 · 4258 次点击
    这是一个创建于 1734 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Shalog

    Shalog 是一个基于 Golang 开源的轻量级内容管理系统,告别 PHP 类的繁琐的部署方式,超底的资源占用率,并且支持图床功能当然也可以使用七牛作为存储方式,支持 Docker 、k8s 部署。

    项目设计

    支持内容自定义,支持模版自定义,支持图床功能,支持 Mweb,Metaweblog API 。

    内容展示

    项目开源地址:https://github.com/icowan/shalog

    管理后台前端

    开源地址: https://github.com/icowan/blog-view

    使用 ReaceJS 作为管理后台的前端展示,如下图:

    演示 Demo

    演示地址: https://shalog.nsini.com

    演示管理后台地址: https://shalog.nsini.com/admin/

    用户名: shalog

    密码: admin

    安装说明

    平台后端基于go-kit、前端基于 umijsant-design框架进行开发。

    后端所使用到的依赖全部都在go.mod里,前端的依赖在package.json,详情的请看yarn.lock,感谢开源社区的贡献。

    后端代码: https://github.com/icowan/shalog

    前端代码: https://github.com/icowan/shalog-view

    快速开始

    配置文件准备, app.cfg以下为参考:

    [server]
    app_name = shalog
    app_key = R*9N*Q#ROFJI
    debug = false # 是否启用调试模式
    log_level = error # warning error info debug
    logs_path = /var/log/shalog.log
    session_timeout = 14400 # 管理后台登录 token 失效时间
    
    [mysql]
    host = mysql # 数据库地址
    port = 3306 # 数据库端口
    user = root
    password = admin
    database = shalog
    
    [cors]
    allow = false # 是否支持跨域
    origin = http://localhost:8000
    methods = GET,POST,OPTIONS,PUT,DELETE
    headers = Origin,Content-Type,Authorization,mode,cors,x-requested-with,Access-Control-Allow-Origin,Access-Control-Allow-Credentials
    

    docker-compose 启动

    在您的电脑上安装 docker-compose 命令,请参考: https://docs.docker.com/compose/install/

    创建 docker-compose.yaml 文件:

    version: '3'
    services:
      mysql:
        image: mysql:5.7.29
        environment:
          MYSQL_ROOT_PASSWORD: "admin"
          MYSQL_DATABASE: "shalog"
        command: [
          '--character-set-server=utf8mb4',
          '--collation-server=utf8mb4_unicode_ci',
        ]
        expose:
          - "3306"
        ports:
          - "3306:3306"
      shalog:
        image: dudulu/shalog:latest
        command: /go/bin/shalog start -p :8080 -c /etc/shalog/app.cfg
        environment:
          GOPATH: "/go"
          USERNAME: "shalog"
          PASSWORD: "admin"
          SQL_PATH: ./database/db.sql
        volumes:
          - ./app.cfg:/etc/shalog/app.cfg
        depends_on:
          - mysql
        restart: always
        ports:
          - "8080:8080"
    

    将上面准备好的 app.cfg 放到当前目录,然后执行以下命令:

    $ docker-compose start
    

    浏览器输入: http://localhost:8080 访问

    本地启动

    • Golang 1.13+ 安装手册
    • MySQL 5.7+ (大多数据都存在 mysql)

    修改 app.cfg 文件,将 mysql 地址配置为您自己的数据库地址。

    克隆代码,及本地启动

    $ git clone github.com/icowan/shalog.git
    $ cd shalog/
    $ make run
    

    浏览器输入: http://localhost:8080 访问

    文档

    支持我

    24 条回复    2020-04-02 20:58:30 +08:00
    misaka19000
        1
    misaka19000  
       2020-03-21 17:27:37 +08:00
    为什么要轻喷?
    misaka19000
        2
    misaka19000  
       2020-03-21 17:27:50 +08:00
    感觉挺好的啊
    songjiaxin2008
        3
    songjiaxin2008  
       2020-03-21 17:33:51 +08:00
    不错 支持
    manami
        4
    manami  
       2020-03-21 17:40:38 +08:00
    挺好的
    minglanyu
        5
    minglanyu  
       2020-03-21 17:41:49 +08:00
    没钱,精神上支持(狗头
    sayakafs
        6
    sayakafs  
       2020-03-21 17:44:15 +08:00 via iPhone
    写的很好,不过下一秒改改就是我的了[狗头]
    missdeer
        7
    missdeer  
       2020-03-21 17:46:51 +08:00
    下一秒改改就是我的了[狗头]
    xfxly
        8
    xfxly  
       2020-03-21 17:49:23 +08:00
    下一秒改改就是我的了[狗头]
    donnior
        9
    donnior  
       2020-03-21 17:58:16 +08:00
    楼主,演示站太慢了,进不去
    alpha2016
        10
    alpha2016  
       2020-03-21 18:01:03 +08:00
    相当 NB 了
    python30
        11
    python30  
       2020-03-21 18:24:50 +08:00
    不错啊。mark 一下。抽空看看
    ysz1121
        12
    ysz1121  
    OP
       2020-03-21 18:28:09 +08:00
    哈哈谢谢〜
    ysz1121
        13
    ysz1121  
    OP
       2020-03-21 18:28:35 +08:00
    后台会有点慢,加载的前端资源比较大
    ysz1121
        14
    ysz1121  
    OP
       2020-03-21 18:31:11 +08:00
    有空欢迎留下友链
    hxroyal
        15
    hxroyal  
       2020-03-21 18:36:31 +08:00 via Android
    一个人撸了多久?看似功能很全面啊
    ysz1121
        16
    ysz1121  
    OP
       2020-03-21 18:57:34 +08:00
    @hxroyal 断断续续一个月吧
    52coder
        17
    52coder  
       2020-03-22 00:22:04 +08:00
    下一秒改改就是我的了[狗头]
    hjsbs
        18
    hjsbs  
       2020-03-22 08:36:47 +08:00
    告别 PHP 类的繁琐的部署方式??? 明明是你这个更繁琐 php 网站都不用部署的直接扔进云虚拟主机
    darknoll
        19
    darknoll  
       2020-03-22 08:53:57 +08:00 via Android
    前端代码在哪呢
    ysz1121
        20
    ysz1121  
    OP
       2020-03-22 09:52:49 +08:00
    ysz1121
        21
    ysz1121  
    OP
       2020-03-22 09:53:59 +08:00
    @hjsbs 嗯,这个可以直接 make run 或 docker-compose start 或者直接编译成二进制丢上去 环境都不需要
    hugee
        22
    hugee  
       2020-03-22 12:24:30 +08:00
    我这种只会简单用 wp 的家伙投来崇拜的目光
    iliul
        23
    iliul  
       2020-04-02 15:31:26 +08:00
    手动点赞
    brzhang
        24
    brzhang  
       2020-04-02 20:58:30 +08:00 via iPhone
    下一秒就是我用 flutter 撸了一个,求轻喷
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3376 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 11:50 · PVG 19:50 · LAX 03:50 · JFK 06:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.