Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/michaelliao/itranswarp

Full-featured CMS including blog, wiki, discussion, etc. Cloud native application that powered by SpringBoot.
https://github.com/michaelliao/itranswarp

blog cms discussion java springboot3 wiki

Last synced: 6 days ago
JSON representation

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

Awesome Lists containing this project

README

        

# iTranswarp

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

[![Github Workflow](https://github.com/michaelliao/itranswarp/actions/workflows/maven.yml/badge.svg)](https://github.com/michaelliao/itranswarp/actions)

[![Docker Pulls](https://img.shields.io/docker/pulls/michaelliao/itranswarp?color=%2334D058&style=plastic)](https://hub.docker.com/repository/docker/michaelliao/itranswarp)

* 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](https://github.com/michaelliao/itranswarp/blob/master/quickstart/quickstart.md).

### 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](build.sh).

### Initialize database

DDL and test data are generated by [SchemaBuilder.java](src/main/java/com/itranswarp/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](http://localhost:2019) for demo.

### Search

Search is auto-enabled if RediSearch 2.x is detected. [How to install RediSearch in Redis](https://redis.io/docs/stack/search/quick_start/).

### 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](src/main/resources/application.yml) for environment variables.

### Deploy

iTranswarp is deployed by Docker. Images can be pulled from [DockerHub](https://hub.docker.com/repository/docker/michaelliao/itranswarp).

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