Skip to content

michaelliao/itranswarp

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
dev
 
 
env
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

iTranswarp

Full-featured CMS including blog, wiki, discussion, etc. Cloud native application that powered by SpringBoot.

Github Workflow

Docker Pulls

  • Based on SpringBoot 3.x
  • Search support
  • OAuth2 integration (Weibo, QQ, Facebook, etc.)
  • SEO support
  • REST API
  • Customized CSS with UIkit2

Environment

  • JDK 17
  • MySQL 5.7
  • Redis 5/6 with RediSearch 2

Quick Start

Please check Quick Start Guide.

Run with Docker

Run MySQL, RediSearch in background:

cd dev
docker-compose up -d

Run iTranswarp application:

docker run -d -p 2019:2019 --rm \
  --env-file /path/to/env-file \
  -v /var/log/itranswarp:/var/log/itranswarp \
  --name itranswarp michaelliao/itranswarp:1.4

Build

$ mvn -DskipTests=true clean package

Or check build.sh.

Initialize database

DDL and test data are generated by SchemaBuilder.java.

Create schema:

$ mysql -u root -p < dev/sql/ddl.sql

NOTE: re-run this SQL file will remove all existing data.

Import test data:

$ mysql -u root -p it < dev/sql/init.sql

Run

java -jar itranswarp.jar

Visit http://localhost:2019 for demo.

Search is auto-enabled if RediSearch 2.x is detected. How to install RediSearch in Redis.

Configuration

All configurations are passed by environments:

$ PROFILES=production TIME_ZONE=Asia/Shanghai DOMAIN=www.example.com \
  DB_HOST=localhost DB_PASSWORD=changeit \
  REDIS_HOST=localhost \
  java -jar itranswarp.jar

Please check application.yml for environment variables.

Deploy

iTranswarp is deployed by Docker. Images can be pulled from DockerHub.

                        ┌─────────────────────────────────────────┐
                        │                   VPC                   │
                        │         ┌───────────┐                   │
                        │         │  Docker   │     ┌────────────┐│
        https        ┌──┴──┐      │┌─────────┐│     │  AWS:RDS   ││
◀───────────────────▶│     │ http ││ AWS:ECS ││◀───▶│   MySQL    ││
 https ┌─────┐ https │ ELB │◀────▶│└─────────┘│     └────────────┘│
◀─────▶│ CDN │◀─────▶│     │      │┌─────────┐│     ┌────────────┐│
       └─────┘       └──┬──┘      ││ AWS:ECS ││◀───▶│ElasticCache││
                        │         │└─────────┘│     │   Redis    ││
                        │         └───────────┘     └────────────┘│
                        └─────────────────────────────────────────┘