---
title: "Deploy dataease"
description: "Open-source BI on Railway with DataEase + MySQL"
category: "Analytics"
url: https://railway.com/deploy/dataease
---

# Deploy dataease

Open-source BI on Railway with DataEase + MySQL

**[Deploy dataease on Railway](https://railway.com/template/dataease)**

- **Creator:** kmaki's Projects
- **Category:** Analytics
- **Total deploys:** 1

## Template content

### mysql

- **Image:** mysql:8.4.5

### dataease-app

- **Image:** xiaosong233/dataease-railway:latest
- **Start command:** `sh -c 'cat > /opt/apps/config/application.yml <<EOF
server:
  tomcat:
    connection-timeout: 70000
  servlet:
    context-path: ${DE_CONTEXT_PATH}
dataease:
  export:
    views:
      limit: ${DE_EXPORT_VIEWS_LIMIT}
    dataset:
      limit: ${DE_EXPORT_DATASET_LIMIT}
  origin-list: ${DE_ORIGIN_LIST}
  login_timeout: ${DE_LOGIN_TIMEOUT}
  dataease-servers: ${DE_SERVERS}
  playwright-server: ${DE_PLAYWRIGHT_SERVER}
task:
  executor:
    address: http://sync-task-actuator:9001
    log:
      path: /opt/dataease2.0/logs/sync-task/task-handler-log
EOF
cat > /opt/apps/config/application-standalone.yml <<EOF
spring:
  datasource:
    url: jdbc:mysql://${DE_MYSQL_HOST}:${DE_MYSQL_PORT}/${DE_MYSQL_DB}?${DE_MYSQL_PARAMS}
    username: ${DE_MYSQL_USER}
    password: ${DE_MYSQL_PASSWORD}
  messages:
    basename: i18n/lic,i18n/core,i18n/permissions,i18n/xpack,i18n/sync
  flyway:
    enabled: true
    table: de_standalone_version
    validate-on-migrate: false
    locations: classpath:db/migration
    baseline-on-migrate: true
    out-of-order: true
mybatis-plus:
  mapper-locations: classpath:mybatis/*.xml
EOF
exec /deployments/run-java.sh'`
- **Public domain:** Yes

## Documentation

# Deploy and Host DataEase on Railway

## About Hosting DataEase on Railway

Run DataEase with an image-based Railway setup using the upstream DataEase container plus MySQL, with one public web endpoint and private service networking.

## Tech Stack

* DataEase (Spring Boot + Vue frontend bundle)
* MySQL 8.4.5
* Railway managed runtime and networking

## Why Deploy DataEase on Railway

Railway provides fast image deployments, private DNS between services, and simple environment-variable configuration for one-click BI hosting.

## Common Use Cases

* Internal BI dashboards and executive reporting
* Operational analytics for product and growth teams
* Self-hosted alternative to managed BI platforms

## Deployment Notes

DataEase serves HTTP on container port `8100` and must include `PORT=8100`.
The image requires runtime config generation, so a startup command writes `application.yml` and `application-standalone.yml` before launching Java.
MySQL credentials are required and must stay consistent between app and DB service.
Default login is `admin / DataEase@123456` (also exposed as template vars for quick access).

## Dependencies for DataEase on Railway

DataEase depends on a MySQL service over Railway private networking.

### Deployment Dependencies

| Service      | Image                               | Port | Volume |
| ------------ | ----------------------------------- | ---- | ------ |
| dataease-app | xiaosong233/dataease-railway:latest | 8100 | -      |
| mysql        | mysql:8.4.5                         | 3306 | -      |


## Similar templates

- [Matomo Analytics + MariaDB](https://railway.com/deploy/matomo-analytics-mariadb) — Privacy-friendly analytics with MariaDB and persistent volumes.
- [Bugsink](https://railway.com/deploy/bugsink) — Self-hosted Error Tracking. Sentry-SDK compatible
- [SubTrackr](https://railway.com/deploy/bscottsubtrackr) — Self-hosted Subscription Tracker

Open this page in a browser: https://railway.com/deploy/dataease
