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!
- 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.
- 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 - 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 - Deploy the api server and web, you can find the shell script here: https://github.com/satellity/satellity/tree/master/deploy
- 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
- 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
- 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.
- REST API back-end written in Golang
- React-based frontend
- PostgreSQL, one of the best open source, flexible database
- Social login (OAuth 2.0) only support Github now
- JSON Web Tokens (JWT) are used for user authentication in the API
- Markdown supported topic and comment
- Model tested
- go version go1.15 darwin/amd64
- postgres (PostgreSQL) 12.3
- react ^16.13.1
./
is back-end service, we followed golang-standards project-layout../app
is front-end service, contains React, Parcel and etc../deploy
contains example of deploy, nginx and systemd.
cd ./internal
, copyconfig/config.example
toconfig/config.yaml
. Replace config with yours.- Prepare and start database, the database schema under
./internal/models/schema.sql
, how to install postgresql. cd ./ && go build && ./satellity
to start Golang server
-
Copy
env.example
to.env
, and replaceSatellity
with your project name.SITE_NAME=your site name
-
run
yarn install
, thenyarn start
. It's running now.
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.