Tetua – A simple Golang-based blogging platform
Mục Lục
Tetua – A simple CMS for blogging
Tetua is a simple CMS for blogging written in Golang. With tetua, you can quickly create a blog with a few simple commands.
Tetua is built on top of awesome libraries like:
Installation
Download the binary from the release page:
Create the config file
./tetua init
The config file will be created in the current directory.
{"app_env"
:"
production"
,"app_key"
:"
{APP_KEY}"
,"app_port"
:"
3000"
,"db_dsn"
:"
"
,"github_client_id"
:"
"
,"github_client_secret"
:"
"
,"db_query_logging"
:false
}
These fields are required:
app_key
: the key to encrypt the datadb_dsn
: the database connection stringgithub_client_id
: the client id for githubgithub_client_secret
: the client secret for github
You can skip this initialization step by specifying the environment variables:
APP_KEY
DB_DSN
GITHUB_CLIENT_ID
GITHUB_CLIENT_SECRET
Create the Admin account
./tetua setup -u admin -p password
Run the server
./tetua run
Features
- Posts Management
- Topics Management
- Users Management
- Role and Permission Management
- Site Settings Management
- Comment Management
- File Management
- User profile page
- User posts page
- Local file upload
- S3 file upload
- Sign in with Github
Documentation
- Documentation is hosted live at https://tetua.net
Development
Requirements:
- Go 1.18+
- Goreleaser
The development requires Go 1.18+ as we use generic
Clone the source code
git clone https://github.com/ngocphuongnb/tetua.gitcd
tetua go mod tidy
Build the static editor
make build_editor
Run the test
make test_all
Build the local release for testing
make releaselocal
Public a release
git tag -a vx.y.z -m"
Release note"
git push origin vx.y.z make release
Road Map
- Pages cache
- Sign in with Google
- Sign up with email (local account)
- Serial posts
- Report Abuse
- Complete the Unit Test
Screenshots
Contribute
If you want to say thank you and/or support the active development of Tetua, please consider some of the following:
- Add a GitHub Star to the project.
- Create a pull request.
- Fire an issue.
License
Copyright (c) 2022-present @ngocphuongnb and Contributors. Tetua is free and open-source software licensed under the MIT License.
Third-party libraries:
- entgo.io/ent
- github.com/Joker/hpp
- github.com/Joker/jade
- github.com/go-sql-driver/mysql
- github.com/gofiber/fiber/v2
- github.com/golang-jwt/jwt/v4
- github.com/google/uuid
- github.com/microcosm-cc/bluemonday
- github.com/valyala/fasthttp
- go.uber.org/zap
- github.com/davecgh/go-spew
- github.com/rclone/rclone
- github.com/urfave/cli/v2
- ariga.io/sqlcomment
- github.com/PuerkitoBio/goquery
- github.com/gofiber/utils
- github.com/gorilla/feeds
- github.com/tdewolff/minify/v2
- github.com/gosimple/slug
- github.com/stretchr/testify
- github.com/yuin/goldmark
GitHub
View Github