Skip to content

Latest commit

 

History

History
98 lines (82 loc) · 4.13 KB

README.en.md

File metadata and controls

98 lines (82 loc) · 4.13 KB

中文 | English

gin-template logo

Gin Template

✨ Template for Gin & React projects ✨

license release docker pull release GoReportCard

Download · Tutorial · Feedback · Demo

Features

  • Built-in user management.
  • Built-in file management.
  • GitHub OAuth.
  • WeChat official account authorization (need wechat-server).
  • Email verification & password reset.
  • Request rate limiting.
  • Static files caching.
  • Mobile friendly UI.
  • Token based authorization.
  • Use GitHub Actions to build releases & Docker images.
  • Cloudflare Turnstile user validation.

Deployment

Manual deployment

  1. Download built binary from GitHub Releases or build from source:
    git clone https://github.com/songquanpeng/gin-template.git
    go mod download
    go build -ldflags "-s -w" -o gin-template
  2. Run it:
    chmod u+x gin-template
    ./gin-template --port 3000 --log-dir ./logs
  3. Visit http://localhost:3000/ and login. The username for the initial account is root and the password is 123456.

Deploy with Docker

Execute: docker run -d --restart always -p 3000:3000 -v /home/ubuntu/data/gin-template:/data -v /etc/ssl/certs:/etc/ssl/certs:ro justsong/gin-template

Data will be saved in /home/ubuntu/data/gin-template.

Configurations

The system works out of the box.

You can configure the system by set environment variables or specify command line arguments.

After the system starts, use root user to log in to the system and do further configuration.

Environment Variables

  1. REDIS_CONN_STRING: when set, Redis will be used as the storage for request rate limitation instead of memory storage.
    • Example: REDIS_CONN_STRING=redis://default:redispw@localhost:49153
  2. SESSION_SECRET: when set, a fixed session key will be used so that the logged-in users' cookie remains valid across system reboots.
    • Example: SESSION_SECRET=random_string
  3. SQL_DSN: when set, the target SQL database will be used instead of SQLite.
    • Example: SQL_DSN=root:123456@tcp(localhost:3306)/gin-template

Command line Arguments

  1. --port <port_number>: specify the port number, the default value is 3000.
    • Example: --port 3000
  2. --log-dir <log_dir>: specify the log dir, if not set, the log won't be saved.
    • Example: --log-dir ./logs
  3. --version: print the version and exit.