THIS IS A TEST INSTANCE ONLY! REPOSITORIES CAN BE DELETED AT ANY TIME!

Browse Source

docs: Modify documents to version up v1.3.0

pull/142/head
Suwon Chae 3 years ago
parent
commit
7be33859bb
26 changed files with 1889 additions and 508 deletions
  1. +78
    -506
      README.md
  2. +3
    -0
      conf/application.conf.default
  3. +316
    -0
      docs/application-conf-desc.md
  4. +39
    -0
      docs/db-error-767.md
  5. +110
    -0
      docs/install-mariadb.md
  6. +70
    -0
      docs/install-yona-server.md
  7. +316
    -0
      docs/ko/application-conf-desc.md
  8. +39
    -0
      docs/ko/db-error-767.md
  9. +110
    -0
      docs/ko/install-mariadb.md
  10. +70
    -0
      docs/ko/install-yona-server.md
  11. +33
    -0
      docs/ko/trouble-shootings.md
  12. +30
    -0
      docs/ko/yona-backup-restore.md
  13. +65
    -0
      docs/ko/yona-mail-settings.md
  14. +32
    -0
      docs/ko/yona-run-and-restart.md
  15. +100
    -0
      docs/ko/yona-run-options.md
  16. +59
    -0
      docs/ko/yona-run-under-v1.3.md
  17. +23
    -0
      docs/ko/yona-social-login-settings.md
  18. +27
    -0
      docs/ko/yona-upgrade.md
  19. +33
    -0
      docs/trouble-shootings.md
  20. +30
    -0
      docs/yona-backup-restore.md
  21. +65
    -0
      docs/yona-mail-settings.md
  22. +32
    -0
      docs/yona-run-and-restart.md
  23. +100
    -0
      docs/yona-run-options.md
  24. +59
    -0
      docs/yona-run-under-v1.3.md
  25. +23
    -0
      docs/yona-social-login-settings.md
  26. +27
    -0
      docs/yona-upgrade.md

+ 78
- 506
README.md View File

@ -1,7 +1,6 @@
<a name="korean"></a>
[[English]](#english)
<a name="korean"></a>[[English]](#english)
[![Build Status](https://travis-ci.org/yona-projects/yona.svg?branch=master)](https://travis-ci.org/yona-projects/yona)
Yona
====
@ -13,10 +12,10 @@ Official Site: [http://yona.io](http://yona.io)
Yona?
--
Yona는 팀이 개발을 진행하는데 그 속도를 높이고 효율을 증가시키기 위해 만들어졌습니다.
Yona는 팀이 업무와 개발을 진행하는데 그 속도와 효율을 증가시키기 위해 만들어졌습니다.
- 이슈 트래커: 기간이나 마일스톤과 함께 업무를 관리할 수 있는 이슈 트래커
- 특히 `내 이슈` 기능은 업무처리를 통합된 화면에서 보고, 해야 할 일 / 언급된 일 등에 집중해서 쉽고 편하게 관리할 수 있습니다.
- 특히 `내 이슈` 기능은 업무처리를 통합된 화면에서 보고, 해야 할 일 / 언급된 일 등에 집중해서 쉽고 편하게 관리할 수 있습니다.
- 게시판: 각종 문서나 파일을 쉽게 공유할 수 있는 게시판
- 코드 저장소: 코드 개발에 필요한 Git / SVN 저장소 기능
- 코드 주고받기(Pull request): 협업 개발을 위한 코드 주고받기(Pull request)
@ -26,558 +25,129 @@ Yona는 팀이 개발을 진행하는데 그 속도를 높이고 효율을 증
등을 비롯하여 일상적인 업무에서 개발 전반에 이르는 다양한 기능을 포함하고 있습니다.
왜 Yona를 써야 하나? (Why Yona?)
왜 Yona를 써야 하나? (Why Yona?)
---
[왜 Yona를 써야 하나? (Why Yona?)](https://repo.yona.io/yona-projects/yona/post/3)를 참고해 주세요
- [왜 Yona를 써야 하나요? (Why Yona?)](https://repo.yona.io/yona-projects/yona/post/3)
- [기본 워크플로우](https://repo.yona.io/yona-projects/yona-help/post/2)
라이선스
--
Yona는 Apache 2.0 라이선스로 제공됩니다.
**이어지는 설치 및 실행, 백업 등등에 대한 자세한 설명은 [Wiki](https://github.com/yona-projects/yona/wiki)에 따로 세분화되어 정리되어 있습니다.**
Yona 설치 방법
Yona 설치 및 실행
===
Yobi에서 Yona로 업그레이드 하려는 경우
Yona 배포판
---
1. 하단의 설치방법을 참고해서 Yona를 설치 합니다.
2. [Yobi 에서 Yona로 Migration 하는 방법](https://repo.yona.io/yona-projects/yona/post/1)을 참고해서 마이그레이션을 진행합니다.
현재 Yona는 버전별로 두 개의 배포판을 [릴리즈 메뉴](https://github.com/yona-projects/yona/releases)를 통해 제공하고 있습니다.
- MariaDB 버전
- 기본 권장 버전
- yona-v1.3.0-bin.zip 같은 형식으로 파일로 배포
- DB 설치에 노력이 들지만 안정적으로 운영이 가능
- H2 DB 내장형
- DB설정없이 내려받아서 바로 실행해서 쓸 수 있는 버전
- yona-h2-v1.3.0-bin.zip 같은 형식으로 파일로 배포
- USB 등에 담아서 이동해가면서 사용하거나 작업후 통채로 zip으로 묶어서 들고 다니는 것이 가능함
- 대규모 작업 등에는 적합하지 않음. 참고: [Yona가 MariaDB를 기본 DB로 사용하게 된 이유](https://repo.yona.io/yona-projects/yona/post/4)
Yona 설치
---
Yona는 기본적으로 다음 2단계로 설치됩니다.
- MariaDB설치
- Yona 설치
Yona는 앞으로 기본DB를 MariaDB를 사용할 예정입니다. 다만 Yona 1.0 기준으로 yona-h2.zip 을 따로 제공합니다.
[yona-1.0-h2.zip](https://github.com/yona-projects/yona/releases/tag/v1.0.0) MariaDB로 변경이 어렵거나 간편하게 설치해서 사용하실때는 이쪽을 이용해 주세요.
관련해서는 다음 링크를 참고해 주세요
- [Yona가 MariaDB를 기본 DB로 사용하게 된 이유](https://repo.yona.io/yona-projects/yona/post/4)
그리고 Docker 를 이용해 설치하실분은
- [pokev25](https://github.com/pokev25) 님의 https://github.com/pokev25/docker-yona 를 이용해주세요
#### MariaDB 설치
아래 설명은 진행 과정만 참고만 하시고 실제로는 MariaDB 10.1.10 이상을 설치해 주세요
1. Linux
- 배포본의 저장소 및 설치 스크립트는 다음 선택 페이지의 설명을 참고하여 설치 합니다.
- [Setting up MariaDB Repositories](https://downloads.mariadb.org/mariadb/repositories/)
2. Mac
- brew install 을 이용해서 설치를 권장합니다.
- https://mariadb.com/blog/installing-mariadb-10010-mac-os-x-homebrew
3. Windows
- https://downloads.mariadb.org/mariadb/10.1.11/#os_group=windows
##### DB 설치후 유저 및 Database 생성
기본 진행 내용은 MariaDB에 root 유저로 접속한 다음 yona 유저를 만들고 DB를 만들고 해당 DB의 모든 권한을 yona 유저에게 주는 작업입니다.
MariaDB root 유저로 접속
```
mysql -uroot
```
yona 유저 생성. password는 IDENTIFIED BY 다음에 지정한 문자가 됩니다. 아래 예)에서는 yonadan
```
create user 'yona'@'localhost' IDENTIFIED BY 'yonadan';
```
DB 생성 UTF8 확장문자열을 저장할 수 있는 포맷으로 지정해서 생성합니다.
```
set global innodb_file_format = BARRACUDA;
set global innodb_large_prefix = ON;
create database yona
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_bin
;
```
yona 유저에게 yona 데이터베이스 권한 부여
```
GRANT ALL ON yona.* to 'yona'@'localhost';
```
`exit`명령어로 쉘로 빠져 나온 다음 yona 유저로 정상 접속되고 yona DB가 사용 가능한지 확인해 봅니다.
참고로 -p 다음에 쓴 글자가 위에서 만든 패스워드입니다.
```
mysql -u yona -p"yonadan"
use yona
```
/etc/my.cnf 파일을 만들어서 아래 내용을 추가해 주세요.
(mac os 유저의 경우에는 db 실행유저의 ~/.my.cnf에 아래 내용을 추가해 주세요)
샘플참고: https://github.com/yona-projects/yona/blob/next/support-script/mariadb/my.cnf
```
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
collation-server=utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
lower_case_table_names=1
innodb_file_format=barracuda
innodb_large_prefix=on
```
꼭 /etc 아래가 아니더라도 [my.cnf 위치 탐색순서](https://mariadb.com/kb/en/mariadb/configuring-mariadb-with-mycnf/) 를 보고 적당한 곳에 my.cnf 파일을 만들어서 넣어도 무방하다고 알려져 있습니다. (Mac OS 유저는 우선은 위 설명대로 해주세요. 추가 확인이 필요합니다)
이제 Yona 를 설치합니다.
#### Yona 설치
Yona 최신 버전을 https://github.com/yona-projects/yona/releases 에서 다운받아 압축을 풉니다.
wget으로 받아서 unzip으로 압축을 푼다면 미리 다운로드 링크 주소를 확인한 다음 내려받습니다.
예)
wget https://github.com/yona-projects/yona/releases/download/v1.0.0/yona.zip
unzip yona.zip
### application.conf 파일등 생성하기
압축이 풀린 곳으로 이동해서 bin/yona 을 실행합니다. (Java 8 이상이 필요합니다)
**주의**: 아래와 같이 yona 설치 폴더에서 실행하여야 합니다. 또한 윈도우 사용자는 bin/yona 대신 bin/yona.bat을 실행해야 합니다.
```
cd yona
bin/yona
```
실행하면 패스워드가 틀렸다는 에러와 함께 실행이 종료 될겁니다. 이제 압축을 풀었을때는 안 보였던 conf 디렉터리가 보일 겁니다.
#### DB 설정 수정
앞서 설치한 MariaDB에 맞게 DB 연결 설정을 수정해야 합니다.
conf 폴더 아래의 application.conf 파일에서 아래 부분에서 password를 위에서 설정한 password로 수정해 주세요
```
...
db.default.driver=org.mariadb.jdbc.Driver
db.default.url="jdbc:mariadb://127.0.0.1:3306/yona?useServerPrepStmts=true"
db.default.user=yona
db.default.password="yonadan"
...
```
`yonadan`은 예시일뿐 그대로 사용하지 않는 걸 권장합니다.
#### 실행
압축이 풀린 디렉터리로 이동해서 다시 yona를 실행합니다.
cd yona
bin/yona
이제 웹 브라우저로 http://127.0.0.1:9000 에 접속하면 환영 페이지를 보실 수 있습니다.
어드민 설정을 마치고 다시 쉘을 시작합니다.
**유의! windows os 사용자의 경우**
[#windows의-경우](https://github.com/yona-projects/yona#windows의-경우)를 꼭 참고해주세요
- [MariaDB 설치](docs/ko/install-mariadb.md)
- [Yona 설치](docs/ko/install-yona-server.md)
만약 콘솔에 DB 관련 에러 특히
```
[error] play - Specified key was too long; max key length is 767 bytes [ERROR:1071, SQLSTATE:42000]
```
가 발생할 경우 문서 하단의 `MariaDB 767 byte 에러` 항목을 참고해 주세요
만약 [Docker](https://www.docker.com/)를 이용해 설치하실분은 [pokev25](https://github.com/pokev25) 님의 https://github.com/pokev25/docker-yona 를 이용해주세요
#### 업그레이드
설치할 때와 똑같이, 최신 버전을 내려받아 Yona가 설치된 디렉터리에 압축파일을
풉니다.
**주의사항! `repo``uploads` 디렉터리를 삭제하거나
덮어쓰지 않도록 주의하세요!**
Yona 실행 및 업그레이드/백업 및 복구/문제 해결
---
- [실행 및 재시작 방법](docs/ko/yona-run-and-restart.md)
- 안정적인 운영을 위한 [실행 옵션들](docs/ko/yona-run-options.md)
- [업그레이드](docs/ko/yona-upgrade.md)
- [백업 및 복구](docs/ko/yona-backup-restore.md)
- [알림메일 발송 기능 설정](docs/ko/yona-mail-settings.md)
- [발생 가능한 문제상황들과 해결방법](docs/ko/trouble-shootings.md)
### 소스코드를 직접 내려 받아서 빌드 실행하기
소스코드를 직접 내려 받아서 빌드 실행하기
---
자신의 입맛에 맛게 코드를 직접 수정해서 작업하거나 코드를 기여하고 싶을 경우에는 코드 저장소로부터 코드를 직접 내려받아서 빌드/실행하는 것도 가능합니다.
[소스코드를 직접 내려 받아서 실행하기](https://repo.yona.io/yona-projects/yona/post/5)를 참고해 주세요
### 옵션
[간단한 재시작 쉘 예제](https://github.com/yona-projects/yona/blob/next/restart.sh)
#### Linux, OSX의 경우
`YONA_HOME` 속성을 통해 Yona가 데이터, 데이터베이스, 설정파일을 불러오고 저장할
홈 디렉터리를 지정할 수 있습니다. 예를 들어, /home/user/.yona를 홈 디렉터리로
사용하려면 Yona를 시작할 때 다음과 같이 지정합니다.
YONA_HOME=/home/user/.yona bin/yona
`_JAVA_OPTIONS` 환경변수를 이용해 자바 환경 변수를 지정할 수도 있습니다. 시스템
메모리가 4기가 이상이라면, 다음과 같은 옵션으로 실행하는걸 권장합니다.
_JAVA_OPTIONS="-Xmx2048m -Xms2048m" bin/yona
기본적으로 9000번 포트를 사용하지만, 다른 포트를 사용하고 싶다면 http.port 자바
환경변수를 수정합니다.
_JAVA_OPTIONS="-Dhttp.port=80" bin/yona
#### Windows의 경우
Yona를 시작할 때, YONA_HOME 폴더의 위치를 지정해서 아래 명령순서로 실행해주세요!
아래 내용이 들어가 있는 run.bat을 따로 만드셔도 좋습니다!
```
SET YONA_HOME=c:\yona\yona-1.0.4
SET JAVA_OPTS=-Dyona.home=%YONA_HOME% -Dconfig.file=%YONA_HOME%\conf\application.conf -Dlogger.file=%YONA_HOME%\conf\application-logger.xml
bin\yona.bat
```
`_JAVA_OPTIONS` 환경변수를 이용해 자바 환경 변수를 지정할 수도 있습니다. 시스템
메모리가 4기가 이상이라면, 다음과 같은 옵션으로 실행하는 걸 권장합니다.
SET JAVA_OPTS=-Xmx2048m -Xms2048m
bin\yona.bat
기본적으로 9000번 포트를 사용하지만, 다른 포트를 사용하고 싶다면 http.port 자바
환경변수를 수정합니다.
_JAVA_OPTIONS=-Dhttp.port=80
bin\yona.bat
업그레이드를 하는 경우 다음과 같이 데이터베이스 스키마 마이그레이션이
필요하다는 경고 메시지와 함께 실행되지 않는 상황을 겪을 수 있습니다.
[warn] play - Your production database [default] needs evolutions!
그런 경우에는 자동으로 마이그레이션이 되도록 다음과 같이
applyEvolutions.default 자바 프로퍼티를 true로 설정합니다.
SET JAVA_OPTS=-DapplyEvolutions.default=true
bin\yona.bat
#### 옵션에 대한 더 자세한 설명
[http://www.playframework.com/documentation/2.3.6/Production](http://www.playframework.com/documentation/2.3.6/Production) 부분을 확인해 주세요.
### 백업하기
DB 백업은 https://mariadb.com/kb/en/mariadb/backup-and-restore-overview/ 를 참고해 주세요
코드 저장소의 파일과 업로드 파일은 아래 디렉터리에 저장됩니다.
directory: repo, uploads
주기적으로 두 디렉터리는 따로 잘 백업해 주세요.
### DB관련 작업을 한 후 정상적으로 페이지가 뜨지 않을 경우 아래 항목을 확인해 주세요.
- application.conf 가 제대로 읽히는지
- application.secret 적용여부
- db.default.url 확인
### MariaDB 재시작 방법
자주하진 마세요!
DB를 설치한 유저로 DB를 재시작합니다. (root나 sudo 설치했을 경우 명령어 앞에 sudo를 붙여주세요)
```
service mysql restart
혹은
/etc/init.d/mysql restart
혹은
mysql.server restart
```
참고: http://coolestguidesontheplanet.com/start-stop-mysql-from-the-command-line-terminal-osx-linux/
DB가 정상적으로 재시작되었으면
### MariaDB 767 byte 에러
```
[info] play - database [default] connected at jdbc:mysql://127.0.0.1:3306/yona
[error] play - Specified key was too long; max key length is 767 bytes [ERROR:1071, SQLSTATE:42000]
Oops, cannot start the server.
@6p6j2gap7: Database 'default' is in an inconsistent state!
```
이런 에러가 나오는 경우는 아래 두 가지 옵션이 정상적으로 반영되지 않아서 입니다.
```
innodb_file_format=barracuda
innodb_large_prefix=on
```
위 내용은 my.cnf 에 추가한다음 DB를 시작해 주세요.
재시작후 root 유저로 접속해서
```
MariaDB [(none)]> SHOW VARIABLES LIKE 'innodb_lar%';
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| innodb_large_prefix | ON |
+---------------------+-------+
MariaDB [(none)]> SHOW VARIABLES LIKE 'innodb_file%';
+--------------------------+-----------+
| Variable_name | Value |
+--------------------------+-----------+
| innodb_file_format | Barracuda |
| innodb_file_format_check | ON |
| innodb_file_format_max | Barracuda |
| innodb_file_per_table | ON |
+--------------------------+-----------+
```
처럼 on 되어 있고 file format도 barracuda로 되어 있는지 확인해 보세요.
기타 관련해서는 [이슈 #924](https://github.com/naver/yobi/issues/924)을 참고해 주세요
서버 관련 설정들
---
- [application.conf 설명](docs/ko/application-conf-desc.md)
- [소셜 로그인 설정](docs/ko/yona-social-login-settings.md)
<br/>
<br/>
<br/>
<a name="english"></a>
[[한국어]](#korean)
Yona
=======
Yona is a web-based project hosting software.
What is Yona?
--
Yona is a web-based project hosting software.
To increase productivity and quality of your software Yona offers many features including
Yona is designed to increase the speed and efficiency of your team's work and development.
- Issue tracker to manage bugs and issues
- Bulletin board to share documents
- Git/SVN support embedded
- Pull-request for collaborative coding
- Block based code review
License
Copyright 2015 NAVER Corp. under the Apache License, Version 2.0
How to install
### Install from binary
#### Install
Download the latest version of Yona from http://yona.io/yona.zip and unzip it.
If you have wget and unzip:
wget http://yona.io/yona.zip
unzip yona.zip
#### Start
Go the directory and start Yona. If the directory is yona-1.0.0:
cd yona-1.0.0
bin/yona
**Note**: If you are using Windows, run "bin/yona.bat" instead of "bin/yona".
Open http://127.0.0.1:9000 with your web browser then you can see the welcome
page.
#### Upgrade
Download the latest version of Yona and unzip it.
**Note: Don't overwrite or delete `yona.h2.db` file, `repo` & `uploads` directory!**
### Build from source
#### Check JDK version
java -version
javac -version
JDK version 7(1.7) or 8(1.8) is required.
#### Download Play Activator
curl -O http://downloads.typesafe.com/typesafe-activator/1.2.10/typesafe-activator-1.2.10-minimal.zip
or
wget http://downloads.typesafe.com/typesafe-activator/1.2.10/typesafe-activator-1.2.10-minimal.zip
or using web browser (for windows)
http://downloads.typesafe.com/typesafe-activator/1.2.10/typesafe-activator-1.2.10-minimal.zip
#### Unzip
unzip typesafe-activator-1.2.10-minimal.zip
#### Change directory to unzipped directory
cd activator-1.2.10-minimal
#### Download Yona
Case1. Using [git client](http://git-scm.com/) (recommended)
git clone https://github.com/yona-projects/yona.git
or
Case2. Just download the latest stable release
If you want to download one of the stable releases, you can download a compressed file by clicking the URL below. And then name it a yona and unzip it.
https://github.com/yona-projects/yona/archive/master.zip
**Caution! In case2, You might come across troubles when you try to upgrade Yona.**
> You can locate your own Yona directory in any other place. Please note that you must add Play Activator home path to $PATH environment in that case.
#### Change directory to cloned Yona directory (or cd to your unzipped file directory)
cd yona
#### Run Play Activator
../activator
or (for windows)
..\activator
Required files will be download automatically. In the first time, it may take about 10 min or more.
#### Type start command in console
start
It will download additional files and compile sources.
If you want to run Yona in development mode, use **run**. You can see more detailed errors and can use dynamic compilation.
#### Connect with browser
http://127.0.0.1:9000
If you want to change port, check your permission to use 80 port. See 'Options' section for more information.
#### Upgrade Yona
Case1. Using git client (recommended)
In installed directory, just type git update command.
git pull https://github.com/yona-projects/yona.git master
Case2. Download zip file
In installed directory, download the latest release file and unzip it.
https://github.com/yona-projects/yona/archive/master.zip
**Be careful! Don't overwrite or delete `yona.h2.db` file, `repo` & `uploads` directory!**
**If you are installing Yona in Windows system, you may need set `applyEvolutions.default` Java property to true. See 'Options' section for more information**
### Options
When start yona, You can specify the home directory to contain data for Yona.
If you want to use `/home/user/.yona` as the home directory, set 'yona.home'
property as follows:
bin/yona -Dyona.home=/home/user/.yona
Note: Yona doesn't load the configuration files from the home directory. If you
want to do that, specify the path to the config files as follows:
bin/yona -Dyona.home=/home/user/.yona -Dconfig.file=/home/user/.yona/conf/application.conf -Dlogger.file=/home/user/.yona/conf/application-logger.xml
You can also specify Java options with `_JAVA_OPTIONS` environment variable. If
the memory of your system equals to or greater than 4GB, we recommend to start
Yona as follows:
_JAVA_OPTIONS="-Xmx2048m -Xms2048m" activator "start -DapplyEvolutions.default=true -Dhttp.port=9000"
#### Linux and OSX
When start yona, you can specify the home directory to contain data, the
database file and configuration files for Yona. For example, if you want to
use `/home/user/.yona` as the home directory, set YONA_HOME as follows:
YONA_HOME=/home/user/.yona bin/yona
You can also specify Java options with `_JAVA_OPTIONS` environment variable. If
the memory of your system equals to or greater than 4GB, we recommend to start
Yona as follows:
_JAVA_OPTIONS="-Xmx2048m -Xms2048m" bin/yona
Yona use 9000 port for HTTP connection by default. If you want to use another
port, set http.port Java property.
_JAVA_OPTIONS="-Dhttp.port=80" bin/yona
#### Windows
When start yona, you can specify the data directory, the config file, the
config file for logger with yona.home, config.file and logger.file as follows:
SET JAVA_OPTS=-Dyona.home=/home/user/.yona -Dconfig.file=/home/user/.yona/conf/application.conf -Dlogger.file=/home/user/.yona/conf/application-logger.xml
bin\yona.bat
You can specify the database file in `application.conf` as follows:
db.default.url="jdbc:h2:file:/home/nori/.yona/yona"
You can also specify Java options with `_JAVA_OPTIONS` environment variable. If
the memory of your system equals to or greater than 4GB, we recommend to start
Yona as follows:
SET JAVA_OPTS=-Xmx2048m -Xms2048m
bin\yona.bat
Yona Distribution
---
Currently, Yona offers two distributions per version.
Yona use 9000 port for HTTP connection by default. If you want to use another
port, set http.port Java property.
- MariaDB version
   - Basic recommended version
   - Distributed as a file in the similar format as yona-v1.3.0-bin.zip
   - It takes a little effort to install DB, but it can be operated stably.
- Embedded H2 DB
   - A version that can be downloaded and run immediately. No need to setting a DB.
   - Distributed as a file in the similar format as yona-h2-v1.3.0-bin.zip
   - It can be used portable. For example, along with USB etc. And it can be carried around with zip as a whole of work.
   - Not suitable for large-scale work.
_JAVA_OPTIONS=-Dhttp.port=80
bin\yona.bat
If you are upgrading Yona from the previous version, the upgrade may fail with
a warning message that says you need migration as follows:
How to install
---
Basically, Yona installation is in two steps:
[warn] play - Your production database [default] needs evolutions!
- [MariaDB install](docs/install-mariadb.md)
- [Yona install](docs/install-yona-server.md)
In such case, set `applyEvolutions.default` Java property to true and restart
Yona.
SET JAVA_OPTS=-DapplyEvolutions.default=true
bin\yona.bat
If you want to use [Docker](https://www.docker.com/), See https://github.com/pokev25/docker-yona by [pokev25](https://github.com/pokev25)
#### For more information about options
See [http://www.playframework.com/documentation/2.3.6/Production](http://www.playframework.com/documentation/2.3.6/Production).
Yona Start/Upgrade/Backup/Trouble Shootings
---
- [Start and Restart](docs/yona-run-and-restart.md)
- [Start Options](docs/yona-run-options.md) for stable operation
- [Upgrade](docs/yona-upgrade.md)
- [Backup/Restore](docs/yona-backup-restore.md)
- [Mail settings for Notification](docs/yona-mail-settings.md)
- [Trouble Shootings](docs/trouble-shootings.md)
Server Settings
---
- [application.conf Settings](docs/application-conf-desc.md)
- [Social Login Settings](docs/yona-social-login-settings.md)
### Backup
Contribution
---
Welcome anytime!
Copy the below file and directories to another place.
file: yona.h2.db
directory: repo, uploads
License
--
Copyright Yona Authors and NAVER Corp. under the Apache License, Version 2.0

+ 3
- 0
conf/application.conf.default View File

@ -35,6 +35,9 @@ notification.bymail.enabled = true
# ~~~~~
# The secret key is used to secure cryptographics functions.
# If you deploy your application to several instances be sure to use the same key!
#
# If you want to reset admin account, set this value to default.
# Default: "VA2v:_I=h9>?FYOH:@ZhW]01P<mWZAKlQ>kk>Bo`mdCiA>pDw64FcBuZdDh<47Ew"
application.secret="VA2v:_I=h9>?FYOH:@ZhW]01P<mWZAKlQ>kk>Bo`mdCiA>pDw64FcBuZdDh<47Ew"
# The application languages

+ 316
- 0
docs/application-conf-desc.md View File

@ -0,0 +1,316 @@
application.conf 설명
===
conf 디렉터리의 application.conf 를 통해 설정 가능한 기능들
----
- 사이트 이름 설정
- application.siteName="Yona"
- 어플리케이션 루트 설정
- 로그인 하지 않은 유저 접근 제한 여부
- application.allowsAnonymousAccess=true
- 가입 후 관리자가 승인을 해야만 활동 가능하도록 제한하는 기능
- notification.bymail.enabled = true
- 알림메일 발송 여부
- notification.bymail.enabled = true
- 서버 고유 보안키 (어드민 계정 리셋시에 필요함)
- 언어 표시 우선순위
- DB 접속설정
- HTTP 헤더에 표시할 서버 이름
- HTTPS 설정
- EMAIL 설정
- 알리메일 발송 지연시간
- Yona 페이지에서 링크로 타 사이트로 이동했을때 referer 헤더에서 Yona를 숨기는 기능
- application.noreferrer = true
- 프로젝트 목록보기에서 private 프로젝트를 표시해 줄지 여부
- application.displayPrivateRepositories = false
- Github 으로 이전(Migration)기능 활성화 여부
- github.allow.migration = false
- 최대 단일 첨부파일 사이즈 조정(기본 2Gb)
- application.maxFileSize = 2147483454
- 오직 소셜로그인(Github/Gmail)을 통한 가입/로그인만으로 제한 (자체 계정 생성 및 로그인 금지)
- application.use.social.login.only = true
application.conf 기본 설정
-----
```
# This is the main configuration file for the application.
# ~~~~~
# Site Name
# ~~~~~~~~~
# The name of your website
application.siteName="Yona"
# Application Context
# ~~~~~~~~~~~~~~~~~~~
# If you want your own application context root, you can set it.
# Don't miss first / (slash) letter!
# application.context = /myroot
# Anonymous access
# ~~~~~~~~~~~~~~~~
# This site allows anonymous access. (default: true)
# If this is false, Yona refuses anonymous access to any page except for the
# ones to be needed for login, login and creating accout.
# NOTE: Even if this is false, anyone can create a account freely. If you don't
# want to allow that, set signup.require.confirm to true.
application.allowsAnonymousAccess=true
# If you wants to make the user available to use yona
# after the server administrator approved,uncomment below
# signup.require.admin.confirm = true
# Notification
# ~~~~~
# Notfication email is delivered by default.
# If you want to disable the delivery, set the 'notification.bymail.enabled' to 'false'.
notification.bymail.enabled = true
# Secret key
# ~~~~~
# The secret key is used to secure cryptographics functions.
# If you deploy your application to several instances be sure to use the same key!
#
# If you want to reset admin account, set this value to default.
# Default: "VA2v:_I=h9>?FYOH:@ZhW]01P<mWZAKlQ>kk>Bo`mdCiA>pDw64FcBuZdDh<47Ew"
application.secret="VA2v:_I=h9>?FYOH:@ZhW]01P<mWZAKlQ>kk>Bo`mdCiA>pDw64FcBuZdDh<47Ew"
# The application languages
# ~~~~~
application.langs="en-US, ko-KR, ja-JP"
# Global object class
# ~~~~~
# Define the Global object class for this application.
# Default to Global in the root package.
application.global=Global
# Database configuration
# ~~~~~
# You can declare as many datasources as you want.
# By convention, the default datasource is named `default`
#
ebeanconfig.datasource.default=default
# H2 Configuration
# db.default.driver=org.h2.Driver
# db.default.url="jdbc:h2:mem:yona;MODE=PostgreSQL;DB_CLOSE_DELAY=-1"
# db.default.url="jdbc:h2:file:./yona;MODE=PostgreSQL;MV_STORE=FALSE;MVCC=FALSE;CACHE_SIZE=131072;AUTO_SERVER=TRUE"
# db.default.user=sa
# db.default.password=sa
# db.default.logStatements=true
# db.default.partitionCount=20
# db.default.maxConnectionsPerPartition=10
# db.default.minConnectionsPerPartition=2
# db.default.acquireIncrement=4
# db.default.acquireRetryAttempts=3
# db.default.acquireRetryDelay=1 seconds
# db.default.connectionTimeout=3 second
# db.default.statementsCacheSize=1000
# MySQL Configuration
# db.default.driver=com.mysql.jdbc.Driver
# db.default.url="jdbc:mysql://127.0.0.1:3306/yona?characterEncoding=utf-8"
# db.default.user=yona
# db.default.password=""
# MariaDB
db.default.driver=org.mariadb.jdbc.Driver
db.default.url="jdbc:mariadb://127.0.0.1:3306/yona?useServerPrepStmts=true"
db.default.user=yona
db.default.password="password"
# Local
# db.default.url="jdbc:postgresql://localhost:5432/yona"
# db.default.user=postgres
# db.default.password=password
# You can expose this datasource via JNDI if needed (Useful for JPA)
# db.default.jndiName=DefaultDS
# Ebean configuration
# ~~~~~
# You can declare as many Ebean servers as you want.
# By convention, the default server is named `default`
#
ebean.default="models.*"
# Evolutions
# ~~~~~
# You can disable evolutions if needed
# evolutionplugin=disabled
applyEvolutions.default=true
# Logger
# ~~~~~
# You can also configure logback (http://logback.qos.ch/), by providing a logger.xml file in the conf directory .
# Server
# ~~~~~
# Server name used by servlet, as the value of "Server" field in HTTP response message.
application.server="Play/2.3"
# Components used to construct the URL to this application.
application.scheme="http"
# application.hostname="www.yourdomain.com"
# application.port="8080"
# Application feedback url at top layout menu. You can remove feedback menu by commenting it.
application.feedback.url="https://github.com/yona-projects/yona/issues"
# Mailer
# ~~~~~~
# You have to configure SMTP to send mails.
# Example settings, it assume that you use gamil smtp
smtp.host = smtp.gmail.com
smtp.port = 465
smtp.ssl = true
smtp.user = yourGmailId
# Be careful!!! Not to leak password
smtp.password = yourGmailPassword
smtp.domain = gmail.com
#true to use mock mailer for testing, false for using real mail server
smtp.mock = true
# optional, size of mail archive for tests, default: 5
smtp.archive.size = 5
# Mailbox Service
# ~~~~~~~~~~~~~~~
#
# Mailbox Service fetches and process mails from IMAP server. For example, if
# the service fetches an email to a project, it posts the email as an issue of
# the project.
#
# If you want to use this feature, your IMAP server has to be configured to
# support the address alias using '+' sign, also known as 'subaddressing' or
# 'detailed addressing'. For example, emails to 'yona+issue@yourmail.com' have
# to be delivered to 'yona@yourmail.com'.
#
# SECURITY WARNING: Yona believes the email address in From header of the
# received email is truthful and use it for authentication without doubt. To
# avoid this problem, your imap server must deny every email whose From header
# is forged.
#
# Here is an example if you use Gmail.
#
# Set imap.use to true if you want to use this feature.
imap.use = false
imap.host = imap.googlemail.com
imap.ssl = true
imap.user = "your-yona-email-address@gmail.com"
# The email address of Yona. Mailbox Service processes an email only if its
# address is as follows.
imap.address = "your-yona-email-address@gmail.com"
# Be careful!!!
imap.password = yourGmailPassword
imap.folder = inbox
# Production configuration
%prod.http.port=80
%prod.application.log=INFO
%prod.application.mode=prod
# User uploaded temporary files cleanup schedule (sec, default 24hour: 24*60*60 = 86400)
# application.temporaryfiles.keep-up.time = 86400
# Notification
# ~~~~~~~~~~~~
# Check mails to send every this seconds.
application.notification.bymail.interval = 60s
# Sending a notification mail delays this seconds.
application.notification.bymail.delay = 180s
# Split notification emails by the recipient limit.
# The value is number of maximum recipients per an email and inclusive.
# (default: 0, This means there is no limitation.)
application.notification.bymail.recipientLimit = 100
# Hide recipients of notification email by using bcc. (default: true)
application.notification.bymail.hideAddress = true
# A new event notification can be merged if possible with previous one which is
# not older than this seconds.
application.notification.draft-time = 30s
# Delete notifications which are older than this days.
# If this value is undefined or not positive number, notifications will remain forever.
# application.notification.keep-time = 60
# Software Update
# ~~~~~~~~~~~~~~~
# Check for updates of Yona at this interval if it is grater than 0.
application.update.notification.interval = 6h
# A url to the git repository for Yona releases.
application.update.check.use = true
application.update.repositoryUrl = "https://github.com/yona-projects/yona"
# A format to construct the url to latest Yona release. "%s" is a format
# specifier for Yona version to download like "0.5.7".
application.update.releaesUrlFormat = "https://github.com/yona-projects/yona/releases/tag/v%s"
# customize play default thread pool size
# see: https://www.playframework.com/documentation/2.3.x/ThreadPools
play {
akka {
event-handlers = ["akka.event.Logging$DefaultLogger", "akka.event.slf4j.Slf4jEventHandler"]
loglevel = WARNING
actor {
default-dispatcher = {
fork-join-executor {
parallelism-min = 50
parallelism-max = 300
}
}
}
}
}
# customize akka thread pool size
akka {
loggers = ["akka.event.Logging$DefaultLogger", "akka.event.slf4j.Slf4jLogger"]
loglevel = WARNING
actor {
default-dispatcher = {
fork-join-executor {
# Min number of threads to cap factor-based parallelism number to
parallelism-min = 8
# The parallelism factor is used to determine thread pool size using the
# following formula: ceil(available processors * factor). Resulting size
# is then bounded by the parallelism-min and parallelism-max values.
parallelism-factor = 3.0
# Max number of threads to cap factor-based parallelism number to
parallelism-max = 64
}
}
}
}
# No referrer information is to be leaked when following the link from yona pages. If you don't want, set it false
application.noreferrer = true
# Display private repositories in the list
application.displayPrivateRepositories = false
# Github Migration
# ~~~~~~~~~~~~~~~~~
# User can migrate their own projects to github
#
github.allow.migration = false
github.client.id = "TYPE YOUR GITHUB CILENT ID"
github.client.secret = "TYPE YOUR GITHUB CILENT SECRET"
# Attachment Upload File Size Limit
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 2,147,483,454 bytes = 2Gb
application.maxFileSize = 2147483454
# Social Login Support
# ~~~~~~~~~~~~~~~~~~~~
# Social login settings for Yona
# Detail settings are described at conf/play-authenticate/mine.conf
# Prevent using Yona's own login system
application.use.social.login.only = true
include "social-login.conf"
```

+ 39
- 0
docs/db-error-767.md View File

@ -0,0 +1,39 @@
### MariaDB 767 byte 에러
```
[info] play - database [default] connected at jdbc:mysql://127.0.0.1:3306/yona
[error] play - Specified key was too long; max key length is 767 bytes [ERROR:1071, SQLSTATE:42000]
Oops, cannot start the server.
@6p6j2gap7: Database 'default' is in an inconsistent state!
```
이런 에러가 나오는 경우는 아래 두 가지 옵션이 정상적으로 반영되지 않아서 입니다.
```
innodb_file_format=barracuda
innodb_large_prefix=on
```
위 내용은 my.cnf 에 추가한다음 DB를 시작해 주세요.
재시작후 root 유저로 접속해서
```
MariaDB [(none)]> SHOW VARIABLES LIKE 'innodb_lar%';
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| innodb_large_prefix | ON |
+---------------------+-------+
MariaDB [(none)]> SHOW VARIABLES LIKE 'innodb_file%';
+--------------------------+-----------+
| Variable_name | Value |
+--------------------------+-----------+
| innodb_file_format | Barracuda |
| innodb_file_format_check | ON |
| innodb_file_format_max | Barracuda |
| innodb_file_per_table | ON |
+--------------------------+-----------+
```
처럼 on 되어 있고 file format도 barracuda로 되어 있는지 확인해 보세요.
기타 관련해서는 [이슈 #924](https://github.com/naver/yobi/issues/924)을 참고해 주세요

+ 110
- 0
docs/install-mariadb.md View File

@ -0,0 +1,110 @@
MariaDB 설치
===
아래 설명은 진행 과정만 참고만 하시고 실제로는 MariaDB 10.1.10 이상을 설치해 주세요
1. Linux
- 배포본의 저장소 및 설치 스크립트는 다음 선택 페이지의 설명을 참고하여 설치 합니다.
- [Setting up MariaDB Repositories](https://downloads.mariadb.org/mariadb/repositories/)
2. Mac
- brew install 을 이용해서 설치를 권장합니다.
- https://mariadb.com/blog/installing-mariadb-10010-mac-os-x-homebrew
3. Windows
- https://downloads.mariadb.org/mariadb/10.1.11/#os_group=windows
##### DB 설치후 유저 및 Database 생성
기본 진행 내용은 MariaDB에 root 유저로 접속한 다음 yona 유저를 만들고 DB를 만들고 해당 DB의 모든 권한을 yona 유저에게 주는 작업입니다.
MariaDB root 유저로 접속
```
mysql -uroot
```
yona 유저 생성. password는 IDENTIFIED BY 다음에 지정한 문자가 됩니다. 아래 예)에서는 yonadan
```
create user 'yona'@'localhost' IDENTIFIED BY 'yonadan';
```
DB 생성 UTF8 확장문자열을 저장할 수 있는 포맷으로 지정해서 생성합니다.
```
set global innodb_file_format = BARRACUDA;
set global innodb_large_prefix = ON;
create database yona
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_bin
;
```
yona 유저에게 yona 데이터베이스 권한 부여
```
GRANT ALL ON yona.* to 'yona'@'localhost';
```
`exit`명령어로 쉘로 빠져 나온 다음 yona 유저로 정상 접속되고 yona DB가 사용 가능한지 확인해 봅니다.
참고로 -p 다음에 쓴 글자가 위에서 만든 패스워드입니다.
```
mysql -u yona -p'yonadan'
use yona
```
/etc/my.cnf 파일을 만들어서 아래 내용을 추가해 주세요.
(mac os 유저의 경우에는 db 실행유저의 ~/.my.cnf에 아래 내용을 추가해 주세요)
샘플참고: https://github.com/yona-projects/yona/blob/next/support-script/mariadb/my.cnf
- Unicode 4Byte 확장 문자열을 지원하기 위해 utf8mb4를 사용하도록 되어 있습니다.
- lower_case_table_name=1 는 테이블명이나 컬럼명 조회시 대소문자를 구분하지 않도록 만드는 옵션입니다.
- collation-server 는 정렬시의 기준옵션을 설정하는 부분입니다.
```
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
collation-server=utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
lower_case_table_names=1
innodb_file_format=barracuda
innodb_large_prefix=on
```
꼭 /etc 아래가 아니더라도 [my.cnf 위치 탐색순서](https://mariadb.com/kb/en/mariadb/configuring-mariadb-with-mycnf/) 를 보고 적당한 곳에 my.cnf 파일을 만들어서 넣어도 무방하다고 알려져 있습니다. (Mac OS 유저는 우선은 위 설명대로 해주세요. 추가 확인이 필요합니다)
이제 Yona 를 설치합니다.
-- 이하 내용은 참고용입니다 --
### 만약 DB관련 작업을 한 후 정상적으로 페이지가 뜨지 않을 경우 아래 항목을 확인해 주세요.
- application.conf 가 제대로 읽히는지
- application.secret 적용여부
- db.default.url 확인
### MariaDB 재시작 방법
자주하진 마세요!
DB를 설치한 유저로 DB를 재시작합니다. (root나 sudo 설치했을 경우 명령어 앞에 sudo를 붙여주세요)
```
service mysql restart
혹은
/etc/init.d/mysql restart
혹은
mysql.server restart
```
참고: http://coolestguidesontheplanet.com/start-stop-mysql-from-the-command-line-terminal-osx-linux/
DB가 정상적으로 재시작되었으면

+ 70
- 0
docs/install-yona-server.md View File

@ -0,0 +1,70 @@
Yona 설치
===
Yona 최신 버전을 https://github.com/yona-projects/yona/releases 에서 다운받아 압축을 풉니다.
wget으로 받아서 unzip으로 압축을 푼다면 미리 다운로드 링크 주소를 확인한 다음 내려받습니다.
예)
wget https://github.com/yona-projects/yona/releases/download/v1.3.0/yona-v1.3.0-bin.zip
unzip yona.zip
### application.conf 파일 등 설정파일 생성하기
압축이 풀린 곳으로 이동해서 bin/yona 을 실행합니다. (Java 8 이상이 필요합니다)
**주의**: 아래와 같이 yona 설치 폴더에서 실행하여야 합니다. 또한 윈도우 사용자는 bin/yona 대신 bin/yona.bat을 실행해야 합니다.
```
cd yona
bin/yona
```
실행하면 패스워드가 틀렸다는 에러와 함께 실행이 종료 될겁니다. 이제 압축을 풀었을때는 안 보였던 conf 디렉터리가 보일 겁니다.
#### DB 설정 수정
앞서 설치한 MariaDB에 맞게 DB 연결 설정을 수정해야 합니다.
conf 폴더 아래의 application.conf 파일에서 아래 부분에서 password를 위에서 설정한 password로 수정해 주세요
```
...
db.default.driver=org.mariadb.jdbc.Driver
db.default.url="jdbc:mariadb://127.0.0.1:3306/yona?useServerPrepStmts=true"
db.default.user=yona
db.default.password="yonadan"
...
```
`yonadan`은 예시일뿐 그대로 사용하지 않는 걸 권장합니다.
본격적인 첫 화면 보기 위한 실행
----
yona v1.3 이상부터는 data 폴더만 지정해주면 어느 위치에서 yona를 실행시켜도 무방하게 변경되었습니다. 이후에 버전 업그레이드시에도 특별히 데이터 폴더들을 옮기거나 할 필요가 없습니다.
- conf 폴더와 각종 데이터를 유지할 폴더를 하나 만듭니다.
```
예)
/yona-data
```
- conf 폴더를 위에서 만든 /yona-data로 복사합니다.
```
예) 현재 위치가 /Users/doortts/Download/yona-v1.3.0-bin 이라고 가정했을때
cp -r conf /yona-data
```
- YONA_DATA 환경변수를 지정하고 Yona 실행
```
예) 현재 위치가 /Users/doortts/Download/yona-v1.3.0-bin 이라고 가정했을때
YONA_DATA=/yona-data;export YONA_DATA
bin/yona
```
이어서 본격적인 실행 방법에 대해서는 [yona-run-and-upgrade.md](yona-run-and-upgrade.md)를 참고해주세요.
만약 사용버전이 v1.3 이전일 경우에는 [yona-run-under-v1.3](yona-run-under-v1.3.md) 를 참고해주세요.

+ 316
- 0
docs/ko/application-conf-desc.md View File

@ -0,0 +1,316 @@
application.conf 설명
===
conf 디렉터리의 application.conf 를 통해 설정 가능한 기능들
----
- 사이트 이름 설정
- application.siteName="Yona"
- 어플리케이션 루트 설정
- 로그인 하지 않은 유저 접근 제한 여부
- application.allowsAnonymousAccess=true
- 가입 후 관리자가 승인을 해야만 활동 가능하도록 제한하는 기능
- notification.bymail.enabled = true
- 알림메일 발송 여부
- notification.bymail.enabled = true
- 서버 고유 보안키 (어드민 계정 리셋시에 필요함)
- 언어 표시 우선순위
- DB 접속설정
- HTTP 헤더에 표시할 서버 이름
- HTTPS 설정
- EMAIL 설정
- 알리메일 발송 지연시간
- Yona 페이지에서 링크로 타 사이트로 이동했을때 referer 헤더에서 Yona를 숨기는 기능
- application.noreferrer = true
- 프로젝트 목록보기에서 private 프로젝트를 표시해 줄지 여부
- application.displayPrivateRepositories = false
- Github 으로 이전(Migration)기능 활성화 여부
- github.allow.migration = false
- 최대 단일 첨부파일 사이즈 조정(기본 2Gb)
- application.maxFileSize = 2147483454
- 오직 소셜로그인(Github/Gmail)을 통한 가입/로그인만으로 제한 (자체 계정 생성 및 로그인 금지)
- application.use.social.login.only = true
application.conf 기본 설정
-----
```
# This is the main configuration file for the application.
# ~~~~~
# Site Name
# ~~~~~~~~~
# The name of your website
application.siteName="Yona"
# Application Context
# ~~~~~~~~~~~~~~~~~~~
# If you want your own application context root, you can set it.
# Don't miss first / (slash) letter!
# application.context = /myroot
# Anonymous access
# ~~~~~~~~~~~~~~~~
# This site allows anonymous access. (default: true)
# If this is false, Yona refuses anonymous access to any page except for the
# ones to be needed for login, login and creating accout.
# NOTE: Even if this is false, anyone can create a account freely. If you don't
# want to allow that, set signup.require.confirm to true.
application.allowsAnonymousAccess=true
# If you wants to make the user available to use yona
# after the server administrator approved,uncomment below
# signup.require.admin.confirm = true
# Notification
# ~~~~~
# Notfication email is delivered by default.
# If you want to disable the delivery, set the 'notification.bymail.enabled' to 'false'.
notification.bymail.enabled = true
# Secret key
# ~~~~~
# The secret key is used to secure cryptographics functions.
# If you deploy your application to several instances be sure to use the same key!
#
# If you want to reset admin account, set this value to default.
# Default: "VA2v:_I=h9>?FYOH:@ZhW]01P<mWZAKlQ>kk>Bo`mdCiA>pDw64FcBuZdDh<47Ew"
application.secret="VA2v:_I=h9>?FYOH:@ZhW]01P<mWZAKlQ>kk>Bo`mdCiA>pDw64FcBuZdDh<47Ew"
# The application languages
# ~~~~~
application.langs="en-US, ko-KR, ja-JP"
# Global object class
# ~~~~~
# Define the Global object class for this application.
# Default to Global in the root package.
application.global=Global
# Database configuration
# ~~~~~
# You can declare as many datasources as you want.
# By convention, the default datasource is named `default`
#
ebeanconfig.datasource.default=default
# H2 Configuration
# db.default.driver=org.h2.Driver
# db.default.url="jdbc:h2:mem:yona;MODE=PostgreSQL;DB_CLOSE_DELAY=-1"
# db.default.url="jdbc:h2:file:./yona;MODE=PostgreSQL;MV_STORE=FALSE;MVCC=FALSE;CACHE_SIZE=131072;AUTO_SERVER=TRUE"
# db.default.user=sa
# db.default.password=sa
# db.default.logStatements=true
# db.default.partitionCount=20
# db.default.maxConnectionsPerPartition=10
# db.default.minConnectionsPerPartition=2
# db.default.acquireIncrement=4
# db.default.acquireRetryAttempts=3
# db.default.acquireRetryDelay=1 seconds
# db.default.connectionTimeout=3 second
# db.default.statementsCacheSize=1000
# MySQL Configuration
# db.default.driver=com.mysql.jdbc.Driver
# db.default.url="jdbc:mysql://127.0.0.1:3306/yona?characterEncoding=utf-8"
# db.default.user=yona
# db.default.password=""
# MariaDB
db.default.driver=org.mariadb.jdbc.Driver
db.default.url="jdbc:mariadb://127.0.0.1:3306/yona?useServerPrepStmts=true"
db.default.user=yona
db.default.password="password"
# Local
# db.default.url="jdbc:postgresql://localhost:5432/yona"
# db.default.user=postgres
# db.default.password=password
# You can expose this datasource via JNDI if needed (Useful for JPA)
# db.default.jndiName=DefaultDS
# Ebean configuration
# ~~~~~
# You can declare as many Ebean servers as you want.
# By convention, the default server is named `default`
#
ebean.default="models.*"
# Evolutions
# ~~~~~
# You can disable evolutions if needed
# evolutionplugin=disabled
applyEvolutions.default=true
# Logger
# ~~~~~
# You can also configure logback (http://logback.qos.ch/), by providing a logger.xml file in the conf directory .
# Server
# ~~~~~
# Server name used by servlet, as the value of "Server" field in HTTP response message.
application.server="Play/2.3"
# Components used to construct the URL to this application.
application.scheme="http"
# application.hostname="www.yourdomain.com"
# application.port="8080"
# Application feedback url at top layout menu. You can remove feedback menu by commenting it.
application.feedback.url="https://github.com/yona-projects/yona/issues"
# Mailer
# ~~~~~~
# You have to configure SMTP to send mails.
# Example settings, it assume that you use gamil smtp
smtp.host = smtp.gmail.com
smtp.port = 465
smtp.ssl = true
smtp.user = yourGmailId
# Be careful!!! Not to leak password
smtp.password = yourGmailPassword
smtp.domain = gmail.com
#true to use mock mailer for testing, false for using real mail server
smtp.mock = true
# optional, size of mail archive for tests, default: 5
smtp.archive.size = 5
# Mailbox Service
# ~~~~~~~~~~~~~~~
#
# Mailbox Service fetches and process mails from IMAP server. For example, if
# the service fetches an email to a project, it posts the email as an issue of
# the project.
#
# If you want to use this feature, your IMAP server has to be configured to
# support the address alias using '+' sign, also known as 'subaddressing' or
# 'detailed addressing'. For example, emails to 'yona+issue@yourmail.com' have
# to be delivered to 'yona@yourmail.com'.
#
# SECURITY WARNING: Yona believes the email address in From header of the
# received email is truthful and use it for authentication without doubt. To
# avoid this problem, your imap server must deny every email whose From header
# is forged.
#
# Here is an example if you use Gmail.
#
# Set imap.use to true if you want to use this feature.
imap.use = false
imap.host = imap.googlemail.com
imap.ssl = true
imap.user = "your-yona-email-address@gmail.com"
# The email address of Yona. Mailbox Service processes an email only if its
# address is as follows.
imap.address = "your-yona-email-address@gmail.com"
# Be careful!!!
imap.password = yourGmailPassword
imap.folder = inbox
# Production configuration
%prod.http.port=80
%prod.application.log=INFO
%prod.application.mode=prod
# User uploaded temporary files cleanup schedule (sec, default 24hour: 24*60*60 = 86400)
# application.temporaryfiles.keep-up.time = 86400
# Notification
# ~~~~~~~~~~~~
# Check mails to send every this seconds.
application.notification.bymail.interval = 60s
# Sending a notification mail delays this seconds.
application.notification.bymail.delay = 180s
# Split notification emails by the recipient limit.
# The value is number of maximum recipients per an email and inclusive.
# (default: 0, This means there is no limitation.)
application.notification.bymail.recipientLimit = 100
# Hide recipients of notification email by using bcc. (default: true)
application.notification.bymail.hideAddress = true
# A new event notification can be merged if possible with previous one which is
# not older than this seconds.
application.notification.draft-time = 30s
# Delete notifications which are older than this days.
# If this value is undefined or not positive number, notifications will remain forever.
# application.notification.keep-time = 60
# Software Update
# ~~~~~~~~~~~~~~~
# Check for updates of Yona at this interval if it is grater than 0.
application.update.notification.interval = 6h
# A url to the git repository for Yona releases.
application.update.check.use = true
application.update.repositoryUrl = "https://github.com/yona-projects/yona"
# A format to construct the url to latest Yona release. "%s" is a format
# specifier for Yona version to download like "0.5.7".
application.update.releaesUrlFormat = "https://github.com/yona-projects/yona/releases/tag/v%s"
# customize play default thread pool size
# see: https://www.playframework.com/documentation/2.3.x/ThreadPools
play {
akka {
event-handlers = ["akka.event.Logging$DefaultLogger", "akka.event.slf4j.Slf4jEventHandler"]
loglevel = WARNING
actor {
default-dispatcher = {
fork-join-executor {
parallelism-min = 50
parallelism-max = 300
}
}
}
}
}
# customize akka thread pool size
akka {
loggers = ["akka.event.Logging$DefaultLogger", "akka.event.slf4j.Slf4jLogger"]
loglevel = WARNING
actor {
default-dispatcher = {
fork-join-executor {
# Min number of threads to cap factor-based parallelism number to
parallelism-min = 8
# The parallelism factor is used to determine thread pool size using the
# following formula: ceil(available processors * factor). Resulting size
# is then bounded by the parallelism-min and parallelism-max values.
parallelism-factor = 3.0
# Max number of threads to cap factor-based parallelism number to
parallelism-max = 64
}
}
}
}
# No referrer information is to be leaked when following the link from yona pages. If you don't want, set it false
application.noreferrer = true
# Display private repositories in the list
application.displayPrivateRepositories = false
# Github Migration
# ~~~~~~~~~~~~~~~~~
# User can migrate their own projects to github
#
github.allow.migration = false
github.client.id = "TYPE YOUR GITHUB CILENT ID"
github.client.secret = "TYPE YOUR GITHUB CILENT SECRET"
# Attachment Upload File Size Limit
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 2,147,483,454 bytes = 2Gb
application.maxFileSize = 2147483454
# Social Login Support
# ~~~~~~~~~~~~~~~~~~~~
# Social login settings for Yona
# Detail settings are described at conf/play-authenticate/mine.conf
# Prevent using Yona's own login system
application.use.social.login.only = true
include "social-login.conf"
```

+ 39
- 0
docs/ko/db-error-767.md View File

@ -0,0 +1,39 @@
### MariaDB 767 byte 에러
```
[info] play - database [default] connected at jdbc:mysql://127.0.0.1:3306/yona
[error] play - Specified key was too long; max key length is 767 bytes [ERROR:1071, SQLSTATE:42000]
Oops, cannot start the server.
@6p6j2gap7: Database 'default' is in an inconsistent state!
```
이런 에러가 나오는 경우는 아래 두 가지 옵션이 정상적으로 반영되지 않아서 입니다.
```
innodb_file_format=barracuda
innodb_large_prefix=on
```
위 내용은 my.cnf 에 추가한다음 DB를 시작해 주세요.
재시작후 root 유저로 접속해서
```
MariaDB [(none)]> SHOW VARIABLES LIKE 'innodb_lar%';
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| innodb_large_prefix | ON |
+---------------------+-------+
MariaDB [(none)]> SHOW VARIABLES LIKE 'innodb_file%';
+--------------------------+-----------+
| Variable_name | Value |
+--------------------------+-----------+
| innodb_file_format | Barracuda |
| innodb_file_format_check | ON |
| innodb_file_format_max | Barracuda |
| innodb_file_per_table | ON |
+--------------------------+-----------+
```
처럼 on 되어 있고 file format도 barracuda로 되어 있는지 확인해 보세요.
기타 관련해서는 [이슈 #924](https://github.com/naver/yobi/issues/924)을 참고해 주세요

+ 110
- 0
docs/ko/install-mariadb.md View File

@ -0,0 +1,110 @@
MariaDB 설치
===
아래 설명은 진행 과정만 참고만 하시고 실제로는 MariaDB 10.1.10 이상을 설치해 주세요
1. Linux
- 배포본의 저장소 및 설치 스크립트는 다음 선택 페이지의 설명을 참고하여 설치 합니다.
- [Setting up MariaDB Repositories](https://downloads.mariadb.org/mariadb/repositories/)
2. Mac
- brew install 을 이용해서 설치를 권장합니다.
- https://mariadb.com/blog/installing-mariadb-10010-mac-os-x-homebrew
3. Windows
- https://downloads.mariadb.org/mariadb/10.1.11/#os_group=windows
##### DB 설치후 유저 및 Database 생성
기본 진행 내용은 MariaDB에 root 유저로 접속한 다음 yona 유저를 만들고 DB를 만들고 해당 DB의 모든 권한을 yona 유저에게 주는 작업입니다.
MariaDB root 유저로 접속
```
mysql -uroot
```
yona 유저 생성. password는 IDENTIFIED BY 다음에 지정한 문자가 됩니다. 아래 예)에서는 yonadan
```
create user 'yona'@'localhost' IDENTIFIED BY 'yonadan';
```
DB 생성 UTF8 확장문자열을 저장할 수 있는 포맷으로 지정해서 생성합니다.
```
set global innodb_file_format = BARRACUDA;
set global innodb_large_prefix = ON;
create database yona
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_bin
;
```
yona 유저에게 yona 데이터베이스 권한 부여
```
GRANT ALL ON yona.* to 'yona'@'localhost';
```
`exit`명령어로 쉘로 빠져 나온 다음 yona 유저로 정상 접속되고 yona DB가 사용 가능한지 확인해 봅니다.
참고로 -p 다음에 쓴 글자가 위에서 만든 패스워드입니다.
```
mysql -u yona -p'yonadan'
use yona
```
/etc/my.cnf 파일을 만들어서 아래 내용을 추가해 주세요.
(mac os 유저의 경우에는 db 실행유저의 ~/.my.cnf에 아래 내용을 추가해 주세요)
샘플참고: https://github.com/yona-projects/yona/blob/next/support-script/mariadb/my.cnf
- Unicode 4Byte 확장 문자열을 지원하기 위해 utf8mb4를 사용하도록 되어 있습니다.
- lower_case_table_name=1 는 테이블명이나 컬럼명 조회시 대소문자를 구분하지 않도록 만드는 옵션입니다.
- collation-server 는 정렬시의 기준옵션을 설정하는 부분입니다.
```
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
collation-server=utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
lower_case_table_names=1
innodb_file_format=barracuda
innodb_large_prefix=on
```
꼭 /etc 아래가 아니더라도 [my.cnf 위치 탐색순서](https://mariadb.com/kb/en/mariadb/configuring-mariadb-with-mycnf/) 를 보고 적당한 곳에 my.cnf 파일을 만들어서 넣어도 무방하다고 알려져 있습니다. (Mac OS 유저는 우선은 위 설명대로 해주세요. 추가 확인이 필요합니다)
이제 Yona 를 설치합니다.
-- 이하 내용은 참고용입니다 --
### 만약 DB관련 작업을 한 후 정상적으로 페이지가 뜨지 않을 경우 아래 항목을 확인해 주세요.
- application.conf 가 제대로 읽히는지
- application.secret 적용여부
- db.default.url 확인
### MariaDB 재시작 방법
자주하진 마세요!
DB를 설치한 유저로 DB를 재시작합니다. (root나 sudo 설치했을 경우 명령어 앞에 sudo를 붙여주세요)
```
service mysql restart
혹은
/etc/init.d/mysql restart
혹은
mysql.server restart
```
참고: http://coolestguidesontheplanet.com/start-stop-mysql-from-the-command-line-terminal-osx-linux/
DB가 정상적으로 재시작되었으면

+ 70
- 0
docs/ko/install-yona-server.md View File

@ -0,0 +1,70 @@
Yona 설치
===
Yona 최신 버전을 https://github.com/yona-projects/yona/releases 에서 다운받아 압축을 풉니다.
wget으로 받아서 unzip으로 압축을 푼다면 미리 다운로드 링크 주소를 확인한 다음 내려받습니다.
예)
wget https://github.com/yona-projects/yona/releases/download/v1.3.0/yona-v1.3.0-bin.zip
unzip yona.zip
### application.conf 파일 등 설정파일 생성하기
압축이 풀린 곳으로 이동해서 bin/yona 을 실행합니다. (Java 8 이상이 필요합니다)
**주의**: 아래와 같이 yona 설치 폴더에서 실행하여야 합니다. 또한 윈도우 사용자는 bin/yona 대신 bin/yona.bat을 실행해야 합니다.
```
cd yona
bin/yona
```
실행하면 패스워드가 틀렸다는 에러와 함께 실행이 종료 될겁니다. 이제 압축을 풀었을때는 안 보였던 conf 디렉터리가 보일 겁니다.
#### DB 설정 수정
앞서 설치한 MariaDB에 맞게 DB 연결 설정을 수정해야 합니다.
conf 폴더 아래의 application.conf 파일에서 아래 부분에서 password를 위에서 설정한 password로 수정해 주세요
```
...
db.default.driver=org.mariadb.jdbc.Driver
db.default.url="jdbc:mariadb://127.0.0.1:3306/yona?useServerPrepStmts=true"
db.default.user=yona
db.default.password="yonadan"
...
```
`yonadan`은 예시일뿐 그대로 사용하지 않는 걸 권장합니다.
본격적인 첫 화면 보기 위한 실행
----
yona v1.3 이상부터는 data 폴더만 지정해주면 어느 위치에서 yona를 실행시켜도 무방하게 변경되었습니다. 이후에 버전 업그레이드시에도 특별히 데이터 폴더들을 옮기거나 할 필요가 없습니다.
- conf 폴더와 각종 데이터를 유지할 폴더를 하나 만듭니다.
```
예)
/yona-data
```
- conf 폴더를 위에서 만든 /yona-data로 복사합니다.
```
예) 현재 위치가 /Users/doortts/Download/yona-v1.3.0-bin 이라고 가정했을때
cp -r conf /yona-data
```
- YONA_DATA 환경변수를 지정하고 Yona 실행
```
예) 현재 위치가 /Users/doortts/Download/yona-v1.3.0-bin 이라고 가정했을때
YONA_DATA=/yona-data;export YONA_DATA
bin/yona
```
이어서 본격적인 실행 방법에 대해서는 [yona-run-and-upgrade.md](yona-run-and-upgrade.md)를 참고해주세요.
만약 사용버전이 v1.3 이전일 경우에는 [yona-run-under-v1.3](yona-run-under-v1.3.md) 를 참고해주세요.

+ 33
- 0
docs/ko/trouble-shootings.md View File

@ -0,0 +1,33 @@
### 설치시 오류 [1]입력 줄이 너무 깁니다.
Windows OS에서는 명령줄 길이 한계로 너무 하위로 들어가지 않도록 \ 아래에 폴더를 만들어 주세요.
드라이브 아래에 바로 폴더를 만드는 걸 권장합니다.
```
Windows OS Yona 권장 폴더
C:\yona\yona-1.3.0 <- yona 폴더아래에 버전별로 압축해제
C:\yona-data <- conf 파일, logs, uploads, repo 폴더가 생성되고 유지되는 . YONA_DATA 환경 변수로 지정
```
만약 부득이하게 Program Files 등의 하위 폴더에 설치해야 한다면 아래 링크를 참고해주세요.
https://github.com/yona-projects/yona/issues/130
### MariaDB 767 byte 에러가 발생했다면?
만약 콘솔에 DB 관련 에러 특히
```
[error] play - Specified key was too long; max key length is 767 bytes [ERROR:1071, SQLSTATE:42000]
```
가 발생할 경우 [MariaDB 767 byte 에러](db-error-767.md) 항목을 참고해 주세요
### Yona 버전 업그레이드시 옵션 조절
업그레이드를 하는 경우 다음과 같이 데이터베이스 스키마 마이그레이션이
필요하다는 경고 메시지와 함께 실행되지 않는 상황을 겪을 수 있습니다.
[warn] play - Your production database [default] needs evolutions!
그런 경우에는 자동으로 마이그레이션이 되도록 다음과 같이
applyEvolutions.default 자바 프로퍼티를 true로 설정합니다.
SET JAVA_OPTS=-DapplyEvolutions.default=true
bin\yona

+ 30
- 0
docs/ko/yona-backup-restore.md View File

@ -0,0 +1,30 @@
백업하기
===
DB 백업 및 이전 복구 방법
---
[DB 백업 및 이전 복구 방법](https://github.com/yona-projects/yona/wiki/DB-%EB%B0%B1%EC%97%85-%EB%B0%8F-%EC%9D%B4%EC%A0%84-%EB%B3%B5%EA%B5%AC-%EB%B0%A9%EB%B2%95)
참고: https://mariadb.com/kb/en/mariadb/backup-and-restore-overview
각종 설정 및 파일들 백업
---
YONA_DATA 환경변수로 지정된 디렉터리를 통째로 압축해서 보관합니다.
참고: YONA_DATA에 생성된 디렉터리 설명
```
- conf - 서버 설정파일들이 있는 곳
- uploads - 업로드된 첨부파일들이 있는 곳
- repo - 코드 저장소 파일들
- logs - 로그 파일들
```
#### v1.3 이전
코드 저장소의 파일과 업로드 파일은 아래 디렉터리에 저장됩니다.
directory: repo, uploads
주기적으로 두 디렉터리는 따로 잘 백업해 주세요.

+ 65
- 0
docs/ko/yona-mail-settings.md View File

@ -0,0 +1,65 @@
각종 알림을 메일로 발송하도록 설정하는 방법
===
메일 발송 기능
----
- conf 디렉터리에 있는 application.conf 파일을 열어 Mailer 항목내용을 수정합니다.
- 주의할 부분!!
- `smtp.mock = true`로 되어 있는 부분을 false로 바꿔야 실제 메일이 발송됩니다.
```
# Mailer
# ~~~~~~
# You have to configure SMTP to send mails.
# Example settings, it assume that you use gamil smtp
smtp.host = smtp.gmail.com
smtp.port = 465
smtp.ssl = true
smtp.user = yourGmailId
# Be careful!!! Not to leak password
smtp.password = yourGmailPassword
smtp.domain = gmail.com
#true to use mock mailer for testing, false for using real mail server
smtp.mock = true
# optional, size of mail archive for tests, default: 5
smtp.archive.size = 5
```
메일로 Yona에 이슈나 댓글이 등록될 수 있게 설정하는 방법
---
- Yona는 MailBox 기능을 이용해서 알림메일에 직접 답장을 해서 댓글을 등록하거나 특정 프로젝트로 메일을 이용해 이슈를 등록하는 기능을 제공하고 있습니다.
- 이 기능을 사용하려면 메일박스 설정을 해야 합니다.
```
# Mailbox Service
# ~~~~~~~~~~~~~~~
#
# Mailbox Service fetches and process mails from IMAP server. For example, if
# the service fetches an email to a project, it posts the email as an issue of
# the project.
#
# If you want to use this feature, your IMAP server has to be configured to
# support the address alias using '+' sign, also known as 'subaddressing' or
# 'detailed addressing'. For example, emails to 'yona+issue@yourmail.com' have
# to be delivered to 'yona@yourmail.com'.
#
# SECURITY WARNING: Yona believes the email address in From header of the
# received email is truthful and use it for authentication without doubt. To
# avoid this problem, your imap server must deny every email whose From header
# is forged.
#
# Here is an example if you use Gmail.
#
# Set imap.use to true if you want to use this feature.
imap.use = false
imap.host = imap.googlemail.com
imap.ssl = true
imap.user = "your-yona-email-address@gmail.com"
# The email address of Yona. Mailbox Service processes an email only if its
# address is as follows.
imap.address = "your-yona-email-address@gmail.com"
# Be careful!!!
imap.password = yourGmailPassword
imap.folder = inbox
```

+ 32
- 0
docs/ko/yona-run-and-restart.md View File

@ -0,0 +1,32 @@
Yona 실행 방법
===
압축이 풀린 디렉터리로 이동해서 yona를 실행합니다.
```
YONA_DATA=/yona-data;export YONA_DATA
bin/yona
```
**[주의!] 이때 bin 폴더 아래로 이동해서 직접 `yona`를 실행하지 않도록 유의해주세요**
최초 화면 확인
----
이제 웹 브라우저로 해당 서버 9000 포트(로컬환경이면 http://127.0.0.1:9000)에 접속하면 환영 페이지를 보실 수 있습니다.
어드민 설정을 마치고 Yona를 다시 시작합니다.
**유의! Windows OS 사용자의 경우**
[#windows의-경우](yona-run-options.md#windows의-경우)를 꼭 참고해주세요
Tip - Windows에서 yona 백그라운드 처리
---
https://github.com/yona-projects/yona/issues/64
### 재시작 방법
- Linux/Uinx 계열에서는 kill pid 명령으로 서비스를 중단합니다.
- [간단한 재시작 쉘 예제](https://github.com/yona-projects/yona/blob/next/restart.sh)
- 윈도우즈 사용자는 ctrl-c 로 실행중인 배치파일을 종료합니다.

+ 100
- 0
docs/ko/yona-run-options.md View File

@ -0,0 +1,100 @@
Yona 실행시 추가 가능한 옵션
===
Linux, OSX의 경우
----
### 메모리 할당 증가
`_JAVA_OPTIONS` 환경변수를 이용해 자바 환경 변수를 지정할 수도 있습니다. 시스템
메모리가 4기가 이상이라면, 다음과 같은 옵션으로 사용가능한 메모리를 증가시켜서 실행하는걸 권장합니다.
_JAVA_OPTIONS="-Xmx2048m -Xms2048m" bin/yona
메모리 부족관련 에러가 발생할 경우 유용합니다.
```
예) yona-run.sh 로 만들어 본 실행 스크립트 작성 예
YONA_DATA=/yona-data;export YONA_DATA
_JAVA_OPTIONS="-Xmx4096m -Xms4096m" bin/yona
```
### 기본 포트 변경
기본적으로 9000번 포트를 사용하지만, 다른 포트를 사용하고 싶다면 http.port 자바
환경변수를 수정합니다.
```
예) yona-run.sh 로 만들어 본 실행 스크립트 작성 예. 80포트를 사용하고 메모리 2G로 동작
YONA_DATA=/yona-data;export YONA_DATA
_JAVA_OPTIONS="-Dhttp.port=80 -Xmx2048m -Xms2048m" bin/yona
```
Windows의 경우
---
Yona를 시작할 때, YONA_DATA 환경변수를 지정해서 아래 명령순서로 실행해주세요!
YONA_DATA의 지정 폴더는 내려받은 실행파일의 위치가 아니라 설정파일 및 첨부파일, 코드 저장소 등이 만들어질 위치를 지정합니다.
관련해서는 Yona 설치 가이드의 [install-yona-server.md#본격적인-첫-화면-보기-위한-실행](install-yona-server.md) 부분을 참고해주세요
```
Windows OS Yona 권장 폴더
C:\yona\yona-1.3.0 <- yona 폴더아래에 버전별로 압축해제
C:\yona-data <- conf 파일, logs, uploads, repo 폴더가 생성되고 유지되는 . YONA_DATA 환경 변수로 지정
```
아래와 같은 내용이 들어가 있는 run.bat을 따로 만드셔도 좋습니다!
```
SET YONA_DATA=c:\yona-data
bin\yona.bat
```
### 메모리 할당 증가
`_JAVA_OPTIONS` 환경변수를 이용해 자바 환경 변수를 지정할 수도 있습니다. 시스템
메모리가 4기가 이상이라면, 다음과 같은 옵션으로 실행하는 걸 권장합니다.
```
예) yona-run.bat 파일로 만들어 본 실행 스크립트 작성 예. 메모리 2G 할당
SET YONA_DATA=c:\yona-data
SET JAVA_OPTS=-Xmx2048m -Xms2048m
bin\yona.bat
```