@intlayer/docs 9.5.6 → 9.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (601) hide show
  1. package/blog/ar/i18next_vs_intlayer-i18next.md +122 -15
  2. package/blog/ar/i18next_vs_intlayer.md +130 -16
  3. package/blog/ar/lingui_vs_intlayer.md +122 -15
  4. package/blog/ar/next-intl_vs_intlayer-next-intl.md +124 -15
  5. package/blog/ar/next-intl_vs_intlayer.md +136 -20
  6. package/blog/ar/vue-i18n_vs_intlayer-vue-i18n.md +119 -17
  7. package/blog/ar/vue-i18n_vs_intlayer.md +193 -31
  8. package/blog/ar/vue-i18n_vs_intlayer_benchmark.md +361 -0
  9. package/blog/de/i18next_vs_intlayer-i18next.md +122 -15
  10. package/blog/de/i18next_vs_intlayer.md +128 -14
  11. package/blog/de/lingui_vs_intlayer.md +122 -15
  12. package/blog/de/next-intl_vs_intlayer-next-intl.md +124 -15
  13. package/blog/de/next-intl_vs_intlayer.md +125 -15
  14. package/blog/de/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  15. package/blog/de/vue-i18n_vs_intlayer.md +193 -31
  16. package/blog/en/i18next_vs_intlayer-i18next.md +121 -14
  17. package/blog/en/i18next_vs_intlayer.md +128 -14
  18. package/blog/en/lingui_vs_intlayer.md +124 -15
  19. package/blog/en/next-intl_vs_intlayer-next-intl.md +123 -14
  20. package/blog/en/next-intl_vs_intlayer.md +125 -13
  21. package/blog/en/vue-i18n_vs_intlayer-vue-i18n.md +115 -15
  22. package/blog/en/vue-i18n_vs_intlayer.md +188 -27
  23. package/blog/en-GB/i18next_vs_intlayer-i18next.md +121 -14
  24. package/blog/en-GB/i18next_vs_intlayer.md +128 -14
  25. package/blog/en-GB/lingui_vs_intlayer.md +122 -15
  26. package/blog/en-GB/next-intl_vs_intlayer-next-intl.md +124 -15
  27. package/blog/en-GB/next-intl_vs_intlayer.md +125 -15
  28. package/blog/en-GB/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  29. package/blog/en-GB/vue-i18n_vs_intlayer.md +187 -25
  30. package/blog/en-GB/vue-i18n_vs_intlayer_benchmark.md +116 -0
  31. package/blog/es/i18next_vs_intlayer-i18next.md +122 -15
  32. package/blog/es/i18next_vs_intlayer.md +128 -14
  33. package/blog/es/lingui_vs_intlayer.md +122 -15
  34. package/blog/es/next-intl_vs_intlayer-next-intl.md +124 -15
  35. package/blog/es/next-intl_vs_intlayer.md +125 -15
  36. package/blog/es/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  37. package/blog/es/vue-i18n_vs_intlayer.md +193 -31
  38. package/blog/fr/i18next_vs_intlayer-i18next.md +122 -15
  39. package/blog/fr/i18next_vs_intlayer.md +128 -14
  40. package/blog/fr/lingui_vs_intlayer.md +122 -15
  41. package/blog/fr/next-intl_vs_intlayer-next-intl.md +124 -15
  42. package/blog/fr/next-intl_vs_intlayer.md +127 -15
  43. package/blog/fr/vue-i18n_vs_intlayer-vue-i18n.md +118 -17
  44. package/blog/fr/vue-i18n_vs_intlayer.md +192 -31
  45. package/blog/fr/vue-i18n_vs_intlayer_benchmark.md +329 -7
  46. package/blog/hi/i18next_vs_intlayer-i18next.md +122 -15
  47. package/blog/hi/i18next_vs_intlayer.md +130 -16
  48. package/blog/hi/lingui_vs_intlayer.md +122 -15
  49. package/blog/hi/next-intl_vs_intlayer-next-intl.md +124 -15
  50. package/blog/hi/next-intl_vs_intlayer.md +135 -19
  51. package/blog/hi/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  52. package/blog/hi/vue-i18n_vs_intlayer.md +193 -31
  53. package/blog/hi/vue-i18n_vs_intlayer_benchmark.md +361 -0
  54. package/blog/id/i18next_vs_intlayer-i18next.md +122 -15
  55. package/blog/id/i18next_vs_intlayer.md +128 -14
  56. package/blog/id/lingui_vs_intlayer.md +122 -15
  57. package/blog/id/next-intl_vs_intlayer-next-intl.md +124 -15
  58. package/blog/id/next-intl_vs_intlayer.md +135 -19
  59. package/blog/id/vue-i18n_vs_intlayer-vue-i18n.md +354 -2
  60. package/blog/id/vue-i18n_vs_intlayer.md +188 -26
  61. package/blog/id/vue-i18n_vs_intlayer_benchmark.md +327 -7
  62. package/blog/it/i18next_vs_intlayer-i18next.md +122 -15
  63. package/blog/it/i18next_vs_intlayer.md +128 -14
  64. package/blog/it/lingui_vs_intlayer.md +122 -15
  65. package/blog/it/next-intl_vs_intlayer-next-intl.md +124 -15
  66. package/blog/it/next-intl_vs_intlayer.md +125 -15
  67. package/blog/it/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  68. package/blog/it/vue-i18n_vs_intlayer.md +191 -31
  69. package/blog/it/vue-i18n_vs_intlayer_benchmark.md +332 -5
  70. package/blog/ja/i18next_vs_intlayer-i18next.md +122 -15
  71. package/blog/ja/i18next_vs_intlayer.md +129 -17
  72. package/blog/ja/lingui_vs_intlayer.md +122 -15
  73. package/blog/ja/next-intl_vs_intlayer-next-intl.md +124 -15
  74. package/blog/ja/next-intl_vs_intlayer.md +124 -14
  75. package/blog/ja/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  76. package/blog/ja/vue-i18n_vs_intlayer.md +193 -31
  77. package/blog/ja/vue-i18n_vs_intlayer_benchmark.md +361 -0
  78. package/blog/ko/i18next_vs_intlayer-i18next.md +122 -15
  79. package/blog/ko/i18next_vs_intlayer.md +129 -17
  80. package/blog/ko/lingui_vs_intlayer.md +122 -15
  81. package/blog/ko/next-intl_vs_intlayer-next-intl.md +124 -15
  82. package/blog/ko/next-intl_vs_intlayer.md +134 -18
  83. package/blog/ko/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  84. package/blog/ko/vue-i18n_vs_intlayer.md +193 -31
  85. package/blog/pl/i18next_vs_intlayer-i18next.md +122 -15
  86. package/blog/pl/i18next_vs_intlayer.md +128 -14
  87. package/blog/pl/lingui_vs_intlayer.md +122 -15
  88. package/blog/pl/next-intl_vs_intlayer-next-intl.md +124 -15
  89. package/blog/pl/next-intl_vs_intlayer.md +134 -18
  90. package/blog/pl/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  91. package/blog/pl/vue-i18n_vs_intlayer.md +188 -26
  92. package/blog/pl/vue-i18n_vs_intlayer_benchmark.md +361 -0
  93. package/blog/pt/i18next_vs_intlayer-i18next.md +122 -15
  94. package/blog/pt/i18next_vs_intlayer.md +128 -14
  95. package/blog/pt/lingui_vs_intlayer.md +122 -15
  96. package/blog/pt/next-intl_vs_intlayer-next-intl.md +124 -15
  97. package/blog/pt/next-intl_vs_intlayer.md +131 -15
  98. package/blog/pt/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  99. package/blog/pt/vue-i18n_vs_intlayer.md +193 -31
  100. package/blog/pt/vue-i18n_vs_intlayer_benchmark.md +361 -0
  101. package/blog/ru/i18next_vs_intlayer-i18next.md +122 -15
  102. package/blog/ru/i18next_vs_intlayer.md +130 -16
  103. package/blog/ru/lingui_vs_intlayer.md +122 -15
  104. package/blog/ru/next-intl_vs_intlayer-next-intl.md +125 -16
  105. package/blog/ru/next-intl_vs_intlayer.md +123 -13
  106. package/blog/ru/vue-i18n_vs_intlayer-vue-i18n.md +127 -27
  107. package/blog/ru/vue-i18n_vs_intlayer.md +193 -31
  108. package/blog/ru/vue-i18n_vs_intlayer_benchmark.md +326 -19
  109. package/blog/tr/i18next_vs_intlayer-i18next.md +122 -15
  110. package/blog/tr/i18next_vs_intlayer.md +128 -14
  111. package/blog/tr/lingui_vs_intlayer.md +122 -15
  112. package/blog/tr/next-intl_vs_intlayer-next-intl.md +124 -15
  113. package/blog/tr/next-intl_vs_intlayer.md +136 -20
  114. package/blog/tr/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  115. package/blog/tr/vue-i18n_vs_intlayer.md +188 -26
  116. package/blog/tr/vue-i18n_vs_intlayer_benchmark.md +361 -0
  117. package/blog/uk/i18next_vs_intlayer-i18next.md +122 -15
  118. package/blog/uk/i18next_vs_intlayer.md +130 -16
  119. package/blog/uk/lingui_vs_intlayer.md +122 -15
  120. package/blog/uk/next-intl_vs_intlayer-next-intl.md +124 -15
  121. package/blog/uk/next-intl_vs_intlayer.md +135 -19
  122. package/blog/uk/vue-i18n_vs_intlayer-vue-i18n.md +135 -17
  123. package/blog/uk/vue-i18n_vs_intlayer.md +188 -27
  124. package/blog/uk/vue-i18n_vs_intlayer_benchmark.md +361 -0
  125. package/blog/vi/i18next_vs_intlayer-i18next.md +122 -15
  126. package/blog/vi/i18next_vs_intlayer.md +128 -14
  127. package/blog/vi/lingui_vs_intlayer.md +122 -15
  128. package/blog/vi/next-intl_vs_intlayer-next-intl.md +124 -15
  129. package/blog/vi/next-intl_vs_intlayer.md +135 -19
  130. package/blog/vi/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  131. package/blog/vi/vue-i18n_vs_intlayer.md +188 -26
  132. package/blog/vi/vue-i18n_vs_intlayer_benchmark.md +361 -0
  133. package/blog/zh/i18next_vs_intlayer-i18next.md +122 -15
  134. package/blog/zh/i18next_vs_intlayer.md +128 -14
  135. package/blog/zh/lingui_vs_intlayer.md +122 -15
  136. package/blog/zh/next-intl_vs_intlayer-next-intl.md +124 -15
  137. package/blog/zh/next-intl_vs_intlayer.md +125 -15
  138. package/blog/zh/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  139. package/blog/zh/vue-i18n_vs_intlayer.md +192 -31
  140. package/blog/zh/vue-i18n_vs_intlayer_benchmark.md +340 -9
  141. package/dist/cjs/generated/docs.entry.cjs +40 -40
  142. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  143. package/dist/cjs/index.cjs +2 -2
  144. package/dist/esm/generated/docs.entry.mjs +40 -40
  145. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  146. package/dist/esm/index.mjs +2 -2
  147. package/dist/types/generated/docs.entry.d.ts +2 -2
  148. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  149. package/docs/ar/benchmark/nextjs.md +13 -13
  150. package/docs/ar/benchmark/solid.md +5 -5
  151. package/docs/ar/benchmark/svelte.md +4 -4
  152. package/docs/ar/benchmark/tanstack.md +14 -13
  153. package/docs/ar/benchmark/vue.md +5 -5
  154. package/docs/ar/chrome_extension.md +130 -0
  155. package/docs/ar/cli/index.md +6 -1
  156. package/docs/ar/cli/infra.md +162 -0
  157. package/docs/ar/cli/init.md +24 -1
  158. package/docs/ar/dictionary/html.md +173 -5
  159. package/docs/ar/dictionary/markdown.md +263 -1
  160. package/docs/ar/intlayer_with_analog.md +23 -1
  161. package/docs/ar/intlayer_with_angular_19.md +24 -1
  162. package/docs/ar/intlayer_with_angular_21.md +24 -1
  163. package/docs/ar/intlayer_with_astro.md +24 -1
  164. package/docs/ar/intlayer_with_astro_lit.md +25 -1
  165. package/docs/ar/intlayer_with_astro_preact.md +26 -1
  166. package/docs/ar/intlayer_with_astro_react.md +26 -1
  167. package/docs/ar/intlayer_with_astro_solid.md +26 -1
  168. package/docs/ar/intlayer_with_astro_svelte.md +25 -1
  169. package/docs/ar/intlayer_with_astro_vue.md +25 -1
  170. package/docs/ar/intlayer_with_remix_3.md +22 -1
  171. package/docs/ar/self_hosting.md +406 -231
  172. package/docs/de/benchmark/nextjs.md +13 -13
  173. package/docs/de/benchmark/solid.md +5 -5
  174. package/docs/de/benchmark/svelte.md +4 -4
  175. package/docs/de/benchmark/tanstack.md +14 -13
  176. package/docs/de/benchmark/vue.md +5 -5
  177. package/docs/de/chrome_extension.md +130 -0
  178. package/docs/de/cli/index.md +6 -1
  179. package/docs/de/cli/infra.md +162 -0
  180. package/docs/de/cli/init.md +24 -1
  181. package/docs/de/dictionary/html.md +173 -5
  182. package/docs/de/dictionary/markdown.md +263 -1
  183. package/docs/de/intlayer_with_analog.md +23 -1
  184. package/docs/de/intlayer_with_angular_19.md +24 -1
  185. package/docs/de/intlayer_with_angular_21.md +24 -1
  186. package/docs/de/intlayer_with_astro.md +24 -1
  187. package/docs/de/intlayer_with_astro_lit.md +25 -1
  188. package/docs/de/intlayer_with_astro_preact.md +26 -1
  189. package/docs/de/intlayer_with_astro_react.md +26 -1
  190. package/docs/de/intlayer_with_astro_solid.md +26 -1
  191. package/docs/de/intlayer_with_astro_svelte.md +25 -1
  192. package/docs/de/intlayer_with_astro_vue.md +25 -1
  193. package/docs/de/intlayer_with_remix_3.md +22 -1
  194. package/docs/de/self_hosting.md +404 -227
  195. package/docs/en/benchmark/nextjs.md +13 -13
  196. package/docs/en/benchmark/solid.md +5 -5
  197. package/docs/en/benchmark/svelte.md +4 -4
  198. package/docs/en/benchmark/tanstack.md +14 -13
  199. package/docs/en/benchmark/vue.md +5 -5
  200. package/docs/en/chrome_extension.md +130 -0
  201. package/docs/en/cli/index.md +6 -1
  202. package/docs/en/cli/infra.md +175 -0
  203. package/docs/en/cli/init.md +25 -1
  204. package/docs/en/dictionary/html.md +173 -5
  205. package/docs/en/dictionary/markdown.md +263 -1
  206. package/docs/en/intlayer_with_analog.md +23 -1
  207. package/docs/en/intlayer_with_angular_19.md +24 -1
  208. package/docs/en/intlayer_with_angular_21.md +24 -1
  209. package/docs/en/intlayer_with_astro.md +24 -1
  210. package/docs/en/intlayer_with_astro_lit.md +25 -1
  211. package/docs/en/intlayer_with_astro_preact.md +26 -1
  212. package/docs/en/intlayer_with_astro_react.md +26 -1
  213. package/docs/en/intlayer_with_astro_solid.md +26 -1
  214. package/docs/en/intlayer_with_astro_svelte.md +25 -1
  215. package/docs/en/intlayer_with_astro_vue.md +25 -1
  216. package/docs/en/intlayer_with_remix_3.md +22 -1
  217. package/docs/en/self_hosting.md +418 -176
  218. package/docs/en-GB/benchmark/nextjs.md +13 -13
  219. package/docs/en-GB/benchmark/solid.md +5 -5
  220. package/docs/en-GB/benchmark/svelte.md +4 -4
  221. package/docs/en-GB/benchmark/tanstack.md +14 -13
  222. package/docs/en-GB/benchmark/vue.md +5 -5
  223. package/docs/en-GB/chrome_extension.md +130 -0
  224. package/docs/en-GB/cli/index.md +6 -1
  225. package/docs/en-GB/cli/infra.md +162 -0
  226. package/docs/en-GB/cli/init.md +24 -1
  227. package/docs/en-GB/dictionary/html.md +173 -5
  228. package/docs/en-GB/dictionary/markdown.md +263 -1
  229. package/docs/en-GB/intlayer_with_analog.md +23 -1
  230. package/docs/en-GB/intlayer_with_angular_19.md +24 -1
  231. package/docs/en-GB/intlayer_with_angular_21.md +24 -1
  232. package/docs/en-GB/intlayer_with_astro.md +24 -1
  233. package/docs/en-GB/intlayer_with_astro_lit.md +25 -1
  234. package/docs/en-GB/intlayer_with_astro_preact.md +26 -1
  235. package/docs/en-GB/intlayer_with_astro_react.md +26 -1
  236. package/docs/en-GB/intlayer_with_astro_solid.md +26 -1
  237. package/docs/en-GB/intlayer_with_astro_svelte.md +25 -1
  238. package/docs/en-GB/intlayer_with_astro_vue.md +25 -1
  239. package/docs/en-GB/intlayer_with_remix_3.md +22 -1
  240. package/docs/en-GB/self_hosting.md +381 -206
  241. package/docs/es/benchmark/nextjs.md +13 -13
  242. package/docs/es/benchmark/solid.md +5 -5
  243. package/docs/es/benchmark/svelte.md +4 -4
  244. package/docs/es/benchmark/tanstack.md +14 -13
  245. package/docs/es/benchmark/vue.md +5 -5
  246. package/docs/es/chrome_extension.md +130 -0
  247. package/docs/es/cli/index.md +6 -1
  248. package/docs/es/cli/infra.md +162 -0
  249. package/docs/es/cli/init.md +24 -1
  250. package/docs/es/dictionary/html.md +173 -5
  251. package/docs/es/dictionary/markdown.md +263 -1
  252. package/docs/es/intlayer_with_analog.md +23 -1
  253. package/docs/es/intlayer_with_angular_19.md +24 -1
  254. package/docs/es/intlayer_with_angular_21.md +24 -1
  255. package/docs/es/intlayer_with_astro.md +24 -1
  256. package/docs/es/intlayer_with_astro_lit.md +25 -1
  257. package/docs/es/intlayer_with_astro_preact.md +26 -1
  258. package/docs/es/intlayer_with_astro_react.md +26 -1
  259. package/docs/es/intlayer_with_astro_solid.md +26 -1
  260. package/docs/es/intlayer_with_astro_svelte.md +25 -1
  261. package/docs/es/intlayer_with_astro_vue.md +25 -1
  262. package/docs/es/intlayer_with_remix_3.md +22 -1
  263. package/docs/es/self_hosting.md +400 -223
  264. package/docs/fr/benchmark/nextjs.md +13 -13
  265. package/docs/fr/benchmark/solid.md +5 -5
  266. package/docs/fr/benchmark/svelte.md +4 -4
  267. package/docs/fr/benchmark/tanstack.md +14 -13
  268. package/docs/fr/benchmark/vue.md +5 -5
  269. package/docs/fr/chrome_extension.md +130 -0
  270. package/docs/fr/cli/index.md +6 -1
  271. package/docs/fr/cli/infra.md +162 -0
  272. package/docs/fr/cli/init.md +24 -1
  273. package/docs/fr/dictionary/html.md +173 -5
  274. package/docs/fr/dictionary/markdown.md +265 -4
  275. package/docs/fr/intlayer_with_analog.md +23 -1
  276. package/docs/fr/intlayer_with_angular_19.md +24 -1
  277. package/docs/fr/intlayer_with_angular_21.md +24 -1
  278. package/docs/fr/intlayer_with_astro.md +24 -1
  279. package/docs/fr/intlayer_with_astro_lit.md +25 -1
  280. package/docs/fr/intlayer_with_astro_preact.md +26 -1
  281. package/docs/fr/intlayer_with_astro_react.md +26 -1
  282. package/docs/fr/intlayer_with_astro_solid.md +26 -1
  283. package/docs/fr/intlayer_with_astro_svelte.md +25 -1
  284. package/docs/fr/intlayer_with_astro_vue.md +25 -1
  285. package/docs/fr/intlayer_with_remix_3.md +22 -1
  286. package/docs/fr/self_hosting.md +401 -224
  287. package/docs/hi/benchmark/nextjs.md +13 -13
  288. package/docs/hi/benchmark/solid.md +5 -5
  289. package/docs/hi/benchmark/svelte.md +4 -4
  290. package/docs/hi/benchmark/tanstack.md +14 -13
  291. package/docs/hi/benchmark/vue.md +5 -5
  292. package/docs/hi/chrome_extension.md +130 -0
  293. package/docs/hi/cli/index.md +6 -1
  294. package/docs/hi/cli/infra.md +162 -0
  295. package/docs/hi/cli/init.md +24 -1
  296. package/docs/hi/dictionary/html.md +173 -5
  297. package/docs/hi/dictionary/markdown.md +263 -1
  298. package/docs/hi/intlayer_with_analog.md +23 -1
  299. package/docs/hi/intlayer_with_angular_19.md +24 -1
  300. package/docs/hi/intlayer_with_angular_21.md +24 -1
  301. package/docs/hi/intlayer_with_astro.md +24 -1
  302. package/docs/hi/intlayer_with_astro_lit.md +25 -1
  303. package/docs/hi/intlayer_with_astro_preact.md +26 -1
  304. package/docs/hi/intlayer_with_astro_react.md +26 -1
  305. package/docs/hi/intlayer_with_astro_solid.md +26 -1
  306. package/docs/hi/intlayer_with_astro_svelte.md +25 -1
  307. package/docs/hi/intlayer_with_astro_vue.md +25 -1
  308. package/docs/hi/intlayer_with_remix_3.md +22 -1
  309. package/docs/hi/self_hosting.md +409 -235
  310. package/docs/id/benchmark/nextjs.md +13 -13
  311. package/docs/id/benchmark/solid.md +5 -5
  312. package/docs/id/benchmark/svelte.md +4 -4
  313. package/docs/id/benchmark/tanstack.md +14 -13
  314. package/docs/id/benchmark/vue.md +5 -5
  315. package/docs/id/chrome_extension.md +130 -0
  316. package/docs/id/cli/index.md +6 -1
  317. package/docs/id/cli/infra.md +162 -0
  318. package/docs/id/cli/init.md +24 -1
  319. package/docs/id/dictionary/html.md +173 -5
  320. package/docs/id/dictionary/markdown.md +263 -1
  321. package/docs/id/intlayer_with_analog.md +23 -1
  322. package/docs/id/intlayer_with_angular_19.md +24 -1
  323. package/docs/id/intlayer_with_angular_21.md +24 -1
  324. package/docs/id/intlayer_with_astro.md +24 -1
  325. package/docs/id/intlayer_with_astro_lit.md +25 -1
  326. package/docs/id/intlayer_with_astro_preact.md +26 -1
  327. package/docs/id/intlayer_with_astro_react.md +26 -1
  328. package/docs/id/intlayer_with_astro_solid.md +26 -1
  329. package/docs/id/intlayer_with_astro_svelte.md +25 -1
  330. package/docs/id/intlayer_with_astro_vue.md +25 -1
  331. package/docs/id/intlayer_with_remix_3.md +22 -1
  332. package/docs/id/self_hosting.md +416 -243
  333. package/docs/it/benchmark/nextjs.md +13 -13
  334. package/docs/it/benchmark/solid.md +5 -5
  335. package/docs/it/benchmark/svelte.md +4 -4
  336. package/docs/it/benchmark/tanstack.md +14 -13
  337. package/docs/it/benchmark/vue.md +5 -5
  338. package/docs/it/chrome_extension.md +130 -0
  339. package/docs/it/cli/index.md +6 -1
  340. package/docs/it/cli/infra.md +162 -0
  341. package/docs/it/cli/init.md +24 -1
  342. package/docs/it/dictionary/html.md +173 -5
  343. package/docs/it/dictionary/markdown.md +263 -1
  344. package/docs/it/intlayer_with_analog.md +23 -1
  345. package/docs/it/intlayer_with_angular_19.md +24 -1
  346. package/docs/it/intlayer_with_angular_21.md +24 -1
  347. package/docs/it/intlayer_with_astro.md +24 -1
  348. package/docs/it/intlayer_with_astro_lit.md +25 -1
  349. package/docs/it/intlayer_with_astro_preact.md +26 -1
  350. package/docs/it/intlayer_with_astro_react.md +26 -1
  351. package/docs/it/intlayer_with_astro_solid.md +26 -1
  352. package/docs/it/intlayer_with_astro_svelte.md +25 -1
  353. package/docs/it/intlayer_with_astro_vue.md +25 -1
  354. package/docs/it/intlayer_with_remix_3.md +22 -1
  355. package/docs/it/self_hosting.md +412 -237
  356. package/docs/ja/benchmark/nextjs.md +13 -13
  357. package/docs/ja/benchmark/solid.md +5 -5
  358. package/docs/ja/benchmark/svelte.md +4 -4
  359. package/docs/ja/benchmark/tanstack.md +13 -12
  360. package/docs/ja/benchmark/vue.md +5 -5
  361. package/docs/ja/chrome_extension.md +130 -0
  362. package/docs/ja/cli/index.md +6 -1
  363. package/docs/ja/cli/infra.md +162 -0
  364. package/docs/ja/cli/init.md +24 -1
  365. package/docs/ja/dictionary/html.md +173 -5
  366. package/docs/ja/dictionary/markdown.md +263 -1
  367. package/docs/ja/intlayer_with_analog.md +23 -1
  368. package/docs/ja/intlayer_with_angular_19.md +24 -1
  369. package/docs/ja/intlayer_with_angular_21.md +24 -1
  370. package/docs/ja/intlayer_with_astro.md +24 -1
  371. package/docs/ja/intlayer_with_astro_lit.md +25 -1
  372. package/docs/ja/intlayer_with_astro_preact.md +26 -1
  373. package/docs/ja/intlayer_with_astro_react.md +26 -1
  374. package/docs/ja/intlayer_with_astro_solid.md +26 -1
  375. package/docs/ja/intlayer_with_astro_svelte.md +25 -1
  376. package/docs/ja/intlayer_with_astro_vue.md +25 -1
  377. package/docs/ja/intlayer_with_remix_3.md +22 -1
  378. package/docs/ja/self_hosting.md +398 -223
  379. package/docs/ko/benchmark/nextjs.md +13 -13
  380. package/docs/ko/benchmark/solid.md +5 -5
  381. package/docs/ko/benchmark/svelte.md +4 -4
  382. package/docs/ko/benchmark/tanstack.md +14 -13
  383. package/docs/ko/benchmark/vue.md +5 -5
  384. package/docs/ko/chrome_extension.md +130 -0
  385. package/docs/ko/cli/index.md +6 -1
  386. package/docs/ko/cli/infra.md +162 -0
  387. package/docs/ko/cli/init.md +24 -1
  388. package/docs/ko/dictionary/html.md +173 -5
  389. package/docs/ko/dictionary/markdown.md +263 -1
  390. package/docs/ko/intlayer_with_analog.md +23 -1
  391. package/docs/ko/intlayer_with_angular_19.md +24 -1
  392. package/docs/ko/intlayer_with_angular_21.md +24 -1
  393. package/docs/ko/intlayer_with_astro.md +24 -1
  394. package/docs/ko/intlayer_with_astro_lit.md +25 -1
  395. package/docs/ko/intlayer_with_astro_preact.md +26 -1
  396. package/docs/ko/intlayer_with_astro_react.md +26 -1
  397. package/docs/ko/intlayer_with_astro_solid.md +26 -1
  398. package/docs/ko/intlayer_with_astro_svelte.md +25 -1
  399. package/docs/ko/intlayer_with_astro_vue.md +25 -1
  400. package/docs/ko/intlayer_with_remix_3.md +22 -1
  401. package/docs/ko/self_hosting.md +411 -238
  402. package/docs/pl/benchmark/nextjs.md +13 -13
  403. package/docs/pl/benchmark/solid.md +5 -5
  404. package/docs/pl/benchmark/svelte.md +4 -4
  405. package/docs/pl/benchmark/tanstack.md +14 -13
  406. package/docs/pl/benchmark/vue.md +5 -5
  407. package/docs/pl/chrome_extension.md +130 -0
  408. package/docs/pl/cli/index.md +6 -1
  409. package/docs/pl/cli/infra.md +162 -0
  410. package/docs/pl/cli/init.md +24 -1
  411. package/docs/pl/dictionary/html.md +173 -5
  412. package/docs/pl/dictionary/markdown.md +263 -1
  413. package/docs/pl/intlayer_with_analog.md +23 -1
  414. package/docs/pl/intlayer_with_angular_19.md +24 -1
  415. package/docs/pl/intlayer_with_angular_21.md +24 -1
  416. package/docs/pl/intlayer_with_astro.md +24 -1
  417. package/docs/pl/intlayer_with_astro_lit.md +25 -1
  418. package/docs/pl/intlayer_with_astro_preact.md +26 -1
  419. package/docs/pl/intlayer_with_astro_react.md +26 -1
  420. package/docs/pl/intlayer_with_astro_solid.md +26 -1
  421. package/docs/pl/intlayer_with_astro_svelte.md +25 -1
  422. package/docs/pl/intlayer_with_astro_vue.md +25 -1
  423. package/docs/pl/intlayer_with_remix_3.md +22 -1
  424. package/docs/pl/self_hosting.md +408 -233
  425. package/docs/pt/benchmark/nextjs.md +13 -13
  426. package/docs/pt/benchmark/solid.md +5 -5
  427. package/docs/pt/benchmark/svelte.md +4 -4
  428. package/docs/pt/benchmark/tanstack.md +14 -13
  429. package/docs/pt/benchmark/vue.md +5 -5
  430. package/docs/pt/chrome_extension.md +130 -0
  431. package/docs/pt/cli/index.md +6 -1
  432. package/docs/pt/cli/infra.md +162 -0
  433. package/docs/pt/cli/init.md +24 -1
  434. package/docs/pt/dictionary/html.md +173 -5
  435. package/docs/pt/dictionary/markdown.md +263 -1
  436. package/docs/pt/intlayer_with_analog.md +23 -1
  437. package/docs/pt/intlayer_with_angular_19.md +24 -1
  438. package/docs/pt/intlayer_with_angular_21.md +24 -1
  439. package/docs/pt/intlayer_with_astro.md +24 -1
  440. package/docs/pt/intlayer_with_astro_lit.md +25 -1
  441. package/docs/pt/intlayer_with_astro_preact.md +26 -1
  442. package/docs/pt/intlayer_with_astro_react.md +26 -1
  443. package/docs/pt/intlayer_with_astro_solid.md +26 -1
  444. package/docs/pt/intlayer_with_astro_svelte.md +25 -1
  445. package/docs/pt/intlayer_with_astro_vue.md +25 -1
  446. package/docs/pt/intlayer_with_remix_3.md +22 -1
  447. package/docs/pt/self_hosting.md +399 -224
  448. package/docs/ru/benchmark/nextjs.md +13 -13
  449. package/docs/ru/benchmark/solid.md +5 -5
  450. package/docs/ru/benchmark/svelte.md +4 -4
  451. package/docs/ru/benchmark/tanstack.md +14 -13
  452. package/docs/ru/benchmark/vue.md +5 -5
  453. package/docs/ru/chrome_extension.md +130 -0
  454. package/docs/ru/cli/index.md +6 -1
  455. package/docs/ru/cli/infra.md +162 -0
  456. package/docs/ru/cli/init.md +24 -1
  457. package/docs/ru/dictionary/html.md +173 -5
  458. package/docs/ru/dictionary/markdown.md +263 -1
  459. package/docs/ru/intlayer_with_analog.md +23 -1
  460. package/docs/ru/intlayer_with_angular_19.md +24 -1
  461. package/docs/ru/intlayer_with_angular_21.md +24 -1
  462. package/docs/ru/intlayer_with_astro.md +24 -1
  463. package/docs/ru/intlayer_with_astro_lit.md +25 -1
  464. package/docs/ru/intlayer_with_astro_preact.md +26 -1
  465. package/docs/ru/intlayer_with_astro_react.md +26 -1
  466. package/docs/ru/intlayer_with_astro_solid.md +26 -1
  467. package/docs/ru/intlayer_with_astro_svelte.md +25 -1
  468. package/docs/ru/intlayer_with_astro_vue.md +25 -1
  469. package/docs/ru/intlayer_with_remix_3.md +22 -1
  470. package/docs/ru/self_hosting.md +403 -228
  471. package/docs/tr/benchmark/nextjs.md +13 -13
  472. package/docs/tr/benchmark/solid.md +5 -5
  473. package/docs/tr/benchmark/svelte.md +4 -4
  474. package/docs/tr/benchmark/tanstack.md +14 -13
  475. package/docs/tr/benchmark/vue.md +5 -5
  476. package/docs/tr/chrome_extension.md +130 -0
  477. package/docs/tr/cli/index.md +6 -1
  478. package/docs/tr/cli/infra.md +162 -0
  479. package/docs/tr/cli/init.md +24 -1
  480. package/docs/tr/dictionary/html.md +173 -5
  481. package/docs/tr/dictionary/markdown.md +263 -1
  482. package/docs/tr/intlayer_with_analog.md +23 -1
  483. package/docs/tr/intlayer_with_angular_19.md +24 -1
  484. package/docs/tr/intlayer_with_angular_21.md +24 -1
  485. package/docs/tr/intlayer_with_astro.md +24 -1
  486. package/docs/tr/intlayer_with_astro_lit.md +25 -1
  487. package/docs/tr/intlayer_with_astro_preact.md +26 -1
  488. package/docs/tr/intlayer_with_astro_react.md +26 -1
  489. package/docs/tr/intlayer_with_astro_solid.md +26 -1
  490. package/docs/tr/intlayer_with_astro_svelte.md +25 -1
  491. package/docs/tr/intlayer_with_astro_vue.md +25 -1
  492. package/docs/tr/intlayer_with_remix_3.md +22 -1
  493. package/docs/tr/self_hosting.md +410 -234
  494. package/docs/uk/benchmark/nextjs.md +13 -13
  495. package/docs/uk/benchmark/solid.md +5 -5
  496. package/docs/uk/benchmark/svelte.md +4 -4
  497. package/docs/uk/benchmark/tanstack.md +14 -13
  498. package/docs/uk/benchmark/vue.md +5 -5
  499. package/docs/uk/chrome_extension.md +130 -0
  500. package/docs/uk/cli/index.md +6 -1
  501. package/docs/uk/cli/infra.md +162 -0
  502. package/docs/uk/cli/init.md +24 -1
  503. package/docs/uk/dictionary/html.md +173 -5
  504. package/docs/uk/dictionary/markdown.md +263 -1
  505. package/docs/uk/intlayer_with_analog.md +23 -1
  506. package/docs/uk/intlayer_with_angular_19.md +24 -1
  507. package/docs/uk/intlayer_with_angular_21.md +24 -1
  508. package/docs/uk/intlayer_with_astro.md +24 -1
  509. package/docs/uk/intlayer_with_astro_lit.md +25 -1
  510. package/docs/uk/intlayer_with_astro_preact.md +26 -1
  511. package/docs/uk/intlayer_with_astro_react.md +26 -1
  512. package/docs/uk/intlayer_with_astro_solid.md +26 -1
  513. package/docs/uk/intlayer_with_astro_svelte.md +25 -1
  514. package/docs/uk/intlayer_with_astro_vue.md +25 -1
  515. package/docs/uk/intlayer_with_remix_3.md +22 -1
  516. package/docs/uk/self_hosting.md +413 -238
  517. package/docs/vi/benchmark/nextjs.md +13 -13
  518. package/docs/vi/benchmark/solid.md +5 -5
  519. package/docs/vi/benchmark/svelte.md +4 -4
  520. package/docs/vi/benchmark/tanstack.md +14 -13
  521. package/docs/vi/benchmark/vue.md +5 -5
  522. package/docs/vi/chrome_extension.md +130 -0
  523. package/docs/vi/cli/index.md +6 -1
  524. package/docs/vi/cli/infra.md +162 -0
  525. package/docs/vi/cli/init.md +24 -1
  526. package/docs/vi/dictionary/html.md +173 -5
  527. package/docs/vi/dictionary/markdown.md +263 -1
  528. package/docs/vi/intlayer_with_analog.md +23 -1
  529. package/docs/vi/intlayer_with_angular_19.md +24 -1
  530. package/docs/vi/intlayer_with_angular_21.md +24 -1
  531. package/docs/vi/intlayer_with_astro.md +24 -1
  532. package/docs/vi/intlayer_with_astro_lit.md +25 -1
  533. package/docs/vi/intlayer_with_astro_preact.md +26 -1
  534. package/docs/vi/intlayer_with_astro_react.md +26 -1
  535. package/docs/vi/intlayer_with_astro_solid.md +26 -1
  536. package/docs/vi/intlayer_with_astro_svelte.md +25 -1
  537. package/docs/vi/intlayer_with_astro_vue.md +25 -1
  538. package/docs/vi/intlayer_with_remix_3.md +22 -1
  539. package/docs/vi/self_hosting.md +408 -234
  540. package/docs/zh/benchmark/nextjs.md +13 -13
  541. package/docs/zh/benchmark/solid.md +5 -5
  542. package/docs/zh/benchmark/svelte.md +4 -4
  543. package/docs/zh/benchmark/tanstack.md +14 -13
  544. package/docs/zh/benchmark/vue.md +5 -5
  545. package/docs/zh/chrome_extension.md +130 -0
  546. package/docs/zh/cli/index.md +6 -1
  547. package/docs/zh/cli/infra.md +162 -0
  548. package/docs/zh/cli/init.md +24 -1
  549. package/docs/zh/dictionary/html.md +172 -5
  550. package/docs/zh/dictionary/markdown.md +262 -1
  551. package/docs/zh/intlayer_with_analog.md +23 -1
  552. package/docs/zh/intlayer_with_angular_19.md +24 -1
  553. package/docs/zh/intlayer_with_angular_21.md +24 -1
  554. package/docs/zh/intlayer_with_astro.md +24 -1
  555. package/docs/zh/intlayer_with_astro_lit.md +25 -1
  556. package/docs/zh/intlayer_with_astro_preact.md +26 -1
  557. package/docs/zh/intlayer_with_astro_react.md +26 -1
  558. package/docs/zh/intlayer_with_astro_solid.md +26 -1
  559. package/docs/zh/intlayer_with_astro_svelte.md +25 -1
  560. package/docs/zh/intlayer_with_astro_vue.md +25 -1
  561. package/docs/zh/intlayer_with_remix_3.md +22 -1
  562. package/docs/zh/self_hosting.md +410 -237
  563. package/legal/ar/privacy_notice.md +9 -3
  564. package/legal/de/privacy_notice.md +9 -3
  565. package/legal/en/privacy_notice.md +10 -3
  566. package/legal/en-GB/privacy_notice.md +9 -3
  567. package/legal/es/privacy_notice.md +9 -3
  568. package/legal/fr/privacy_notice.md +9 -3
  569. package/legal/hi/privacy_notice.md +9 -3
  570. package/legal/id/privacy_notice.md +9 -3
  571. package/legal/it/privacy_notice.md +9 -3
  572. package/legal/ja/privacy_notice.md +9 -3
  573. package/legal/ko/privacy_notice.md +9 -3
  574. package/legal/pl/privacy_notice.md +9 -3
  575. package/legal/pt/privacy_notice.md +9 -3
  576. package/legal/ru/privacy_notice.md +9 -3
  577. package/legal/tr/privacy_notice.md +9 -3
  578. package/legal/uk/privacy_notice.md +9 -3
  579. package/legal/vi/privacy_notice.md +9 -3
  580. package/legal/zh/privacy_notice.md +9 -3
  581. package/package.json +1 -1
  582. package/src/generated/docs.entry.ts +40 -40
  583. package/docs/ar/roadmap.md +0 -321
  584. package/docs/de/roadmap.md +0 -322
  585. package/docs/en/intlayer_with_astro_vanilla.md +0 -713
  586. package/docs/en/roadmap.md +0 -325
  587. package/docs/en-GB/roadmap.md +0 -322
  588. package/docs/es/roadmap.md +0 -322
  589. package/docs/fr/roadmap.md +0 -322
  590. package/docs/hi/roadmap.md +0 -322
  591. package/docs/id/roadmap.md +0 -325
  592. package/docs/it/roadmap.md +0 -322
  593. package/docs/ja/roadmap.md +0 -322
  594. package/docs/ko/roadmap.md +0 -322
  595. package/docs/pl/roadmap.md +0 -325
  596. package/docs/pt/roadmap.md +0 -322
  597. package/docs/ru/roadmap.md +0 -322
  598. package/docs/tr/roadmap.md +0 -325
  599. package/docs/uk/roadmap.md +0 -325
  600. package/docs/vi/roadmap.md +0 -325
  601. package/docs/zh/roadmap.md +0 -322
@@ -1,12 +1,14 @@
1
1
  ---
2
2
  createdAt: 2026-06-30
3
- updatedAt: 2026-06-30
4
- title: Intlayer'ı Kendi Sunucunuzda Barındırma
5
- description: Tek bir komutla kendi altyapınızda eksiksiz bir Intlayer örneğini çalıştırın. Intlayer Cloud hesabı gerekmez.
3
+ updatedAt: 2026-09-21
4
+ title: Intlayer Kendi Kendine Barındırma (Self-Hosting)
5
+ description: "Intlayer'ı kendi altyapınızda çalıştırın: masaüstü uygulaması, tek hepsi-bir-arada Docker kapsayıcısı veya ölçeklenebilir bir Docker Compose yığını. Intlayer Cloud hesabı gerekmez."
6
6
  keywords:
7
- - Kendi Sunucusunda Barındırma
7
+ - Self-Hosting
8
+ - Kendi Kendine Barındırma
8
9
  - Docker
9
10
  - Docker Compose
11
+ - Masaüstü Uygulaması
10
12
  - Intlayer
11
13
  - CMS
12
14
  - Kurulum
@@ -17,216 +19,457 @@ slugs:
17
19
  author: aymericzip
18
20
  ---
19
21
 
20
- # Intlayer'ı Kendi Sunucunuzda Barındırma
22
+ # Intlayer Kendi Kendine Barındırma (Self-Hosting)
21
23
 
22
- Intlayer, tamamen kendi altyapınızda çalışabilir; Intlayer Cloud hesabı gerekmez. Tek bir komutla üretime hazır bir yığını başlatabilirsiniz:
24
+ Intlayer, bir Intlayer Cloud hesabına ihtiyaç duymadan kendi altyapınızda çalışabilir. Aynı yükleyici (`install.sh`, Windows üzerinde `install.ps1` veya `npx intlayer init infra`) ile yapılandırılabilen üç kurulum sunulmaktadır:
23
25
 
24
- Tek bir komut her şeyi kurar:
26
+ | Setup | What it is | Pick it for |
27
+ | -------------------------- | ---------------------------------------------------------------------------------------- | ------------------------------------------ |
28
+ | **Masaüstü Uygulaması** | macOS, Linux ve Windows için yerel kontrol paneli | Yerel bir istemci, barındırma gerekmez |
29
+ | **Hepsi-Bir-Arada Docker** | Kontrol paneli, API, MongoDB, Redis ve MinIO **tek bir kapsayıcıda** | Testler ve küçük tek sunuculu kurulumlar |
30
+ | **Docker Compose** | **Hizmet başına bir kapsayıcı**, her veri deposu yönetilen bir hizmetle değiştirilebilir | Üretim, ölçekleme, yönetilen veritabanları |
31
+
32
+ ## Table of Contents
33
+
34
+ <TOC/>
35
+
36
+ ## Yayınlanan İmajlar ve Paketler
37
+
38
+ | Artifact | Docker Hub | GHCR mirror | Contents |
39
+ | -------------------- | ------------------------------------------------------------------------- | ------------------------------------------ | -------------------------------------------------------------------------------- |
40
+ | All-in-one container | [`intlayer/cms-all`](https://hub.docker.com/r/intlayer/cms-all) | `ghcr.io/aymericzip/intlayer/cms-all` | app + backend + MongoDB 8 + Redis + MinIO + Chromium |
41
+ | Dashboard (frontend) | [`intlayer/cms-frontend`](https://hub.docker.com/r/intlayer/cms-frontend) | `ghcr.io/aymericzip/intlayer/cms-frontend` | TanStack Start dashboard on Bun |
42
+ | API (backend) | [`intlayer/cms-backend`](https://hub.docker.com/r/intlayer/cms-backend) | `ghcr.io/aymericzip/intlayer/cms-backend` | Fastify REST API on Bun + Chromium |
43
+ | Desktop app | [GitHub releases](https://github.com/aymericzip/intlayer/releases/latest) | n/a | `.dmg` (macOS), `.deb` / `.rpm` / `.AppImage` (Linux), `.exe` / `.msi` (Windows) |
44
+
45
+ Her üç imaj da aynı [`docker/selfhost/Dockerfile`](https://github.com/aymericzip/intlayer/tree/main/docker/selfhost) dosyasından oluşturulur ve her sürümde yayınlanır. Compose yığını ayrıca resmi `mongo:8`, `redis:8-alpine` ve `quay.io/minio/minio` imajlarını çeker.
46
+
47
+ ## Kurulum
48
+
49
+ Yükleyici istediğiniz kurulumu sorar, önkoşulları kontrol eder (Docker kurulumunu önerir), önceden oluşturulmuş gizli anahtarlarla ortam dosyasını yazar ve imajları çeker. Kendi kendine hiçbir şey başlatmaz: Docker modları önce bir e-posta göndericisinin ayarlanmasını gerektirir, bu nedenle çalıştırılacak komutu yazdırarak tamamlanır. Tekrar çalıştırmak güvenlidir: mevcut bir ortam dosyasının üzerine asla yazılmaz, bu da onu bir güncelleme yolu haline getirir.
50
+
51
+ <Tabs group="mode">
52
+ <Tab label="Masaüstü Uygulaması" value="desktop">
53
+
54
+ Tauri ile oluşturulmuş yerel bir uygulama olarak Intlayer kontrol paneli. Intlayer Cloud (`https://app.intlayer.org`) üzerinden oturum açar, bu nedenle barındırma gerekmez. Bir tarayıcı sekmesi yerine yerel bir istemci tercih ettiğinizde en iyi seçenektir.
55
+
56
+ ### Yükleme
57
+
58
+ Yükleyici işletim sisteminiz ve işlemciniz için uygun paketi indirir ve açar (macOS), yükler (Linux'ta `dpkg` / `rpm`) veya kurulum sihirbazını başlatır (Windows). Ayrıca [Sürümler sayfasından](https://github.com/aymericzip/intlayer/releases/latest) manuel olarak da indirebilirsiniz.
59
+
60
+ <Tabs group="os">
61
+ <Tab label="macOS / Linux" value="unix">
25
62
 
26
63
  ```sh
27
- curl -fsSL https://intlayer.org/install.sh | sh
64
+ curl -fsSL https://intlayer.org/install.sh | sh -s -- --mode desktop
28
65
  ```
29
66
 
30
- Yükleyici, bir `docker-compose.yml` ve bir `.env` indirir, gerekli gizli anahtarları otomatik olarak oluşturur ve tüm kapsayıcıları `docker compose up -d` ile başlatır.
67
+ </Tab>
68
+ <Tab label="Windows" value="windows">
31
69
 
32
- Tek dış bağımlılık **MongoDB**'dir: backend, sağladığınız bir MongoDB **Atlas** cluster'ına bağlanır. Diğer her şey kontainer içinde çalışır.
70
+ In PowerShell:
33
71
 
34
- ## İçindekiler
72
+ ```powershell
73
+ $env:INTLAYER_MODE = "desktop"; irm https://intlayer.org/install.ps1 | iex
74
+ ```
35
75
 
36
- <TOC/>
76
+ </Tab>
77
+ <Tab label="Intlayer CLI" value="cli">
78
+
79
+ ```bash
80
+ npx intlayer init infra --mode desktop
81
+ ```
82
+
83
+ </Tab>
84
+ </Tabs>
37
85
 
38
- ## Mimari
86
+ ### Gereksinimler
87
+
88
+ - **Node.js**: Uygulama kontrol paneli sunucusunu yerleşik olarak içerir ve makinenin `node` ikili dosyasıyla başlatır. Uygulama açılmazsa [nodejs.org](https://nodejs.org) adresinden yükleyin.
89
+
90
+ > Yayınlanan masaüstü derlemesi Intlayer Cloud arka ucuyla iletişim kurar. Kendi kendine barındırılan bir arka uca yönlendirmek, uygulamanın API'nize işaret eden `VITE_BACKEND_URL` ile yeniden derlenmesini gerektirir, bkz. [Sınırlamalar](#limitations).
91
+
92
+ </Tab>
93
+ <Tab label="Hepsi-Bir-Arada Docker" value="docker">
94
+
95
+ Her şey [s6-overlay](https://github.com/just-containers/s6-overlay) tarafından denetlenen tek bir `intlayer/cms-all` kapsayıcısı içinde çalışır ve tüm veri depoları tek bir birimde kalıcı olarak saklanır.
39
96
 
40
97
  ```
41
98
  ┌─────────────────────────────┐
42
99
  browser ──────▶ │ app (TanStack Start) :3000│ ──┐
43
- └─────────────────────────────┘ │ VITE_BACKEND_URL
100
+ (localhost) └─────────────────────────────┘ │ VITE_BACKEND_URL (baked at build)
44
101
  ┌─────────────────────────────┐ │
45
102
  │ backend (Fastify/Bun) :3100│ ◀─┘
46
103
  └──────────────┬──────────────┘
47
- ┌──────────┬─────────┼──────────┬───────────┐
48
- ▼ ▼ ▼ ▼ ▼
49
- mongo:27017 redis:6379 minio:9000 mailpit:1025 Chromium
50
- (1-düğüm RS) (S3 API) (SMTP) (görüntü içinde)
51
- minio:9001 mailpit:8025
52
- (konsol) (web arayüzü)
104
+ ┌──────────┬─────────┼──────────────┐
105
+ ▼ ▼ ▼ ▼
106
+ mongo:27017 redis:6379 minio:9000 Chromium
107
+ /data/mongo /data/redis /data/minio (in-image)
108
+ (1-node RS) minio:9001
53
109
  ```
54
110
 
55
- Chromium (Puppeteer ekran görüntüsü oluşturma için kullanılır) backend görüntüsünün içine dahil edilmiştir; ayrı bir kapsayıcıya gerek yoktur.
111
+ | Hizmet | Ana Bilgisayar Port(lar)ı | Amaç |
112
+ | ----------- | ---------------------------- | ------------------------------------------------------------ |
113
+ | **app** | `3000` | Kontrol paneli (CMS kullanıcı arayüzü) |
114
+ | **backend** | `3100` | REST API (`/health` uç noktası) |
115
+ | **mongo** | dahili | MongoDB 8, tek düğümlü replika seti `rs0` |
116
+ | **redis** | dahili | İş kuyrukları (BullMQ) ve önbellekleme |
117
+ | **minio** | `9000` (S3), `9001` (konsol) | Avatarlar ve ekran görüntüleri için S3 uyumlu nesne depolama |
118
+
119
+ Önyükleme sırası s6 bağımlılıkları tarafından yönetilir (`mongod` → replika seti başlatma, `minio` → demet oluşturma, ardından `backend`, ardından `app`) ve hizmetler sonlandığında yeniden başlatılır, böylece ilk önyükleme kendi kendini toparlar.
56
120
 
57
- ## Önkoşullar
121
+ ### Önkoşullar
58
122
 
59
- - **Docker** ≥ 24 ve **Docker Compose** ≥ v2. Herhangi biri eksikse, yükleyici kurulum bağlantısını yazdırır ve çıkar.
60
- - Ana bilgisayarda `3000`, `3100`, `8025`, `9000` ve `9001` bağlantı noktalarının kullanılabilir olması.
61
- - Bir Linux veya macOS ana bilgisayarı (veya Windows'ta WSL2).
123
+ - **Docker** ≥ 24: Yükleyici kurulumu önerir (Linux'ta [get.docker.com](https://get.docker.com), macOS'ta Homebrew). Windows'ta önce [Docker Desktop](https://docs.docker.com/desktop/setup/install/windows-install/) (WSL 2 arka ucu) kurun.
124
+ - Ana bilgisayarda `3000`, `3100`, `9000` ve `9001` portları boş olmalıdır. Tarayıcı varlıkları doğrudan `S3_PUBLIC_URL` adresinden yüklediğinden MinIO `9000` portu tarayıcı tarafından erişilebilir kalmalıdır.
125
+ - Bir e-posta göndericisi (mailer): [Resend](https://resend.com) API anahtarı veya bir SMTP geçişi.
62
126
 
63
- Diğer her şey — Bun, Redis, MinIO, Chromium — image içinde gelir.
127
+ ### 1. Yükleme
64
128
 
65
- ## Hızlı başlangıç
129
+ Oluşturulan `BETTER_AUTH_SECRET` ve `S3_SECRET_ACCESS_KEY` ile birlikte `./intlayer.env` dosyasını yazar ve `intlayer/cms-all:latest` imajını çeker.
66
130
 
67
- ### 1. Installer'ı çalıştırın
131
+ <Tabs group="os">
132
+ <Tab label="macOS / Linux" value="unix">
68
133
 
69
134
  ```sh
70
- curl -fsSL https://intlayer.org/install.sh | sh
135
+ curl -fsSL https://intlayer.org/install.sh | sh -s -- --mode docker
136
+ ```
137
+
138
+ </Tab>
139
+ <Tab label="Windows" value="windows">
140
+
141
+ In PowerShell:
142
+
143
+ ```powershell
144
+ $env:INTLAYER_MODE = "docker"; irm https://intlayer.org/install.ps1 | iex
71
145
  ```
72
146
 
73
- Docker'ın yüklü ve çalışır durumda olduğunu doğrular, `BETTER_AUTH_SECRET` ve `S3_SECRET_ACCESS_KEY` zaten oluşturulmuş şekilde `./intlayer.env` dosyasını yazar ve image'ı çeker. Container'ı başlatmaz — backend, veritabanı kimlik bilgileriniz olmadan önyüklenemiyor.
147
+ </Tab>
148
+ <Tab label="Intlayer CLI" value="cli">
74
149
 
75
- Installer'ı yeniden çalıştırmak güvenlidir: mevcut `intlayer.env` asla üzerine yazılmaz, bu nedenle güncelleme yolu olarak da işlev görür.
150
+ CLI, yükleyiciyi çalıştırır ve diğer sekmelerde gösterilen `docker run …` komutunu yazdırır. E-posta göndericisini yapılandırdıktan sonra terminalinize yapıştırın.
76
151
 
77
- ### 2. Kimlik bilgilerinizi doldurun
152
+ </Tab>
153
+ </Tabs>
78
154
 
79
- `intlayer.env` dosyasını açın ve `TODO` ile işaretlenmiş değerleri tamamlayın:
155
+ ### 2. E-posta Göndericisini Yapılandırın
156
+
157
+ `intlayer.env` dosyasını açın ve Resend **veya** SMTP bilgilerini doldurun (ayrıntılar için [Genel e-posta göndericisi](#global-mailer) bölümüne bakın):
80
158
 
81
159
  ```sh fileName="intlayer.env"
82
- DB_ID=<atlas-user>
83
- DB_MDP=<atlas-password>
84
- DB_CLUSTER=<cluster>.xxxxx.mongodb.net
160
+ # Option A: Resend
85
161
  RESEND_API_KEY=<your-resend-key>
86
- ```
87
162
 
88
- Dosya ayrıca isteğe bağlı özellikler için yorum satırı içeren bloklar taşır — [SMTP mailer](#global-mailer), `OPENAI_API_KEY` ve OAuth sağlayıcıları. İhtiyacınız olanların yorum satırını kaldırın.
163
+ # Option B: SMTP (takes over from Resend as soon as MAIL_SMTP_HOST is set)
164
+ MAIL_SMTP_HOST=smtp.example.com
165
+ MAIL_SMTP_PORT=587
166
+ MAIL_SMTP_USER=<user>
167
+ MAIL_SMTP_PASSWORD=<password>
168
+ MAIL_FROM=Intlayer <no-reply@example.com>
169
+ ```
89
170
 
90
- > Dosya `docker run --env-file` tarafından okunur ve tırnak işaretlerini kaldırmaz ve `=` işaretinden sonraki her şeyi değer olarak kabul eder. Çıplak değerler yazın ve açıklamaları kendi satırlarında tutun.
171
+ ### 3. Başlatma
91
172
 
92
- ### 3. Container'ı başlat
173
+ Yükleyici tarafından yazdırılan çalıştırma komutudur:
93
174
 
94
- Bu, yükleyici bittiğinde yazdıran komuttur:
175
+ <Tabs group="os">
176
+ <Tab label="macOS / Linux" value="unix">
95
177
 
96
178
  ```sh
97
179
  docker run -d --name intlayer \
98
180
  --restart unless-stopped \
99
- -p 3000:3000 \
100
- -p 3100:3100 \
101
- -p 9000:9000 \
102
- -p 9001:9001 \
181
+ -p 3000:3000 -p 3100:3100 -p 9000:9000 -p 9001:9001 \
103
182
  -v intlayer-data:/data \
104
183
  --env-file ./intlayer.env \
105
- ghcr.io/aymericzip/intlayer-selfhost:latest
184
+ intlayer/cms-all:latest
185
+ ```
186
+
187
+ </Tab>
188
+ <Tab label="Windows" value="windows">
189
+
190
+ ```powershell
191
+ docker run -d --name intlayer `
192
+ --restart unless-stopped `
193
+ -p 3000:3000 -p 3100:3100 -p 9000:9000 -p 9001:9001 `
194
+ -v intlayer-data:/data `
195
+ --env-file ./intlayer.env `
196
+ intlayer/cms-all:latest
197
+ ```
198
+
199
+ </Tab>
200
+ <Tab label="Intlayer CLI" value="cli">
201
+
202
+ CLI, yükleyiciyi çalıştırır ve diğer sekmelerde gösterilen `docker run …` komutunu yazdırır. E-posta göndericisini yapılandırdıktan sonra terminalinize yapıştırın.
203
+
204
+ </Tab>
205
+ </Tabs>
206
+
207
+ **http://localhost:3000** adresini açın ve [İlk Çalıştırma Kurulumu](#first-run-setup) adımlarını izleyin. İlk önyüklemede replika seti ve demet başlatılır, bu nedenle bir dakika bekleyin.
208
+
209
+ ### Yedekleme ve Güncelleme
210
+
211
+ Tüm durum `intlayer-data` birimi (`/data/mongo`, `/data/redis`, `/data/minio`) içinde tutulur.
212
+
213
+ ```sh
214
+ # Backup (stop the container first so MongoDB's files are consistent)
215
+ docker stop intlayer
216
+ docker run --rm -v intlayer-data:/data -v "$(pwd)":/backup busybox tar czf /backup/intlayer-data.tar.gz /data
217
+ docker start intlayer
218
+
219
+ # Restore
220
+ docker run --rm -v intlayer-data:/data -v "$(pwd)":/backup busybox tar xzf /backup/intlayer-data.tar.gz -C /
221
+ ```
222
+
223
+ Güncellemek için yükleyiciyi tekrar çalıştırın (en son imajı çeker ve `intlayer.env` dosyasını korur), ardından `docker rm -f intlayer` komutunu çalıştırın ve başlatma komutunu yeniden çalıştırın. Birlikte gelen yerine yönetilen bir MongoDB kullanmak için `intlayer.env` dosyasında `MONGODB_URI` değişkenini ayarlayın.
224
+
225
+ </Tab>
226
+ <Tab label="Docker Compose" value="compose">
227
+
228
+ Özel bir Compose ağında hizmet başına bir kapsayıcı. Kontrol paneli ve API, yayınlanan `intlayer/cms-frontend` ve `intlayer/cms-backend` imajlarını kullanır; veri depoları ise resmi `mongo`, `redis` ve `minio` imajlarını kullanır.
229
+
106
230
  ```
231
+ ┌───────────────────┐
232
+ browser ──────▶ │ app :3000 │ ── SSR ──▶ http://backend:3100
233
+ (localhost) └───────────────────┘
234
+ ┌───────────────────┐
235
+ browser ──────▶ │ backend :3100 │
236
+ (localhost) └─────────┬─────────┘
237
+ ┌───────────────┼───────────────┐
238
+ ▼ ▼ ▼
239
+ mongo:27017 redis:6379 minio:9000 ◀── browser (assets)
240
+ (1-node RS) minio:9001
241
+ ```
242
+
243
+ | Hizmet | İmaj | Rol |
244
+ | ------------ | ----------------------- | -------------------------------------------------------------------------- |
245
+ | `app` | `intlayer/cms-frontend` | `:3000` portundaki kontrol paneli; arka ucun sağlıklı olmasını bekler |
246
+ | `backend` | `intlayer/cms-backend` | Chromium ile `:3100` portundaki API; Mongo, Redis ve MinIO demetini bekler |
247
+ | `mongo` | `mongo:8` | Kendi durum kontrolü ile başlatılan tek düğümlü replika seti `rs0` |
248
+ | `redis` | `redis:8-alpine` | Kuyruklar ve önbellekleme, yalnızca eklemeli (append-only) kalıcılık |
249
+ | `minio` | `quay.io/minio/minio` | `:9000` portunda S3 depolama, `:9001` portunda konsol |
250
+ | `minio-init` | `quay.io/minio/mc` | Tek seferlik: demeti ve anonim indirme politikasını oluşturur |
251
+
252
+ Veriler `intlayer_mongo-data`, `intlayer_redis-data` ve `intlayer_minio-data` birimlerinde depolanır. Hizmet bağlantıları (`MONGODB_URI`, `REDIS_URL`, `S3_ENDPOINT`, sunucu tarafı işleme için dahili arka uç URL'si) compose dosyasında tanımlıdır ve yalnızca gizli anahtarları ve isteğe bağlı entegrasyonları barındıran `.env` dosyasına göre önceliklidir.
253
+
254
+ ### Önkoşullar
255
+
256
+ - **Docker** ≥ 24 (Compose eklentisiyle birlikte): Yükleyici Linux ve macOS'ta kurulumu önerir. Windows'ta önce [Docker Desktop](https://docs.docker.com/desktop/setup/install/windows-install/) (WSL 2 arka ucu) kurun.
257
+ - Ana bilgisayarda `3000`, `3100`, `9000` ve `9001` portları boş olmalıdır.
258
+ - Bir e-posta göndericisi: [Resend](https://resend.com) API anahtarı veya bir SMTP geçişi.
259
+
260
+ ### 1. Yükleme
107
261
 
108
- Ardından **http://localhost:3000** adresini açın. İlk başlangıçta veri depolarını başlatır, bu nedenle bir dakika bekleyin.
262
+ Oluşturulan gizli anahtarlarla birlikte `docker-compose.yml` ve bir `.env` dosyasını `./intlayer/` dizinine yazar ve imajları çeker.
109
263
 
110
- > Dashboard `localhost` üzerinde sunulur. Bkz. [Sınırlamalar](#limitations) — yayınlanan görüntü özel alanları desteklemez.
264
+ <Tabs group="os">
265
+ <Tab label="macOS / Linux" value="unix">
111
266
 
112
- ### Installer ayarları
267
+ ```sh
268
+ curl -fsSL https://intlayer.org/install.sh | sh -s -- --mode compose
269
+ ```
113
270
 
114
- Installer birkaç ortam değişkenini okur. `sh` içine yönlendirildiği için, onları `curl` yerine shell'e iletin:
271
+ Or by hand:
115
272
 
116
273
  ```sh
117
- curl -fsSL https://intlayer.org/install.sh | INTLAYER_ENV_FILE=./config/intlayer.env sh
274
+ mkdir intlayer && cd intlayer
275
+ curl -fsSLO https://raw.githubusercontent.com/aymericzip/intlayer/main/docker/selfhost/docker-compose.yml
276
+ curl -fsSL https://raw.githubusercontent.com/aymericzip/intlayer/main/docker/selfhost/.env.template -o .env
277
+ # fill in BETTER_AUTH_SECRET and S3_SECRET_ACCESS_KEY (openssl rand -hex 32)
278
+ ```
279
+
280
+ </Tab>
281
+ <Tab label="Windows" value="windows">
282
+
283
+ In PowerShell:
284
+
285
+ ```powershell
286
+ $env:INTLAYER_MODE = "compose"; irm https://intlayer.org/install.ps1 | iex
287
+ ```
288
+
289
+ Or by hand:
290
+
291
+ ```powershell
292
+ mkdir intlayer; cd intlayer
293
+ irm https://raw.githubusercontent.com/aymericzip/intlayer/main/docker/selfhost/docker-compose.yml -OutFile docker-compose.yml
294
+ irm https://raw.githubusercontent.com/aymericzip/intlayer/main/docker/selfhost/.env.template -OutFile .env
295
+ # fill in BETTER_AUTH_SECRET and S3_SECRET_ACCESS_KEY
118
296
  ```
119
297
 
120
- | Değişken | Varsayılan | Açıklama |
121
- | ------------------------- | --------------------------------------------- | ----------------------------- |
122
- | `INTLAYER_IMAGE` | `ghcr.io/aymericzip/intlayer-selfhost:latest` | Çekilecek image |
123
- | `INTLAYER_ENV_FILE` | `./intlayer.env` | Env dosyasının yazılacağı yer |
124
- | `INTLAYER_CONTAINER_NAME` | `intlayer` | Container adı |
125
- | `INTLAYER_DATA_VOLUME` | `intlayer-data` | `/data` dizinine bağlı volume |
126
- | `INTLAYER_APP_PORT` | `3000` | Dashboard için host portu |
127
- | `INTLAYER_API_PORT` | `3100` | API için host portu |
128
- | `INTLAYER_S3_PORT` | `9000` | MinIO S3 API için host portu |
129
- | `INTLAYER_CONSOLE_PORT` | `9001` | MinIO konsolu için host portu |
298
+ </Tab>
299
+ <Tab label="Intlayer CLI" value="cli">
130
300
 
131
- > Dört port değişkeni yalnızca `docker run` komutunda yazdırılan eşlemenin **host** tarafını değiştirir. Yayınlanan image, derleme zamanında dashboard bundle'ına `http://localhost:3000`, `http://localhost:3100` ve `http://localhost:9000` derlenmiş olarak sahiptir, bu nedenle onları yeniden eşlemek tarayıcıyı eski portlara işaret ettirir. Kendi image'ınızı oluşturmıyorsanız varsayılanları tutun — [Sınırlamalar](#limitations)'a bakın.
301
+ ```bash
302
+ npx intlayer init infra --mode compose
303
+ ```
304
+
305
+ </Tab>
306
+ </Tabs>
307
+
308
+ ### 2. E-posta Göndericisini Yapılandırın
132
309
 
133
- ## İlk çalıştırma kurulumu
310
+ Tıpkı hepsi-bir-arada kapsayıcısında olduğu gibi `intlayer/.env` dosyasına Resend **veya** SMTP bilgilerini girin ([Genel e-posta göndericisi](#global-mailer) bölümüne bakın).
134
311
 
135
- Yeni bir instance'ta (boş veritabanı), dashboard'u açmak sizi **`/init`** sayfasına yönlendirir:
312
+ ### 3. Başlatma
136
313
 
137
- 1. İlk hesabı oluşturun. Kullanıcılar koleksiyonu boş olduğundan, bu hesap otomatik olarak **super admin** olarak yükseltilir.
138
- 2. Bir doğrulama e-postası gönderilir (Resend aracılığıyla). E-posta doğrulaması **zorunludur** — bu nedenle `RESEND_API_KEY` başlamadan önce ayarlanmalıdır.
139
- 3. E-postadaki bağlantıyı tıklayın, ardından oturum açın.
314
+ ```sh
315
+ cd intlayer && docker compose up -d
316
+ ```
140
317
 
141
- Bir admin mevcut olduğunda, `/init` standart oturum açma sayfasına yönlendirilir.
318
+ **http://localhost:3000** adresini açın ve [İlk Çalıştırma Kurulumu](#first-run-setup) adımlarını izleyin.
319
+
320
+ ### Yönetilen Veri Depoları
321
+
322
+ Değiştirdiğiniz hizmeti compose dosyasından (ve `backend` altındaki `depends_on` girişinden) silin ve ilgili değişkeni geçersiz kılın:
323
+
324
+ ```yaml fileName="docker-compose.yml"
325
+ services:
326
+ backend:
327
+ environment:
328
+ MONGODB_URI: mongodb+srv://user:password@cluster0.xxxxx.mongodb.net/intlayer
329
+ REDIS_URL: rediss://default:password@redis.example.com:6380
330
+ S3_ENDPOINT: https://s3.eu-west-1.amazonaws.com
331
+ S3_PUBLIC_URL: https://intlayer-assets.s3.eu-west-1.amazonaws.com
332
+ ```
142
333
 
143
- ## Servisler
334
+ `S3_ACCESS_KEY_ID` / `S3_SECRET_ACCESS_KEY` / `S3_BUCKET_NAME` değişkenleri herhangi bir S3 uyumlu sağlayıcı ile sorunsuz çalışır.
144
335
 
145
- | Servis | Görüntü | Ana Bilgisayar Bağlantı Noktası(ları) | Amaç |
146
- | ----------- | ------------------------------------------------- | ------------------------------------- | ------------------------------------------------------------ |
147
- | **app** | `apps/app/Dockerfile` dosyasından oluşturuldu | `3000` | TanStack Start kontrol paneli (CMS UI) |
148
- | **backend** | `apps/backend/Dockerfile` dosyasından oluşturuldu | `3100` | Fastify REST API (`/health` uç noktası) |
149
- | **mongo** | `mongo:7` | dahili | Tek düğümlü replika seti (`rs0`) |
150
- | **redis** | `redis:7-alpine` | dahili | İş kuyrukları (BullMQ) ve önbellekleme (ioredis) |
151
- | **minio** | `minio/minio` | `9000` (S3), `9001` (konsol) | Avatarlar ve ekran görüntüleri için S3 uyumlu nesne depolama |
152
- | **mailpit** | `axllent/mailpit` | `1025` (SMTP), `8025` (web UI) | Yerel işlem e-postası alıcısı |
336
+ ### Ölçekleme
153
337
 
154
- > MinIO bağlantı noktası `9000` tarayıcı tarafından erişilebilir olmalıdır çünkü yüklenen varlıklar (avatarlar, ekran görüntüleri) doğrudan `S3_PUBLIC_URL=http://localhost:9000/intlayer` adresinden yüklenir.
338
+ `app` ve `backend` durumsuzdur (stateless). Bir yük dengeleyicinin arkasında, sabit ana bilgisayar port eşlemelerini kaldırdığınız ve proxy'nin hizmet adına göre yönlendirme yaptığı varsayımıyla `docker compose up -d --scale backend=3` komutu çalışır. Arka plan işleri Redis (BullMQ) aracılığıyla koordine edilir, bu nedenle birden çok arka uç kopyası kuyrukları güvenle paylaşır.
155
339
 
156
- ## Ortam değişkenleri
340
+ ### Kaynaktan Derleme
341
+
342
+ Depo klonundan bir geçersiz kılma (override) ile iki Intlayer hizmetini `image:` yerine `build:` kullanımına geçirin:
343
+
344
+ ```sh
345
+ cd docker/selfhost
346
+ docker compose -f docker-compose.yml -f docker-compose.build.yml up -d --build
347
+ ```
348
+
349
+ Özel bir alan adı için imajlar oluştururken de bunu kullanın: `VITE_*` değerlerini derleme argümanları olarak iletin (bkz. [Sınırlamalar](#limitations)).
350
+
351
+ ### Yedekleme ve Güncelleme
352
+
353
+ ```sh
354
+ # Backup one volume (repeat for intlayer_redis-data and intlayer_minio-data)
355
+ docker compose stop
356
+ docker run --rm -v intlayer_mongo-data:/data -v "$(pwd)":/backup busybox tar czf /backup/mongo-data.tar.gz /data
357
+ docker compose start
358
+
359
+ # Upgrade, volumes are kept
360
+ docker compose pull && docker compose up -d
361
+ ```
362
+
363
+ </Tab>
364
+ </Tabs>
365
+
366
+ ### Yükleyici Ayarları
367
+
368
+ `--mode` (veya `INTLAYER_MODE`) belirtilmezse, yükleyici bir menü sunar: `desktop`, `docker` (hepsi-bir-arada) veya `compose`. Ayrıca birkaç ortam değişkenini de okur; bunlar kabuğa yönlendirildiği için `curl` yerine doğrudan kabuğa aktarılmalıdır:
369
+
370
+ ```sh
371
+ curl -fsSL https://intlayer.org/install.sh | INTLAYER_COMPOSE_DIR=./cms sh -s -- --mode compose
372
+ ```
373
+
374
+ ```powershell
375
+ $env:INTLAYER_MODE = "compose"; $env:INTLAYER_COMPOSE_DIR = ".\cms"; irm https://intlayer.org/install.ps1 | iex
376
+ ```
377
+
378
+ | Variable | Default | Applies to | Description |
379
+ | ------------------------- | ------------------------- | ---------- | ---------------------------------------------------------- |
380
+ | `INTLAYER_MODE` | _(asked)_ | all | `desktop`, `docker` or `compose`, same as `--mode` |
381
+ | `INTLAYER_DOWNLOAD_DIR` | `~/Downloads` | desktop | Where the app installer is saved |
382
+ | `INTLAYER_IMAGE` | `intlayer/cms-all:latest` | docker | All-in-one image to pull |
383
+ | `INTLAYER_ENV_FILE` | `./intlayer.env` | docker | Where to write the environment file |
384
+ | `INTLAYER_CONTAINER_NAME` | `intlayer` | docker | Container name |
385
+ | `INTLAYER_DATA_VOLUME` | `intlayer-data` | docker | Named volume mounted at `/data` |
386
+ | `INTLAYER_APP_PORT` | `3000` | docker | Host port for the dashboard |
387
+ | `INTLAYER_API_PORT` | `3100` | docker | Host port for the API |
388
+ | `INTLAYER_S3_PORT` | `9000` | docker | Host port for the MinIO S3 API |
389
+ | `INTLAYER_CONSOLE_PORT` | `9001` | docker | Host port for the MinIO console |
390
+ | `INTLAYER_COMPOSE_DIR` | `./intlayer` | compose | Where `docker-compose.yml` and `.env` are written |
391
+ | `INTLAYER_SELFHOST_REF` | `main` | both | Git ref the compose file and env template are fetched from |
392
+
393
+ > Port değişkenleri yalnızca eşlemenin **ana bilgisayar** tarafını değiştirir. Yayınlanan imajlarda kontrol paneli paketine `http://localhost:3000`, `http://localhost:3100` ve `http://localhost:9000` derlenmiştir; bu nedenle kendi imajınızı derlemediğiniz sürece varsayılan değerleri koruyun, bkz. [Sınırlamalar](#limitations).
394
+
395
+ ## İlk Çalıştırma Kurulumu
396
+
397
+ Yeni bir örnekte (boş veritabanı) kontrol panelini açtığınızda otomatik olarak **`/init`** sayfasına yönlendirilirsiniz:
398
+
399
+ 1. İlk hesabı oluşturun. Kullanıcı koleksiyonu boş olduğundan, bu hesap otomatik olarak **Süper Yönetici** yapılır.
400
+ 2. Resend veya SMTP geçişiniz üzerinden bir doğrulama e-postası gönderilir. E-posta doğrulaması **zorunludur**; bu nedenle başlatmadan önce bir e-posta göndericisi yapılandırılmalıdır.
401
+ 3. E-postadaki bağlantıya tıklayın ve giriş yapın.
402
+
403
+ Yönetici oluşturulduktan sonra `/init` adresi normal oturum açma sayfasına yönlendirilir.
404
+
405
+ ## Ortam Değişkenleri
406
+
407
+ Her iki Docker modu da [`docker/selfhost/.env.template`](https://github.com/aymericzip/intlayer/blob/main/docker/selfhost/.env.template) dosyasından oluşturulan aynı dosyayı (kapsayıcı için `intlayer.env`, Compose için `.env`) okur.
157
408
 
158
409
  ### Gerekli
159
410
 
160
- | Variable | Example | Description |
161
- | ---------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
162
- | `DB_ID` | `intlayer` | MongoDB Atlas kullanıcısı |
163
- | `DB_MDP` | _(şifreniz)_ | MongoDB Atlas şifresi |
164
- | `DB_CLUSTER` | `cluster0.xxxxx.mongodb.net` | MongoDB Atlas cluster host'u (`mongodb+srv://` URI'de kullanılır) |
165
- | `BETTER_AUTH_SECRET` | _(generated)_ | Session imzalama için 32-byte secret |
166
- | `S3_SECRET_ACCESS_KEY` | _(generated)_ | Bundled MinIO için secret |
167
- | `RESEND_API_KEY` | _(your key)_ | Resend aracılığıyla işlemsel e-posta. Global SMTP mailer'ı yapılandırmadığınız sürece ilk çalıştırma kurulumu için gereklidir (bkz. [Global mailer](#global-mailer)) |
168
-
169
- ### Gerekli (otomatik oluşturulur veya istenir)
170
-
171
- | Değişken | Örnek | Açıklama |
172
- | ---------------------- | ----------------------------------------------- | ---------------------------------------------------------- |
173
- | `NODE_ENV` | `production` | Çalışma zamanı ortamı |
174
- | `PORT` | `3100` | Backend dinleme portu |
175
- | `BACKEND_URL` | `http://localhost:3100` | Backend API'sinin genel URL'si |
176
- | `APP_URL` | `http://localhost:3000` | Kontrol panelinin genel URL'si |
177
- | `DOMAIN` | `localhost` | Çerez alanı |
178
- | `MONGODB_URI` | `mongodb://mongo:27017/intlayer?replicaSet=rs0` | Tam MongoDB bağlantı URI'si |
179
- | `REDIS_URL` | `redis://redis:6379` | Redis bağlantı URL'si |
180
- | `BETTER_AUTH_SECRET` | _(oluşturuldu)_ | Oturum imzalamak için 32 baytlık gizli anahtar |
181
- | `MAIL_PROVIDER` | `smtp` | E-posta taşıma yöntemi: `smtp` veya `resend` |
182
- | `MAIL_SMTP_HOST` | `mailpit` | SMTP ana bilgisayar adı (Mailpit kapsayıcı adı) |
183
- | `MAIL_SMTP_PORT` | `1025` | SMTP portu |
184
- | `MAIL_FROM` | `Intlayer <no-reply@localhost>` | Gönderen adresi |
185
- | `S3_ENDPOINT` | `http://minio:9000` | S3 uyumlu uç nokta |
186
- | `S3_PUBLIC_URL` | `http://localhost:9000/intlayer` | Tarayıcı varlık yüklemesi için genel URL |
187
- | `S3_BUCKET_NAME` | `intlayer` | Kova adı |
188
- | `S3_ACCESS_KEY_ID` | _(oluşturuldu)_ | MinIO erişim anahtarı |
189
- | `S3_SECRET_ACCESS_KEY` | _(oluşturuldu)_ | MinIO gizli anahtarı |
190
- | `VITE_BACKEND_URL` | `http://localhost:3100` | Oluşturma zamanında kontrol paneline gömülü backend URL'si |
191
- | `VITE_DOMAIN` | `localhost` | Oluşturma zamanında kontrol paneline gömülü alan adı |
192
-
193
- ### İsteğe Bağlı (yokluğunda özellikler sorunsuz şekilde bozulur)
194
-
195
- | Değişken | Özellik |
196
- | -------------------------------------------------------- | --------------------------------------------------------------------------- |
197
- | `OPENAI_API_KEY` | AI destekli çeviri ve içerik denetimi |
198
- | `STRIPE_SECRET_KEY`, `STRIPE_WEBHOOK_SECRET`, `STRIPE_*` | Faturalandırma ve abonelik yönetimi |
199
- | `RESEND_API_KEY` | Resend aracılığıyla işlemsel e-posta (ayarlanırsa Mailpit'i geçersiz kılar) |
200
- | `GITHUB_CLIENT_ID`, `GITHUB_CLIENT_SECRET` | GitHub OAuth girişi |
201
- | `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET` | Google OAuth girişi |
202
- | `GITLAB_CLIENT_ID`, `GITLAB_CLIENT_SECRET` | GitLab OAuth girişi |
203
- | `MICROSOFT_CLIENT_ID`, `MICROSOFT_CLIENT_SECRET` | Microsoft OAuth girişi |
204
- | `LINKEDIN_CLIENT_ID`, `LINKEDIN_CLIENT_SECRET` | LinkedIn OAuth girişi |
205
- | `ATLASSIAN_CLIENT_ID`, `ATLASSIAN_CLIENT_SECRET` | Atlassian OAuth girişi |
206
-
207
- ### Global mailer
208
-
209
- Varsayılan olarak, tüm işlemsel e-postalar Resend üzerinden `RESEND_API_KEY` kullanılarak gönderilir. Self-hosted dağıtımlar bunun yerine **tüm** e-postaları — şifre sıfırlamaları ve magic linkler gibi organizasyon dışı e-postalar dahil — ortam değişkenleriyle yapılandırılmış global bir mailer üzerinden yönlendirebilir.
210
-
211
- Etkinleştirmek için `MAIL_PROVIDER` ayarlayın. Ayarlanmadığında, varsayılan Resend mailer kullanılır.
212
-
213
- | Değişken | Örnek | Açıklama |
214
- | -------------------- | ------------------------------ | --------------------------------------------------------------------------------- |
215
- | `MAIL_PROVIDER` | `smtp` | Global transport: `smtp` veya `resend`. Varsayılanları kullanmak için ayarlamayın |
216
- | `MAIL_FROM` | `Intlayer <no-reply@acme.com>` | Gönderen başlığı. Düz bir adres veya `Name <email>` formatını kabul eder |
217
- | `MAIL_SMTP_HOST` | `smtp.acme.com` | SMTP host (`MAIL_PROVIDER=smtp` olduğunda gerekli) |
218
- | `MAIL_SMTP_PORT` | `587` | SMTP port (varsayılan `587`) |
219
- | `MAIL_SMTP_SECURE` | `false` | Implicit TLS. Port `465` için `true` olarak ayarlayın |
220
- | `MAIL_SMTP_USER` | _(your user)_ | SMTP kullanıcı adı (isteğe bağlı; kimliği doğrulanmamış relayler için atlayın) |
221
- | `MAIL_SMTP_PASSWORD` | _(your password)_ | SMTP şifresi |
222
-
223
- > Öncelik: bir organizasyonun kendi mailer'ı (**Organization** panosundan yapılandırılmış) global mailer'dan daha yüksek önceliğe sahiptir ve bu da varsayılan Resend anahtarından daha yüksek önceliğe sahiptir.
224
-
225
- ## Intlayer projenizi bağlama
226
-
227
- Yığın çalışmaya başladıktan sonra, projenizi `intlayer.org` yerine kendi barındırılan backend ve kontrol paneline yönlendirin.
228
-
229
- ### Proje yapılandırması
411
+ | Variable | Example | Description |
412
+ | ---------------------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
413
+ | `BETTER_AUTH_SECRET` | _(generated)_ | 32-byte secret for session signing |
414
+ | `S3_SECRET_ACCESS_KEY` | _(generated)_ | Secret for the bundled MinIO |
415
+ | `RESEND_API_KEY` | _(your key)_ | Transactional email via Resend. Required for first-run setup unless an SMTP relay is configured instead (see [Global mailer](#global-mailer)) |
416
+
417
+ ### Dağıtım Tarafından Sabitlenmiş
418
+
419
+ These are set by the image (all-in-one) or by the compose file, and only need overriding for a non-standard topology.
420
+
421
+ | Variable | All-in-one | Docker Compose | Description |
422
+ | ------------------ | --------------------------------------------------- | -------------------------------- | ----------------------------------------------------------------------------- |
423
+ | `PORT` | `3100` | `3100` | Backend listening port |
424
+ | `APP_URL` | `http://localhost:3000` | `http://localhost:3000` | Public URL of the dashboard |
425
+ | `BACKEND_URL` | `http://localhost:3100` | `http://localhost:3100` | Public URL of the backend API |
426
+ | `DOMAIN` | `localhost` | `localhost` | Cookie domain |
427
+ | `SELF_HOSTED` | `true` | `true` | Disables the cloud-only API endpoints (billing, subscriptions, marketplace) |
428
+ | `MONGODB_URI` | `mongodb://127.0.0.1:27017/intlayer?replicaSet=rs0` | `mongodb://mongo:27017/…` | MongoDB connection string, any `mongodb://` or `mongodb+srv://` cluster works |
429
+ | `REDIS_URL` | `redis://127.0.0.1:6379` | `redis://redis:6379` | Redis |
430
+ | `S3_ENDPOINT` | `http://127.0.0.1:9000` | `http://minio:9000` | MinIO (server-to-server) |
431
+ | `S3_PUBLIC_URL` | `http://localhost:9000/intlayer` | `http://localhost:9000/intlayer` | Public URL for browser asset loading |
432
+ | `S3_BUCKET_NAME` | `intlayer` | `intlayer` | Bucket name |
433
+ | `S3_ACCESS_KEY_ID` | `intlayer` | `intlayer` | MinIO access key |
434
+
435
+ Compose `app` hizmeti ek olarak `INTLAYER_BACKEND_INTERNAL_URL=http://backend:3100` alır: tarayıcı API'ye `localhost:3100` üzerinden erişirken, sunucu tarafı işleme Compose ağı içinde çalışır ve bu nedenle hizmet adını kullanmalıdır.
436
+
437
+ ### İsteğe Bağlı (ayarlanmadığında özellikler sorunsuz bir şekilde devre dışı kalır)
438
+
439
+ | Variable | Feature |
440
+ | ------------------------------------------------ | ----------------------------------------- |
441
+ | `OPENAI_API_KEY` | AI-assisted translation and content audit |
442
+ | `GITHUB_CLIENT_ID`, `GITHUB_CLIENT_SECRET` | GitHub OAuth login |
443
+ | `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET` | Google OAuth login |
444
+ | `GITLAB_CLIENT_ID`, `GITLAB_CLIENT_SECRET` | GitLab OAuth login |
445
+ | `MICROSOFT_CLIENT_ID`, `MICROSOFT_CLIENT_SECRET` | Microsoft OAuth login |
446
+
447
+ ### Genel E-posta Göndericisi (Mailer)
448
+
449
+ Şifre sıfırlama ve sihirli bağlantılar dahil olmak üzere kuruluş dışı e-postalar da dahil tüm işlem e-postaları iki genel aktarımdan biri üzerinden gönderilir:
450
+
451
+ - **Resend**: `RESEND_API_KEY` kullanır.
452
+ - **SMTP**: `MAIL_SMTP_*` değişkenlerini kullanır. `MAIL_SMTP_HOST` ayarlandığı anda SMTP seçilir ve `RESEND_API_KEY` yok sayılır.
453
+
454
+ `MAIL_PROVIDER` yalnızca her ikisi de yapılandırıldığında bir aktarımı zorlamak için gereklidir (örneğin bir SMTP sunucusu mevcutken Resend'i korumak için `MAIL_PROVIDER=resend`).
455
+
456
+ | Variable | Example | Description |
457
+ | -------------------- | ------------------------------ | ---------------------------------------------------------------------------- |
458
+ | `MAIL_FROM` | `Intlayer <no-reply@acme.com>` | Sender header for either transport. Accepts a bare address or `Name <email>` |
459
+ | `MAIL_SMTP_HOST` | `smtp.acme.com` | SMTP host. Setting it selects the SMTP transport |
460
+ | `MAIL_SMTP_PORT` | `587` | SMTP port (defaults to `587`) |
461
+ | `MAIL_SMTP_SECURE` | `false` | Implicit TLS. Set `true` for port `465` |
462
+ | `MAIL_SMTP_USER` | _(your user)_ | SMTP username (optional; omit for unauthenticated relays) |
463
+ | `MAIL_SMTP_PASSWORD` | _(your password)_ | SMTP password |
464
+ | `MAIL_PROVIDER` | `resend` | Optional override: `smtp` or `resend`. Leave unset to auto-select |
465
+
466
+ > Öncelik: Bir kuruluşun kendi e-posta göndericisi (**Kuruluş** kontrol panelinden yapılandırılır) genel e-posta göndericisini geçersiz kılar; genel e-posta göndericisi ise varsayılan Resend anahtarını geçersiz kılar.
467
+
468
+ ## Intlayer Projenizi Bağlama
469
+
470
+ Yığın çalıştırıldıktan sonra, projenizi `intlayer.org` yerine kendi barındırdığınız arka uca ve kontrol paneline işaret edecek şekilde yapılandırın.
471
+
472
+ ### Proje Yapılandırması
230
473
 
231
474
  ```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
232
475
  import type { IntlayerConfig } from "intlayer";
@@ -237,23 +480,23 @@ const config: IntlayerConfig = {
237
480
  clientSecret: process.env.INTLAYER_CLIENT_SECRET,
238
481
 
239
482
  /**
240
- * Kendi sunucunuzda barındırılan CMS kontrol panelinin URL'si.
241
- * Varsayılan: https://app.intlayer.org
483
+ * URL of the self-hosted CMS dashboard.
484
+ * Default: https://app.intlayer.org
242
485
  */
243
- cmsURL: process.env.INTLAYER_CMS_URL, // örn. http://localhost:3000
486
+ cmsURL: process.env.INTLAYER_CMS_URL, // e.g. http://localhost:3000
244
487
 
245
488
  /**
246
- * Kendi sunucunuzda barındırılan backend API'sinin URL'si.
247
- * Varsayılan: https://back.intlayer.org
489
+ * URL of the self-hosted backend API.
490
+ * Default: https://back.intlayer.org
248
491
  */
249
- backendURL: process.env.INTLAYER_BACKEND_URL, // örn. http://localhost:3100
492
+ backendURL: process.env.INTLAYER_BACKEND_URL, // e.g. http://localhost:3100
250
493
  },
251
494
  };
252
495
 
253
496
  export default config;
254
497
  ```
255
498
 
256
- Projenizin `.env` dosyasında ortam değişkenlerini ayarlayın:
499
+ Set the environment variables in your project's `.env`:
257
500
 
258
501
  ```sh
259
502
  INTLAYER_CMS_URL=http://localhost:3000
@@ -262,11 +505,11 @@ INTLAYER_CLIENT_ID=<your-client-id>
262
505
  INTLAYER_CLIENT_SECRET=<your-client-secret>
263
506
  ```
264
507
 
265
- Kendi barındırılan kontrol panelinizde **Projeler → Erişim Anahtarları** altında `http://localhost:3000/projects` adresinde erişim kimlik bilgileri oluşturun.
508
+ Erişim kimlik bilgilerini kendi barındırdığınız kontrol panelinden oluşturun: **Projeler → Erişim Anahtarları** (`http://localhost:3000/projects`).
266
509
 
267
510
  ### `@intlayer/api` SDK
268
511
 
269
- `@intlayer/api` SDK'sını programlı olarak kullanırken, `backendURL`'i açıkça geçirin:
512
+ `@intlayer/api` SDK'sını programlı olarak kullanırken `backendURL` parametresini açıkça iletin:
270
513
 
271
514
  ```typescript fileName="cms.ts" codeFormat="typescript"
272
515
  import { createIntlayerCMS } from "@intlayer/api";
@@ -283,84 +526,17 @@ const cms = createIntlayerCMS({
283
526
  const { data: dictionaries } = await dictionaryEndpoint(cms).getDictionaries();
284
527
  ```
285
528
 
286
- ## Yükseltme
287
-
288
- Bu, en son görüntüleri çeker ve kapsayıcıları `docker compose pull && docker compose up -d` ile yeniden başlatır. Mevcut birimler (`mongo-data`, `redis-data`, `minio-data`) korunur; veri kaybı olmaz.
289
-
290
- ```sh
291
- docker compose pull
292
- docker compose up -d
293
- ```
294
-
295
- ## Yedekleme ve Geri Yükleme
296
-
297
- Tüm kalıcı veriler, üç adet adlandırılmış Docker biriminde bulunur.
298
-
299
- ### Yedekleme
300
-
301
- ```sh
302
- docker run --rm \
303
- -v intlayer_mongo-data:/data \
304
- -v "$(pwd)":/backup \
305
- busybox tar czf /backup/mongo-data.tar.gz /data
306
-
307
- docker run --rm \
308
- -v intlayer_redis-data:/data \
309
- -v "$(pwd)":/backup \
310
- busybox tar czf /backup/redis-data.tar.gz /data
311
-
312
- docker run --rm \
313
- -v intlayer_minio-data:/data \
314
- -v "$(pwd)":/backup \
315
- busybox tar czf /backup/minio-data.tar.gz /data
316
- ```
317
-
318
- ### Geri Yükleme
319
-
320
- ```sh
321
- docker run --rm \
322
- -v intlayer_mongo-data:/data \
323
- -v "$(pwd)":/backup \
324
- busybox tar xzf /backup/mongo-data.tar.gz -C /
325
-
326
- # redis-data ve minio-data için tekrarlayın
327
- ```
328
-
329
529
  ## Sınırlamalar
330
530
 
331
- - **MongoDB harici (Atlas) olmalıdır.** Backend yalnızca `mongodb+srv://` üzerinden bağlanır (`DB_ID` / `DB_MDP` / `DB_CLUSTER` öğesinden oluşturulur), bu nedenle düz `mongodb://host:27017` — konteyner'ın kendi paketlenmiş `mongod` dahil — kullanılamaz. Bir MongoDB Atlas kümesi sağlayın.
332
- - **Özel alan adı yok.** Tüm tarayıcıya yönelik `VITE_*` URL'leri derleme zamanında uygulamaya satır içine alınır ve yayınlanan görüntü `localhost` değerleriyle gemi. Pano şu adreste erişilmelidir: `http://localhost:3000`; bunu genel bir alan adında sunmak, görüntüyü hedef URL'ler ile yeniden oluşturmayı gerektiriyor ve kutudan hemen çıkar desteklenmiyor.
333
- - **E-posta çalışan bir postacı gerektirir.** İlk çalıştırma kurulumu e-posta doğrulamasını uygular, bu nedenle `RESEND_API_KEY` veya bir [global SMTP postacısı](#global-mailer) (`MAIL_PROVIDER=smtp` + `MAIL_SMTP_*`) yapılandırılmalıdır. İlk yönetici oturum açtıktan sonra, her kuruluş panodan kendi SMTP veya Resend postacısını da yapılandırabilir.
334
-
335
- ## Sorun Giderme
336
-
337
- ### İlk Başlangıçta Backend Sürekli Çöküyor
338
-
339
- Backend başlamadan önce MongoDB ve Redis'in sağlıklı olması gerekir. Compose dosyası `condition: service_healthy` ile `depends_on` kullanır. Tekrarlayan backend yeniden başlatmaları görüyorsanız, `mongo` ve `redis` sağlık kontrollerinin geçtiğinden emin olun:
340
-
341
- ```sh
342
- docker compose ps
343
- docker compose logs mongo
344
- docker compose logs redis
345
- ```
346
-
347
- Log dosyasının üst kısmına yakın yerde `MongoDB connection error` (MongoDB bağlantı hatası) ifadesini arayın.
348
-
349
- ### Kontrol Paneli API'ye Ulaşamıyor
350
-
351
- `VITE_BACKEND_URL`'in backend'e **tarayıcıdan** (Docker ağı değil) erişilebilen URL ile eşleştiğini doğrulayın. Backend portunu değiştirdiyseniz veya bir ters proxy eklediyseniz, kontrol paneli görüntüsünü yeniden oluşturun:
352
-
353
- ### MinIO Kovası Eksik
354
-
355
- Eğer `minio-init` tek seferlik servisi çalışmadıysa (veya MinIO hazır olmadan önce çalıştıysa), kovayı manuel olarak oluşturun:
356
-
357
- ```sh
358
- docker compose run --rm minio-init
359
- ```
531
+ - **Özel alan adları ve port yeniden eşleme desteklenmez.** Tarayıcıya yönelik tüm `VITE_*` URL'leri derleme sırasında kontrol paneline dahil edilir ve yayınlanan imajlar (ve masaüstü uygulaması) `localhost` / Intlayer Cloud değerleriyle yapılandırılmıştır. Kontrol paneline `http://localhost:3000`, API'ye `:3100` ve MinIO'ya `:9000` üzerinden erişilmelidir. Genel bir alan adında barındırmak veya masaüstü uygulamasını kendi kendine barındırılan bir arka uca yönlendirmek, hedef URL'ler ile yeniden derleme gerektirir (`docker/selfhost/Dockerfile` veya `docker-compose.build.yml` üzerinde `--build-arg VITE_BACKEND_URL=… VITE_SITE_URL=… VITE_DOMAIN=…` ile) ve kutudan çıktığı haliyle desteklenmez.
532
+ - **E-posta gönderimi çalışan bir gönderici gerektirir.** İlk çalıştırma kurulumunda e-posta doğrulaması zorunlu olduğundan `RESEND_API_KEY` veya bir [SMTP geçişi](#global-mailer) (`MAIL_SMTP_*`) yapılandırılmalıdır. İlk yönetici oturum açtıktan sonra kuruluşlar kontrol panelinden kendi SMTP veya Resend göndericilerini de yapılandırabilir.
533
+ - **Masaüstü uygulaması yerleşik sunucuyu başlatmak için makinede Node.js gerektirir.**
360
534
 
361
535
  ## Faydalı Bağlantılar
362
536
 
363
- - [Intlayer CMS belgeleri](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/intlayer_CMS.md)
364
- - [Yapılandırma referansı](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/configuration.md)
365
- - [CMS SDK — `@intlayer/api`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/intlayer_CMS.md#programmatic-access-with-the-intlayerapi-sdk)
366
- - [Docker Image (aymercizip/intlayer-selfhost)](https://hub.docker.com/repository/docker/aymercizip/intlayer-selfhost/general)
537
+ - [Intlayer CMS Belgeleri](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/intlayer_CMS.md)
538
+ - [Yapılandırma Referansı](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/configuration.md)
539
+ - [CMS SDK: `@intlayer/api`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/intlayer_CMS.md#programmatic-access-with-the-intlayerapi-sdk)
540
+ - [Masaüstü Uygulaması Sürümleri](https://github.com/aymericzip/intlayer/releases/latest)
541
+ - Docker Hub: [`intlayer/cms-all`](https://hub.docker.com/r/intlayer/cms-all), [`intlayer/cms-frontend`](https://hub.docker.com/r/intlayer/cms-frontend), [`intlayer/cms-backend`](https://hub.docker.com/r/intlayer/cms-backend), GHCR yansıması: `ghcr.io/aymericzip/intlayer/`
542
+ - [`docker/selfhost/`](https://github.com/aymericzip/intlayer/tree/main/docker/selfhost): Dockerfile, `docker-compose.yml`, `.env.template`