| r13 | ||
|---|---|---|
| r5 | 1 | [[분류:the tree]] |
| r1 (새 문서) | 2 | [목차] |
| 3 | ||
| 4 | == 개요 == | |
| 5 | 위키엔진 [[the tree]]의 설치법을 다룬 문서 | |
| r2 | 6 | |
| 7 | == 설치방법 == | |
| r3 | 8 | === apt update === |
| r4 | 9 | {{{#!syntax sh |
| 10 | sudo apt update && sudo apt upgrade -y | |
| 11 | }}} | |
| 12 | ||
| 13 | === nvm 설치 === | |
| 14 | {{{#!syntax sh | |
| 15 | curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash | |
| 16 | }}} | |
| 17 | {{{#!syntax sh | |
| 18 | wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash | |
| 19 | }}} | |
| 20 | ||
| 21 | === nvm 22 버전 설치 === | |
| 22 | {{{#!syntax sh | |
| 23 | nvm install 22 | |
| 24 | }}} | |
| 25 | === pm2 설치 === | |
| 26 | {{{#!syntax sh | |
| 27 | npm install pm2 -g | |
| 28 | }}} | |
| 29 | == MongoDB 설치 == | |
| 30 | === 공개키 가져오기 === | |
| 31 | {{{#!syntax sh | |
| 32 | curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \ | |
| 33 | sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \ | |
| 34 | --dearmor}}} | |
| 35 | ||
| 36 | === 목록 파일 만들기 === | |
| 37 | {{{#!syntax sh | |
| 38 | echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.2.list | |
| 39 | }}} | |
| 40 | ||
| 41 | === 패키지 업데이트 === | |
| 42 | {{{#!syntax sh | |
| 43 | sudo apt-get update | |
| 44 | }}} | |
| 45 | ||
| 46 | === 설치 === | |
| 47 | {{{#!syntax sh | |
| 48 | sudo apt-get install -y mongodb-org | |
| 49 | }}} | |
| 50 | ||
| 51 | === 실행확인 === | |
| 52 | {{{#!syntax sh | |
| 53 | sudo systemctl status mongod | |
| 54 | }}} | |
| 55 | ||
| 56 | 실행이 안되고 있다면 | |
| 57 | ||
| 58 | {{{#!syntax sh | |
| 59 | sudo systemctl start mongod | |
| 60 | }}} | |
| r5 | 61 | |
| r8 | 62 | == Meilisearch 설치 == |
| r5 | 63 | {{{#!syntax sh |
| 64 | curl -L https://install.meilisearch.com | sh | |
| 65 | }}} | |
| 66 | ||
| 67 | === 바이너리를 시스템 어디서나 실행할 수 있도록 이동 === | |
| 68 | {{{#!syntax sh | |
| 69 | sudo mv meilisearch /usr/local/bin/ | |
| 70 | }}} | |
| 71 | ||
| 72 | === meilisearch 전용 시스템 사용자 생성 === | |
| 73 | {{{#!syntax sh | |
| 74 | sudo useradd -d /var/lib/meilisearch -s /bin/false -m -r meilisearch | |
| 75 | }}} | |
| 76 | ||
| 77 | === 데이터 저장 폴더 생성 및 권한 설정 === | |
| 78 | {{{#!syntax sh | |
| 79 | sudo mkdir -p /var/lib/meilisearch/data /var/lib/meilisearch/dumps /var/lib/meilisearch/snapshots | |
| 80 | sudo chown -R meilisearch:meilisearch /var/lib/meilisearch | |
| 81 | sudo chmod 750 /var/lib/meilisearch | |
| 82 | }}} | |
| 83 | ||
| 84 | === 서비스 파일 생성 === | |
| 85 | {{{#!syntax sh | |
| 86 | sudo nano /etc/systemd/system/meilisearch.service | |
| 87 | }}} | |
| 88 | ||
| 89 | ==== 파일 내용 ==== | |
| 90 | {{{[Unit] | |
| 91 | Description=Meilisearch | |
| 92 | After=network.target | |
| 93 | ||
| 94 | [Service] | |
| 95 | Type=simple | |
| 96 | User=meilisearch | |
| 97 | Group=meilisearch | |
| 98 | WorkingDirectory=/var/lib/meilisearch | |
| 99 | ExecStart=/usr/local/bin/meilisearch \ | |
| 100 | --db-path /var/lib/meilisearch/data \ | |
| 101 | --dump-dir /var/lib/meilisearch/dumps \ | |
| 102 | --snapshot-dir /var/lib/meilisearch/snapshots \ | |
| 103 | --env production \ | |
| 104 | --master-key YOUR_SECURE_MASTER_KEY | |
| 105 | Restart=always | |
| 106 | RestartSec=10 | |
| 107 | ||
| 108 | [Install] | |
| 109 | WantedBy=multi-user.target | |
| 110 | }}} | |
| 111 | ||
| 112 | YOUR_SECURE_MASTER_KEY 부분은 잘 정하고 메모해두기 | |
| 113 | ||
| 114 | 아랫방법으로 저장후 나오기 | |
| 115 | 1. Ctrl + O | |
| 116 | 1. Enter | |
| 117 | 1. Ctrl + X | |
| 118 | ||
| 119 | === 설치 마무리 === | |
| 120 | {{{#!syntax sh | |
| 121 | # 시스템 설정 새로고침 | |
| 122 | sudo systemctl daemon-reload | |
| 123 | ||
| 124 | # 부팅 시 자동 시작 설정 | |
| 125 | sudo systemctl enable meilisearch | |
| 126 | ||
| 127 | # 서비스 시작 | |
| 128 | sudo systemctl start meilisearch | |
| 129 | }}} | |
| 130 | ||
| 131 | == 백엔드 설치 == | |
| 132 | {{{#!syntax sh | |
| 133 | # git clone | |
| 134 | git clone https://github.com/wjdgustn/thetree --recursive | |
| r6 | 135 | |
| r5 | 136 | # 폴더이동 |
| 137 | cd thetree | |
| r6 | 138 | |
| r5 | 139 | # 라이브러리 설치 |
| 140 | npm i | |
| 141 | }}} | |
| r9 | 142 | |
| 143 | == 프론트엔드 설치 == | |
| 144 | {{{#!syntax sh | |
| 145 | # 루트폴더에서 | |
| 146 | git clone https://github.com/wjdgustn/thetree-frontend | |
| 147 | ||
| 148 | # 폴더이동 | |
| 149 | cd thetree-frontend | |
| 150 | ||
| 151 | # 라이브러리 설치 | |
| 152 | npm i | |
| 153 | }}} | |
| 154 | ||
| 155 | == 스킨 빌드 == | |
| 156 | {{{#!syntax sh | |
| 157 | #thetree-frontend에서 작업 | |
| 158 | # 스킨폴더 만들기 | |
| 159 | mkdir skins | |
| 160 | ||
| 161 | #.env.local 파일 만들고 내용입력 예시는 liberty스킨 | |
| 162 | echo "SKIN_NAME=liberty" > .env.local | |
| r13 | 163 | |
| 164 | ||
| 165 | #liberty스킨 클론 | |
| 166 | gut clone https://github.com/wjdgustn/thetree-skin-liberty | |
| r9 | 167 | }}} |
| 168 | === 편집기 넣기 === | |
| 169 | {{{#!syntax sh | |
| 170 | #thetree-frontend에서 작업 | |
| 171 | mkdir -p plugins/editor | |
| 172 | ||
| 173 | #git clone | |
| 174 | git clone https://github.com/wjdgustn/thetree-monaco | |
| 175 | ||
| 176 | #폴더이동 | |
| 177 | cd thetree-monaco | |
| 178 | ||
| 179 | #라이브러리 설치 | |
| 180 | npm i | |
| 181 | }}} | |
| r11 | 182 | === 빌드하기 === |
| r9 | 183 | {{{#!syntax sh |
| 184 | npm run build | |
| 185 | }}} | |
| 186 | ||
| r11 | 187 | === 빌드완료후 === |
| r9 | 188 | |
| r10 | 189 | {{{#!syntax sh |
| 190 | cd .. | |
| 191 | mv thetree-frontend/dist skins/liberty | |
| r12 | 192 | }}} |