Merge pull request #1313 from merico-dev/chore-release-v0.9.0

chore(docs): release v0.9.0
diff --git a/releases/lake-v0.9.0/docker-compose.yml b/releases/lake-v0.9.0/docker-compose.yml
new file mode 100644
index 0000000..c35f868
--- /dev/null
+++ b/releases/lake-v0.9.0/docker-compose.yml
@@ -0,0 +1,60 @@
+version: "3"
+services:
+  mysql:
+    image: mysql:8.0.26
+    platform: linux/x86_64
+    volumes:
+      - mysql-storage:/var/lib/mysql
+    restart: always
+    ports:
+      - 127.0.0.1:3306:3306
+    environment:
+      MYSQL_ROOT_PASSWORD: admin
+      MYSQL_DATABASE: lake
+      MYSQL_USER: merico
+      MYSQL_PASSWORD: merico
+
+  grafana:
+    image: mericodev/grafana:v0.9.0
+    ports:
+      - 3002:3000
+    volumes:
+      - grafana-storage:/var/lib/grafana
+    environment:
+      GF_USERS_ALLOW_SIGN_UP: 'false'
+      GF_DASHBOARDS_JSON_ENABLED: 'true'
+      GF_INSTALL_PLUGINS: grafana-piechart-panel
+      GF_LIVE_ALLOWED_ORIGINS: '*'
+      MYSQL_URL: mysql:3306
+      MYSQL_DATABASE: lake
+      MYSQL_USER: merico
+      MYSQL_PASSWORD: merico
+    restart: always
+    depends_on:
+      - mysql
+
+  devlake:
+    image: mericodev/lake:v0.9.0
+    ports:
+      - 127.0.0.1:8080:8080
+    restart: always
+    volumes:
+      - ./.env:/app/.env
+    depends_on:
+      - mysql
+
+  config-ui:
+    image: mericodev/config-ui:v0.9.0
+    ports:
+      - 127.0.0.1:4000:80
+    env_file:
+      - ./.env
+    #environment:
+      #ADMIN_USER: devlake
+      #ADMIN_PASS: merico
+    depends_on:
+      - devlake
+
+volumes:
+  mysql-storage:
+  grafana-storage:
diff --git a/releases/lake-v0.9.0/env.example b/releases/lake-v0.9.0/env.example
new file mode 100644
index 0000000..578decc
--- /dev/null
+++ b/releases/lake-v0.9.0/env.example
@@ -0,0 +1,101 @@
+#############
+# Lake core #
+#############
+
+# Lake plugin dir, absolute path or relative path
+PLUGIN_DIR=bin/plugins
+
+# Lake Database Connection String
+DB_URL=merico:merico@tcp(mysql:3306)/lake?charset=utf8mb4&parseTime=True
+
+# Lake REST API
+PORT=:8080
+MODE=release
+
+NOTIFICATION_ENDPOINT=
+NOTIFICATION_SECRET=
+
+########################
+# Docker configuration #
+########################
+
+COMPOSE_PROFILES=user
+
+######################
+# Jira configuration #
+######################
+
+# Jira configuration has been migrated into MySQL #
+
+########################
+# Gitlab configuration #
+########################
+
+GITLAB_ENDPOINT=https://gitlab.com/api/v4/
+GITLAB_AUTH=
+
+##########################
+# Jira <> Gitlab mapping #
+##########################
+
+# Lake maintains a many-to-many relationship between Jira boards and Gitlab projects
+# Format:
+#   JIRA_BOARD_GITLAB_PROJECTS=JIRA_BOARD_ID1:GITLAB_PROJECT_ID1,PROJECT_ID2;JIRA_BOARD_ID2:...
+JIRA_BOARD_GITLAB_PROJECTS=
+
+#########################
+# Jenkins configuration #
+#########################
+
+JENKINS_ENDPOINT=
+JENKINS_USERNAME=
+JENKINS_PASSWORD=
+
+#########################
+# Feishu configuration #
+#########################
+
+FEISHU_APPID=
+FEISHU_APPSCRECT=
+
+########################
+# GitHub configuration #
+########################
+
+GITHUB_ENDPOINT=https://api.github.com/
+GITHUB_AUTH=***
+GITHUB_PROXY=
+# GITHUB_PR_TYPE=type/(.*)$ the program will extract the value in (), in this example, you will get "refactor" from "type/refactor"
+GITHUB_PR_TYPE='type/(.*)$'
+# GITHUB_PR_COMPONENT=component/(.*)$ the program will extract the value in (), in this example, you will get "plugins" from "component/plugins"
+GITHUB_PR_COMPONENT='component/(.*)$'
+# GITHUB_ISSUE_SEVERITY=severity/(.*)$ the program will extract the value in (), in this example, you will get "refactor" from "type/refactor"
+GITHUB_ISSUE_SEVERITY='severity/(.*)$'
+# GITHUB_ISSUE_COMPONENT=component/(.*)$ the program will extract the value in (), in this example, you will get "refactor" from "type/refactor"
+GITHUB_ISSUE_COMPONENT='component/(.*)$'
+GITHUB_ISSUE_PRIORITY='^(highest|high|medium|low)$'
+GITHUB_ISSUE_TYPE_BUG='^(bug|failure|error)$'
+GITHUB_ISSUE_TYPE_REQUIREMENT='^(feat|feature|proposal|requirement)$'
+GITHUB_ISSUE_TYPE_INCIDENT=
+# GITHUB_PR_BODY_CLOSE=(?mi)^.*(fix|close|resolve|fixes|closes|resolves|fixed|closed|resolved)[\s]* .*\d+
+GITHUB_PR_BODY_CLOSE_PATTERN=
+# GITHUB_PR_BODY_NUMBER_PREFIX="(#|https:\/\/github.com\/%s\/%s\/issues\/)"
+GITHUB_PR_BODY_NUMBER_PREFIX=
+
+##########################
+# ConfigUI configuration #
+##########################
+DEVLAKE_ENDPOINT=devlake:8080
+GRAFANA_ENDPOINT=http://localhost:3002
+
+##########################
+# AE (Merico-Analysis-Engine) configuration #
+##########################
+AE_APP_ID=
+AE_SECRET_KEY=
+AE_ENDPOINT=
+
+##########################
+# Sensitive information encryption key
+##########################
+ENCODE_KEY=
\ No newline at end of file