apollo:开源的 Go 原生社交系统

栏目: IT技术 · 发布时间: 4年前

内容简介:seeapollo 项目的主体是一个 go 语言原生的 bbs 社区系统,主要为了弥补当前 go 语言原生社区系统的空白。在前后端分离盛行的今天,越来越多的技术细节被默认存在,无形中也就增加了初学者在这个技术栈的学习门槛。apollo 项目专注在 go 技术栈,从命令行启动、配置读取,到数据库访问、html模板渲染,均直接采用了 go 对应的库;除了语言层面的学习,apollo 项目还抽象了一些 web 设计中可能涉及的基本点,从而便于初学者未来了解设计更为宏大的项目。由于经验尚浅,再加上时间因素约束,项目

apollo 项目

see English README

apollo 项目的主体是一个 go 语言原生的 bbs 社区系统,主要为了弥补当前 go 语言原生社区系统的空白。在前后端分离盛行的今天,越来越多的技术细节被默认存在,无形中也就增加了初学者在这个技术栈的学习门槛。apollo 项目专注在 go 技术栈,从命令行启动、配置读取,到数据库访问、html模板渲染,均直接采用了 go 对应的库;除了语言层面的学习,apollo 项目还抽象了一些 web 设计中可能涉及的基本点,从而便于初学者未来了解设计更为宏大的项目。

由于经验尚浅,再加上时间因素约束,项目中难免有一些不雅的设计,欢迎大家创建 issue 指出问题,并欢迎大家提交更为完善的代码。

设计细节请查看 wiki

安装运行

apollo 是一个功能轻完备的项目,目前它已具备注册、登陆、注销、发帖、编辑、回复等功能,可以在一些简单应用场景下使用。可以到 http://www.jianzhoubian.com ) 预览,测试好像只能使用 http 协议而不能使用 https 协议访问=。=

环境要求

  • 安装 go(version >= 1.13)
  • 安装 MySQL(apollo 使用了 5.7.28 进行的开发)
  • (可选)安装 make (Linux 和 MacOS 上默认应该都有),如果没有安装,则需要手动运行一些命令

详细步骤

  1. 下载本仓库的代码(后面的操作都是在项目目录下执行);
  2. 根据 configs/config.yml.example 创建 configs/config.yml 文件;
  3. 根据 configs/config.yml 中数据库(database)的配置,在 MySQL 中创建用户及数据库。下面以 apollo 为例
-- 创建 apollo 数据库,默认字符集为 utf8mb4
CREATE DATABASE `apollo` DEFAULT CHARACTER SET = `utf8mb4`;

-- 创建用户名为 jingwei 密码为 20200101 的用户,并赋权 apollo 的所有权限给 jingwei
GRANT ALL PRIVILEGES ON apollo.* TO jingwei@"%" IDENTIFIED BY "20200101";
  1. 迁移数据表结构:

    1.1 如果安装了 make 工具,直接运行 make migrate 即可完成数据表的迁移。

    1.2 如果没有安装 make 工具,依次执行:

# 下载依赖
go mod tidy
# 构建 apollo.exe 二进制执行文件
go build -o apollo.exe main.go

# 执行迁移
./apollo.exe migrate
  1. 通过命令 ./apollo.exe 运行 apollo 项目。
  2. 通过浏览器访问 localhost:2020 即可看到对应的页面。

其他资料

请查看 wiki 目录。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

移动交互设计精髓

移动交互设计精髓

班格 (Cameron Banga)、温霍尔德 (Josh Weinhold) / 傅小贞、张颖鋆 / 电子工业出版社 / 2015-4-1 / CNY 89.00

越来越多的人正涌入移动应用领域,而设计和体验将是移动应用成败的关键。作者通过上百款应用的设计实践,系统化地梳理了移动应用的设计方法论,在理解用户、跨平台和适配设计、移动组件应用、界面视觉感染力、简约设计等方面都进行了深入阐述。此外,作者还介绍了一些非常实用的移动设计工具,分享了设计师该如何与开发工程师协同工作,以及如何收集用户反馈、甄别版本迭代的更新需求等。 《移动交互设计精髓——设计完美的......一起来看看 《移动交互设计精髓》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具