Satellity

又一个使用 Golang、React 和 PostgreSQL 编写的开源论坛。「Yet another open source forum written in Golang, React and PostgreSQL.」

Github星跟踪图

Satellity

Satellity is a 100% open source forum, written in Go. Please visit https://routinost.com for more details. For feedback, you can submit issues or join our slack(https://bit.ly/31b6xeX), Let's learn Go together!

How to deployment

  1. A VPS, I'm using Digital Ocean right now, and you can use any other VPS like GCP, AWS. You'll get some credit from the link, and it depends on you.
  2. Install Nginx sudo apt install nginx -y, here is an example config of nginx https://github.com/satellity/satellity/blob/master/deploy/nginx_example.conf , I'm using Ubuntu 20.04 LTS
  3. Install Postgresql sudo apt install postgresql -y, how to install PostgreSQL On Ubuntu, after create the database, you need import the database schema https://github.com/satellity/satellity/blob/master/internal/models/schema.sql
  4. Deploy the api server and web, you can find the shell script here: https://github.com/satellity/satellity/tree/master/deploy
  5. Use systemd to manage http server, here is the service template https://github.com/satellity/satellity/blob/master/deploy/systemd/satellity-http.service, and you can find the basic commands here
  6. Lets Encrypt, here is a step by step tutorial, https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-20-04
  7. Then you can visit you website after restart nginx

Some people want to know why not use docker? The most direct reason is that I don't know docker and didn't take time on it. And a shell script is enough for me right now.

Features

  1. REST API back-end written in Golang
  2. React-based frontend
  3. PostgreSQL, one of the best open source, flexible database
  4. Social login (OAuth 2.0) only support Github now
  5. JSON Web Tokens (JWT) are used for user authentication in the API
  6. Markdown supported topic and comment
  7. Model tested

Built With

  1. go version go1.15 darwin/amd64
  2. postgres (PostgreSQL) 12.3
  3. react ^16.13.1

Structure

  1. ./ is back-end service, we followed golang-standards project-layout.
  2. ./app is front-end service, contains React, Parcel and etc.
  3. ./deploy contains example of deploy, nginx and systemd.

Screenshot

Satellity

Getting Started

Backend

  1. cd ./internal, copy config/config.example to config/config.yaml. Replace config with yours.
  2. Prepare and start database, the database schema under ./internal/models/schema.sql, how to install postgresql.
  3. cd ./ && go build && ./satellity to start Golang server

Frontend

  1. Copy env.example to .env, and replace Satellity with your project name.

    SITE_NAME=your site name
    
  2. run yarn install, then yarn start. It's running now.

Contribution

When contributing to this repository, please reach out to @jadeydi or other contributors via email, issue or any other means to discuss the changes you wish to make.

You can also just clone the repository, create a new branch of the feature or issue and make adequate changes then push and create a pull-request and request a review from other contributors.

License

https://opensource.org/licenses/MIT

主要指标

概览
名称与所有者satellity/satellity
主编程语言Go
编程语言Go, HTML, JavaScript, CSS, Shell, Makefile, Dockerfile, TSQL (语言数: 6)
平台
许可证MIT License
所有者活动
创建于2018-07-24 08:30:43
推送于2023-03-06 12:02:13
最后一次提交2022-08-10 00:00:10
发布数4
最新版本名称0.12.0 (发布于 )
第一版名称v0.9.0 (发布于 2019-02-04 22:27:33)
用户参与
星数614
关注者数19
派生数73
提交数755
已启用问题?
问题数23
打开的问题数9
拉请求数218
打开的拉请求数22
关闭的拉请求数208
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?