/itranswarp

Full-featured CMS including blog, wiki, discussion, etc. powered by SpringBoot.

Primary LanguageJavaApache License 2.0Apache-2.0

iTranswarp

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

Github Workflow

Docker Pulls

  • Based on SpringBoot 2.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

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 < release/ddl.sql

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

Import test data:

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

Run

java -jar itranswarp.jar

Search

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=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    ││
                        │         └───────────┘     └────────────┘│
                        └─────────────────────────────────────────┘