@archlast/server 0.1.8 → 0.1.9

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 (347) hide show
  1. package/README.md +104 -100
  2. package/dist/admin/auth.d.ts +24 -5
  3. package/dist/admin/auth.js +49 -25
  4. package/dist/admin/schema.d.ts +122 -32
  5. package/dist/admin/schema.js +131 -95
  6. package/dist/admin/seed.d.ts +1 -1
  7. package/dist/admin/seed.js +79 -47
  8. package/dist/auth/api-key-resolver.d.ts +1 -1
  9. package/dist/auth/api-key-resolver.js +7 -3
  10. package/dist/auth/archlast-auth-adapter.d.ts +2 -5
  11. package/dist/auth/archlast-auth-adapter.js +1 -1
  12. package/dist/auth/better-auth-adapter.d.ts.map +1 -1
  13. package/dist/auth/better-auth-adapter.js +41 -26
  14. package/dist/auth/better-auth-adapter.js.map +1 -1
  15. package/dist/auth/better-auth-admin.d.ts.map +1 -1
  16. package/dist/auth/better-auth-admin.js +1 -1
  17. package/dist/auth/better-auth-admin.js.map +1 -1
  18. package/dist/auth/better-auth-api-key-resolver.js +1 -1
  19. package/dist/auth/better-auth-api-key-resolver.js.map +1 -1
  20. package/dist/auth/better-auth-instance.d.ts +249 -301
  21. package/dist/auth/better-auth-instance.d.ts.map +1 -1
  22. package/dist/auth/better-auth-instance.js +11 -0
  23. package/dist/auth/better-auth-instance.js.map +1 -1
  24. package/dist/auth/better-auth-seed.d.ts +5 -2
  25. package/dist/auth/better-auth-seed.js +31 -22
  26. package/dist/auth/better-auth-session-adapter.d.ts.map +1 -1
  27. package/dist/auth/better-auth-session-adapter.js +14 -10
  28. package/dist/auth/better-auth-session-adapter.js.map +1 -1
  29. package/dist/auth/errors.d.ts.map +1 -1
  30. package/dist/auth/errors.js +11 -11
  31. package/dist/auth/errors.js.map +1 -1
  32. package/dist/auth/oauth-proxy.d.ts +5 -2
  33. package/dist/auth/oauth-proxy.js +23 -27
  34. package/dist/auth/resolver.d.ts.map +1 -1
  35. package/dist/auth/resolver.js.map +1 -1
  36. package/dist/auth/role-helpers.d.ts +1 -1
  37. package/dist/auth/role-helpers.d.ts.map +1 -1
  38. package/dist/auth/role-helpers.js.map +1 -1
  39. package/dist/auth/session-manager.d.ts +2 -5
  40. package/dist/auth/session-manager.js +16 -6
  41. package/dist/auth/system/better-auth-schema.d.ts.map +1 -1
  42. package/dist/auth/system/better-auth-schema.js +6 -23
  43. package/dist/auth/system/better-auth-schema.js.map +1 -1
  44. package/dist/cache/circuit-breaker.d.ts +81 -0
  45. package/dist/cache/circuit-breaker.d.ts.map +1 -0
  46. package/dist/cache/circuit-breaker.js +170 -0
  47. package/dist/cache/circuit-breaker.js.map +1 -0
  48. package/dist/cache/client.d.ts +6 -3
  49. package/dist/cache/client.d.ts.map +1 -1
  50. package/dist/cache/client.js +12 -53
  51. package/dist/cache/client.js.map +1 -1
  52. package/dist/cache/index.d.ts +2 -0
  53. package/dist/cache/index.d.ts.map +1 -1
  54. package/dist/cache/index.js +5 -1
  55. package/dist/cache/index.js.map +1 -1
  56. package/dist/cache/invalidation-queue.d.ts +63 -0
  57. package/dist/cache/invalidation-queue.d.ts.map +1 -0
  58. package/dist/cache/invalidation-queue.js +196 -0
  59. package/dist/cache/invalidation-queue.js.map +1 -0
  60. package/dist/cache/layers.d.ts +14 -4
  61. package/dist/cache/layers.d.ts.map +1 -1
  62. package/dist/cache/layers.js +66 -72
  63. package/dist/cache/layers.js.map +1 -1
  64. package/dist/cache/manager.d.ts.map +1 -1
  65. package/dist/cache/manager.js +6 -41
  66. package/dist/cache/manager.js.map +1 -1
  67. package/dist/cache/protocol.d.ts +4 -39
  68. package/dist/cache/protocol.d.ts.map +1 -1
  69. package/dist/cache/protocol.js.map +1 -1
  70. package/dist/cache/redis-adapter.d.ts +103 -0
  71. package/dist/cache/redis-adapter.d.ts.map +1 -0
  72. package/dist/cache/redis-adapter.js +424 -0
  73. package/dist/cache/redis-adapter.js.map +1 -0
  74. package/dist/cache/run-sidecar.js +10 -1
  75. package/dist/cache/run-sidecar.js.map +1 -1
  76. package/dist/cache/sidecar-server.d.ts +51 -1
  77. package/dist/cache/sidecar-server.d.ts.map +1 -1
  78. package/dist/cache/sidecar-server.js +368 -22
  79. package/dist/cache/sidecar-server.js.map +1 -1
  80. package/dist/cache/store.d.ts +43 -0
  81. package/dist/cache/store.d.ts.map +1 -1
  82. package/dist/cache/store.js +69 -76
  83. package/dist/cache/store.js.map +1 -1
  84. package/dist/cache/strategies.d.ts +2 -9
  85. package/dist/cache/strategies.d.ts.map +1 -1
  86. package/dist/cache/types.d.ts +130 -0
  87. package/dist/cache/types.d.ts.map +1 -0
  88. package/dist/cache/types.js +60 -0
  89. package/dist/cache/types.js.map +1 -0
  90. package/dist/config/bullmq.d.ts +16 -0
  91. package/dist/config/bullmq.d.ts.map +1 -0
  92. package/dist/config/bullmq.js +103 -0
  93. package/dist/config/bullmq.js.map +1 -0
  94. package/dist/config/index.d.ts +1 -0
  95. package/dist/config/index.d.ts.map +1 -1
  96. package/dist/config/index.js +1 -0
  97. package/dist/config/index.js.map +1 -1
  98. package/dist/config/schema.d.ts +80 -6
  99. package/dist/config/schema.d.ts.map +1 -1
  100. package/dist/config/schema.js +71 -6
  101. package/dist/config/schema.js.map +1 -1
  102. package/dist/config/service.d.ts +54 -4
  103. package/dist/config/service.d.ts.map +1 -1
  104. package/dist/config/service.js +56 -2
  105. package/dist/config/service.js.map +1 -1
  106. package/dist/controllers/admin/admin-tokens.controller.d.ts +131 -115
  107. package/dist/controllers/admin/admin-tokens.controller.js +117 -98
  108. package/dist/controllers/admin/api-keys.controller.d.ts +1 -1
  109. package/dist/controllers/admin/api-keys.controller.d.ts.map +1 -1
  110. package/dist/controllers/admin/api-keys.controller.js.map +1 -1
  111. package/dist/controllers/admin/app-users.controller.d.ts +274 -243
  112. package/dist/controllers/admin/app-users.controller.js +301 -257
  113. package/dist/controllers/admin/auth.controller.d.ts +260 -236
  114. package/dist/controllers/admin/auth.controller.js +197 -174
  115. package/dist/controllers/admin/backup.controller.d.ts.map +1 -1
  116. package/dist/controllers/admin/backup.controller.js.map +1 -1
  117. package/dist/controllers/admin/settings.controller.d.ts +1 -1
  118. package/dist/controllers/admin/storage-stats.controller.d.ts +63 -0
  119. package/dist/controllers/admin/storage-stats.controller.d.ts.map +1 -0
  120. package/dist/controllers/admin/storage-stats.controller.js +33 -0
  121. package/dist/controllers/admin/storage-stats.controller.js.map +1 -0
  122. package/dist/controllers/admin/tenants.controller.d.ts.map +1 -1
  123. package/dist/controllers/admin/tenants.controller.js.map +1 -1
  124. package/dist/controllers/admin/users.controller.d.ts +1 -1
  125. package/dist/controllers/admin/users.controller.d.ts.map +1 -1
  126. package/dist/controllers/admin/users.controller.js.map +1 -1
  127. package/dist/controllers/auth.controller.d.ts +289 -271
  128. package/dist/controllers/auth.controller.js +275 -226
  129. package/dist/controllers/crud-generator.controller.d.ts.map +1 -1
  130. package/dist/controllers/crud-generator.controller.js +127 -125
  131. package/dist/controllers/crud-generator.controller.js.map +1 -1
  132. package/dist/controllers/index.d.ts +1 -1
  133. package/dist/controllers/index.d.ts.map +1 -1
  134. package/dist/controllers/index.js.map +1 -1
  135. package/dist/controllers/introspection.controller.d.ts +642 -0
  136. package/dist/controllers/introspection.controller.d.ts.map +1 -1
  137. package/dist/controllers/introspection.controller.js +611 -0
  138. package/dist/controllers/introspection.controller.js.map +1 -1
  139. package/dist/controllers/invite.controller.d.ts +190 -170
  140. package/dist/controllers/invite.controller.js +183 -164
  141. package/dist/controllers/mfa.controller.d.ts +205 -183
  142. package/dist/controllers/mfa.controller.js +131 -111
  143. package/dist/controllers/otp.controller.d.ts +194 -171
  144. package/dist/controllers/otp.controller.js +192 -175
  145. package/dist/controllers/storage.controller.d.ts.map +1 -1
  146. package/dist/controllers/storage.controller.js.map +1 -1
  147. package/dist/controllers/system.controller.d.ts +5 -3
  148. package/dist/controllers/system.controller.d.ts.map +1 -1
  149. package/dist/controllers/system.controller.js +4 -2
  150. package/dist/controllers/system.controller.js.map +1 -1
  151. package/dist/controllers/tenant.controller.d.ts +258 -227
  152. package/dist/controllers/tenant.controller.js +224 -200
  153. package/dist/db/cachedclient.d.ts +6 -11
  154. package/dist/db/cachedclient.d.ts.map +1 -1
  155. package/dist/db/cachedclient.js +79 -43
  156. package/dist/db/cachedclient.js.map +1 -1
  157. package/dist/db/distributed-client.d.ts +79 -24
  158. package/dist/db/distributed-client.js +23 -24
  159. package/dist/db/factory.d.ts +3 -8
  160. package/dist/db/factory.d.ts.map +1 -1
  161. package/dist/db/factory.js +3 -22
  162. package/dist/db/factory.js.map +1 -1
  163. package/dist/db/socket-client.d.ts +7 -0
  164. package/dist/db/socket-client.d.ts.map +1 -1
  165. package/dist/db/socket-client.js +140 -11
  166. package/dist/db/socket-client.js.map +1 -1
  167. package/dist/deployment/handler.d.ts +10 -2
  168. package/dist/deployment/handler.d.ts.map +1 -1
  169. package/dist/deployment/handler.js +70 -15
  170. package/dist/deployment/handler.js.map +1 -1
  171. package/dist/deployment/persistence.d.ts.map +1 -1
  172. package/dist/deployment/persistence.js +6 -1
  173. package/dist/deployment/persistence.js.map +1 -1
  174. package/dist/docker/compose.d.ts.map +1 -1
  175. package/dist/docker/compose.js +76 -0
  176. package/dist/docker/compose.js.map +1 -1
  177. package/dist/engine/runner.d.ts.map +1 -1
  178. package/dist/engine/runner.js +0 -43
  179. package/dist/engine/runner.js.map +1 -1
  180. package/dist/functions/built-in/auth-apikey.d.ts.map +1 -1
  181. package/dist/functions/built-in/auth-apikey.js.map +1 -1
  182. package/dist/functions/built-in/system-cache.d.ts.map +1 -1
  183. package/dist/functions/built-in/system-cache.js +6 -31
  184. package/dist/functions/built-in/system-cache.js.map +1 -1
  185. package/dist/functions/built-in/system-data.d.ts.map +1 -1
  186. package/dist/functions/built-in/system-data.js +4 -2
  187. package/dist/functions/built-in/system-data.js.map +1 -1
  188. package/dist/functions/definition.d.ts.map +1 -1
  189. package/dist/functions/definition.js +6 -2
  190. package/dist/functions/definition.js.map +1 -1
  191. package/dist/http/routes/metrics.d.ts +42 -0
  192. package/dist/http/routes/metrics.d.ts.map +1 -0
  193. package/dist/http/routes/metrics.js +29 -0
  194. package/dist/http/routes/metrics.js.map +1 -0
  195. package/dist/http/server.d.ts +1 -0
  196. package/dist/http/server.d.ts.map +1 -1
  197. package/dist/http/server.js +41 -3
  198. package/dist/http/server.js.map +1 -1
  199. package/dist/ipc/socket-bridge.d.ts +1 -0
  200. package/dist/ipc/socket-bridge.d.ts.map +1 -1
  201. package/dist/ipc/socket-bridge.js +5 -1
  202. package/dist/ipc/socket-bridge.js.map +1 -1
  203. package/dist/jobs/bullmq-adapter.d.ts +154 -0
  204. package/dist/jobs/bullmq-adapter.d.ts.map +1 -0
  205. package/dist/jobs/bullmq-adapter.js +688 -0
  206. package/dist/jobs/bullmq-adapter.js.map +1 -0
  207. package/dist/jobs/bullmq-circuit-breaker.d.ts +133 -0
  208. package/dist/jobs/bullmq-circuit-breaker.d.ts.map +1 -0
  209. package/dist/jobs/bullmq-circuit-breaker.js +323 -0
  210. package/dist/jobs/bullmq-circuit-breaker.js.map +1 -0
  211. package/dist/jobs/bullmq-dlq-manager.d.ts +155 -0
  212. package/dist/jobs/bullmq-dlq-manager.d.ts.map +1 -0
  213. package/dist/jobs/bullmq-dlq-manager.js +325 -0
  214. package/dist/jobs/bullmq-dlq-manager.js.map +1 -0
  215. package/dist/jobs/bullmq-metrics.d.ts +104 -0
  216. package/dist/jobs/bullmq-metrics.d.ts.map +1 -0
  217. package/dist/jobs/bullmq-metrics.js +323 -0
  218. package/dist/jobs/bullmq-metrics.js.map +1 -0
  219. package/dist/jobs/bullmq-priority-service.d.ts +173 -0
  220. package/dist/jobs/bullmq-priority-service.d.ts.map +1 -0
  221. package/dist/jobs/bullmq-priority-service.js +390 -0
  222. package/dist/jobs/bullmq-priority-service.js.map +1 -0
  223. package/dist/jobs/bullmq-scheduler.d.ts +111 -0
  224. package/dist/jobs/bullmq-scheduler.d.ts.map +1 -0
  225. package/dist/jobs/bullmq-scheduler.js +300 -0
  226. package/dist/jobs/bullmq-scheduler.js.map +1 -0
  227. package/dist/jobs/bullmq-worker.d.ts +155 -0
  228. package/dist/jobs/bullmq-worker.d.ts.map +1 -0
  229. package/dist/jobs/bullmq-worker.js +651 -0
  230. package/dist/jobs/bullmq-worker.js.map +1 -0
  231. package/dist/jobs/circuit-breaker.d.ts +120 -0
  232. package/dist/jobs/circuit-breaker.d.ts.map +1 -0
  233. package/dist/jobs/circuit-breaker.js +262 -0
  234. package/dist/jobs/circuit-breaker.js.map +1 -0
  235. package/dist/jobs/index.d.ts +1 -1
  236. package/dist/jobs/index.d.ts.map +1 -1
  237. package/dist/jobs/index.js.map +1 -1
  238. package/dist/jobs/queue.d.ts +120 -1
  239. package/dist/jobs/queue.d.ts.map +1 -1
  240. package/dist/jobs/queue.js +487 -9
  241. package/dist/jobs/queue.js.map +1 -1
  242. package/dist/jobs/redis-connection.d.ts +50 -0
  243. package/dist/jobs/redis-connection.d.ts.map +1 -0
  244. package/dist/jobs/redis-connection.js +123 -0
  245. package/dist/jobs/redis-connection.js.map +1 -0
  246. package/dist/jobs/run-scheduler.js +163 -10
  247. package/dist/jobs/run-scheduler.js.map +1 -1
  248. package/dist/jobs/run-worker.js +101 -9
  249. package/dist/jobs/run-worker.js.map +1 -1
  250. package/dist/jobs/worker-thread.d.ts +6 -0
  251. package/dist/jobs/worker-thread.d.ts.map +1 -1
  252. package/dist/jobs/worker-thread.js +37 -8
  253. package/dist/jobs/worker-thread.js.map +1 -1
  254. package/dist/jobs/worker.d.ts +33 -0
  255. package/dist/jobs/worker.d.ts.map +1 -1
  256. package/dist/jobs/worker.js +358 -115
  257. package/dist/jobs/worker.js.map +1 -1
  258. package/dist/linq/async-enumerable.d.ts.map +1 -1
  259. package/dist/linq/async-enumerable.js.map +1 -1
  260. package/dist/linq/enumerable.d.ts.map +1 -1
  261. package/dist/linq/enumerable.js +10 -10
  262. package/dist/linq/enumerable.js.map +1 -1
  263. package/dist/metrics/collector.d.ts +26 -0
  264. package/dist/metrics/collector.d.ts.map +1 -0
  265. package/dist/metrics/collector.js +103 -0
  266. package/dist/metrics/collector.js.map +1 -0
  267. package/dist/polling/updates.controller.d.ts +57 -0
  268. package/dist/polling/updates.controller.d.ts.map +1 -0
  269. package/dist/polling/updates.controller.js +70 -0
  270. package/dist/polling/updates.controller.js.map +1 -0
  271. package/dist/repository/db-set.d.ts.map +1 -1
  272. package/dist/repository/db-set.js +12 -8
  273. package/dist/repository/db-set.js.map +1 -1
  274. package/dist/repository/ef-core.d.ts.map +1 -1
  275. package/dist/repository/ef-core.js +6 -6
  276. package/dist/repository/ef-core.js.map +1 -1
  277. package/dist/repository/factory.d.ts +1 -1
  278. package/dist/repository/factory.d.ts.map +1 -1
  279. package/dist/repository/factory.js.map +1 -1
  280. package/dist/repository/interfaces.d.ts.map +1 -1
  281. package/dist/repository/interfaces.js.map +1 -1
  282. package/dist/repository/queryable.d.ts.map +1 -1
  283. package/dist/repository/queryable.js.map +1 -1
  284. package/dist/rpc/adapter.d.ts.map +1 -1
  285. package/dist/rpc/adapter.js.map +1 -1
  286. package/dist/rpc/router.d.ts +2 -2
  287. package/dist/rpc/router.d.ts.map +1 -1
  288. package/dist/rpc/router.js +1 -1
  289. package/dist/rpc/router.js.map +1 -1
  290. package/dist/schema/relationship-types.d.ts +7 -2
  291. package/dist/schema/relationship-types.js +1 -1
  292. package/dist/schema/types.d.ts.map +1 -1
  293. package/dist/services/admin/app-users.service.d.ts +1 -1
  294. package/dist/services/admin/app-users.service.js +31 -38
  295. package/dist/services/admin/auth.service.d.ts +1 -1
  296. package/dist/services/admin/auth.service.js +11 -5
  297. package/dist/services/admin/backup/BackupOrchestrator.d.ts.map +1 -1
  298. package/dist/services/admin/backup/BackupOrchestrator.js +4 -7
  299. package/dist/services/admin/backup/BackupOrchestrator.js.map +1 -1
  300. package/dist/services/admin/backup/SqliteGenerator.js +8 -8
  301. package/dist/services/admin/backup/StorageStreamer.d.ts +3 -3
  302. package/dist/services/admin/backup/StorageStreamer.d.ts.map +1 -1
  303. package/dist/services/admin/backup/StorageStreamer.js +16 -55
  304. package/dist/services/admin/backup/StorageStreamer.js.map +1 -1
  305. package/dist/services/admin/backup/ZipComposer.d.ts +2 -0
  306. package/dist/services/admin/backup/ZipComposer.d.ts.map +1 -1
  307. package/dist/services/admin/backup/ZipComposer.js +23 -0
  308. package/dist/services/admin/backup/ZipComposer.js.map +1 -1
  309. package/dist/services/admin/backup.service.d.ts.map +1 -1
  310. package/dist/services/admin/backup.service.js.map +1 -1
  311. package/dist/services/admin/data.service.d.ts.map +1 -1
  312. package/dist/services/admin/data.service.js +287 -286
  313. package/dist/services/admin/data.service.js.map +1 -1
  314. package/dist/services/admin/tenants.service.d.ts.map +1 -1
  315. package/dist/services/admin/tenants.service.js.map +1 -1
  316. package/dist/services/auth.service.d.ts +2 -3
  317. package/dist/services/auth.service.js +16 -16
  318. package/dist/services/invite.service.d.ts +1 -1
  319. package/dist/services/invite.service.js +17 -15
  320. package/dist/services/storage.service.d.ts.map +1 -1
  321. package/dist/services/storage.service.js +35 -4
  322. package/dist/services/storage.service.js.map +1 -1
  323. package/dist/services/system.service.d.ts.map +1 -1
  324. package/dist/services/system.service.js +1 -1
  325. package/dist/services/system.service.js.map +1 -1
  326. package/dist/services/tenant.service.d.ts +1 -1
  327. package/dist/services/tenant.service.js +43 -31
  328. package/dist/sse/subscriptions.controller.d.ts +57 -0
  329. package/dist/sse/subscriptions.controller.d.ts.map +1 -0
  330. package/dist/sse/subscriptions.controller.js +127 -0
  331. package/dist/sse/subscriptions.controller.js.map +1 -0
  332. package/dist/startup/bootstrap.d.ts +13 -2
  333. package/dist/startup/bootstrap.d.ts.map +1 -1
  334. package/dist/startup/bootstrap.js +85 -13
  335. package/dist/startup/bootstrap.js.map +1 -1
  336. package/dist/storage/s3-backend.d.ts.map +1 -1
  337. package/dist/storage/s3-backend.js +3 -3
  338. package/dist/storage/s3-backend.js.map +1 -1
  339. package/dist/websocket/server.d.ts.map +1 -1
  340. package/dist/websocket/server.js +14 -3
  341. package/dist/websocket/server.js.map +1 -1
  342. package/docker/README.md +309 -11
  343. package/package.json +214 -210
  344. package/templates/.env.example +115 -55
  345. package/templates/archlast.config.js +51 -37
  346. package/templates/docker-compose.prod.yml +32 -15
  347. package/templates/docker-compose.yml +117 -33
package/docker/README.md CHANGED
@@ -1,11 +1,309 @@
1
- # Archlast Docker Assets
2
-
3
- This folder is reserved for Docker build assets distributed with the
4
- `@archlast/server` package. The production Dockerfile and s6 service
5
- definitions live in the repository root under `docker/`.
6
-
7
- If you are packaging a runtime image, use the root `docker/Dockerfile` and the
8
- service definitions in `docker/s6-rc.d/*`.
9
-
10
- For local runtime via the CLI, use the templates bundled in
11
- `packages/server/templates/`.
1
+ # Archlast Docker Assets
2
+
3
+ This folder is reserved for Docker build assets distributed with the
4
+ `@archlast/server` package. The production Dockerfile and s6 service
5
+ definitions live in the repository root under `docker/`.
6
+
7
+ If you are packaging a runtime image, use the root `docker/Dockerfile` and the
8
+ service definitions in `docker/s6-rc.d/*`.
9
+
10
+ For local runtime via the CLI, use the templates bundled in
11
+ `packages/server/templates/`.
12
+
13
+ ## Docker Compose Deployment
14
+
15
+ The recommended way to deploy Archlast is using Docker Compose with the included services.
16
+
17
+ ### Services
18
+
19
+ - **archlast**: Main application server
20
+ - **redis**: In-memory data store for caching and sessions
21
+ - **minio**: S3-compatible object storage for file uploads
22
+ - **minio-init**: Initializes MinIO bucket on startup
23
+
24
+ ### Deployment Commands
25
+
26
+ #### Start All Services
27
+
28
+ For a complete deployment including supporting services (Redis, MinIO), use both compose files:
29
+
30
+ ```bash
31
+ # Start supporting services (Redis, MinIO) from root
32
+ docker-compose -f docker-compose.dev.yml up -d
33
+
34
+ # Start Archlast server
35
+ docker-compose -f packages/server/templates/docker-compose.yml up -d
36
+ ```
37
+
38
+ For production deployment with resource limits:
39
+
40
+ ```bash
41
+ docker-compose -f docker-compose.dev.yml up -d
42
+ docker-compose -f packages/server/templates/docker-compose.yml -f packages/server/templates/docker-compose.prod.yml up -d
43
+ ```
44
+
45
+ #### Stop All Services
46
+
47
+ ```bash
48
+ # Stop Archlast server
49
+ docker-compose -f packages/server/templates/docker-compose.yml down
50
+
51
+ # Stop supporting services
52
+ docker-compose -f docker-compose.dev.yml down
53
+ ```
54
+
55
+ #### Stop and Remove Volumes
56
+
57
+ ```bash
58
+ # Remove Archlast server and its data volume
59
+ docker-compose -f packages/server/templates/docker-compose.yml down -v
60
+
61
+ # Remove supporting services and their volumes
62
+ docker-compose -f docker-compose.dev.yml down -v
63
+ ```
64
+
65
+ ### Health Check Verification
66
+
67
+ #### Check Service Status
68
+
69
+ ```bash
70
+ docker-compose -f packages/server/templates/docker-compose.yml ps
71
+ docker-compose -f docker-compose.dev.yml ps
72
+ ```
73
+
74
+ #### Check Logs
75
+
76
+ ```bash
77
+ # Archlast server logs
78
+ docker-compose -f packages/server/templates/docker-compose.yml logs -f
79
+
80
+ # Supporting services logs
81
+ docker-compose -f docker-compose.dev.yml logs -f
82
+
83
+ # Specific service logs
84
+ docker-compose -f docker-compose.dev.yml logs -f redis
85
+ docker-compose -f docker-compose.dev.yml logs -f minio
86
+ ```
87
+
88
+ #### Check Redis Health
89
+
90
+ ```bash
91
+ docker-compose -f docker-compose.dev.yml exec redis redis-cli ping
92
+ # Expected response: PONG
93
+
94
+ # If Redis has a password set:
95
+ docker-compose -f docker-compose.dev.yml exec redis redis-cli -a "$REDIS_PASSWORD" ping
96
+ ```
97
+
98
+ #### Check MinIO Health
99
+
100
+ ```bash
101
+ # MinIO liveness check
102
+ curl -f http://localhost:9000/minio/health/live
103
+ # Should return 200 OK
104
+
105
+ # MinIO readiness check
106
+ curl -f http://localhost:9000/minio/health/ready
107
+ ```
108
+
109
+ #### Check Archlast Health
110
+
111
+ ```bash
112
+ curl -f http://localhost:4000/health
113
+ # Should return 200 OK with health status JSON
114
+ ```
115
+
116
+ ### Troubleshooting
117
+
118
+ #### Services Won't Start
119
+
120
+ 1. **Check port conflicts**:
121
+
122
+ ```bash
123
+ # Check if ports are already in use
124
+ netstat -tlnp | grep -E '(4000|6379|9000|9001)'
125
+ ```
126
+
127
+ 2. **Check container logs**:
128
+
129
+ ```bash
130
+ docker-compose -f packages/server/templates/docker-compose.yml logs archlast
131
+ docker-compose -f docker-compose.dev.yml logs
132
+ ```
133
+
134
+ 3. **Check Docker daemon**:
135
+ ```bash
136
+ docker info
137
+ ```
138
+
139
+ #### Can't Connect to Redis
140
+
141
+ 1. **Verify Redis is healthy**:
142
+
143
+ ```bash
144
+ docker-compose -f docker-compose.dev.yml ps redis
145
+ # Status should show "healthy"
146
+ ```
147
+
148
+ 2. **Check Redis logs**:
149
+
150
+ ```bash
151
+ docker-compose -f docker-compose.dev.yml logs redis
152
+ ```
153
+
154
+ 3. **Test connection**:
155
+
156
+ ```bash
157
+ docker-compose -f docker-compose.dev.yml exec redis redis-cli ping
158
+ ```
159
+
160
+ 4. **Verify network connectivity**:
161
+ ```bash
162
+ docker-compose -f docker-compose.dev.yml exec archlast sh -c "nc -zv redis 6379"
163
+ ```
164
+
165
+ #### MinIO Bucket Not Created
166
+
167
+ 1. **Check minio-init logs**:
168
+
169
+ ```bash
170
+ docker-compose -f docker-compose.dev.yml logs minio-init
171
+ ```
172
+
173
+ 2. **Verify MinIO is healthy**:
174
+
175
+ ```bash
176
+ docker-compose -f docker-compose.dev.yml ps minio
177
+ ```
178
+
179
+ 3. **Manually create bucket**:
180
+
181
+ ```bash
182
+ docker-compose -f docker-compose.dev.yml exec minio-init /bin/sh -c "
183
+ mc alias set myminio http://minio:9000 minioadmin minioadmin &&
184
+ mc mb myminio/archlast-storage --ignore-existing
185
+ "
186
+ ```
187
+
188
+ 4. **Access MinIO Console**:
189
+ - Open http://localhost:9001 in your browser
190
+ - Login with `minioadmin` / `minioadmin`
191
+
192
+ #### Archlast Server Not Responding
193
+
194
+ 1. **Check health endpoint**:
195
+
196
+ ```bash
197
+ curl -v http://localhost:4000/health
198
+ ```
199
+
200
+ 2. **Check container status**:
201
+
202
+ ```bash
203
+ docker-compose -f packages/server/templates/docker-compose.yml ps
204
+ ```
205
+
206
+ 3. **Review startup logs**:
207
+
208
+ ```bash
209
+ docker-compose -f packages/server/templates/docker-compose.yml logs -f archlast
210
+ ```
211
+
212
+ 4. **Verify configuration**:
213
+ ```bash
214
+ # Check if config directory exists
215
+ ls -la ./config
216
+ ```
217
+
218
+ ### Production Deployment Considerations
219
+
220
+ #### Use Production Compose Override
221
+
222
+ ```bash
223
+ docker-compose -f packages/server/templates/docker-compose.yml \
224
+ -f packages/server/templates/docker-compose.prod.yml up -d
225
+ ```
226
+
227
+ The production override applies:
228
+
229
+ - `NODE_ENV=production`
230
+ - Resource limits (2 CPUs, 1GB memory)
231
+ - Memory reservation (256MB minimum)
232
+
233
+ #### Change Default Credentials
234
+
235
+ **Redis Password** (set in `.env` or environment):
236
+
237
+ ```bash
238
+ REDIS_PASSWORD=your-secure-password
239
+ ```
240
+
241
+ **MinIO Credentials** (modify `docker-compose.dev.yml` or use environment):
242
+
243
+ ```bash
244
+ MINIO_ROOT_USER=your-admin-user
245
+ MINIO_ROOT_PASSWORD=your-secure-password
246
+ ```
247
+
248
+ #### Configure Backups
249
+
250
+ 1. **Redis Data Backup**:
251
+
252
+ ```bash
253
+ # Create a backup of the redis-data volume
254
+ docker run --rm -v redis-data:/data -v $(pwd)/backups:/backup alpine \
255
+ tar czf /backup/redis-backup-$(date +%Y%m%d).tar.gz /data
256
+ ```
257
+
258
+ 2. **MinIO Data Backup**:
259
+
260
+ ```bash
261
+ # Use mc mirror to backup to another location
262
+ mc mirror local/archlast-storage /backup/minio-backup
263
+ ```
264
+
265
+ 3. **Archlast Data Backup**:
266
+ ```bash
267
+ # Backup the archlast-data volume
268
+ docker run --rm -v archlast-data:/data -v $(pwd)/backups:/backup alpine \
269
+ tar czf /backup/archlast-backup-$(date +%Y%m%d).tar.gz /data
270
+ ```
271
+
272
+ #### High Availability Considerations
273
+
274
+ For production deployments requiring high availability, consider:
275
+
276
+ 1. **External Redis**:
277
+ - Use a managed Redis service (AWS ElastiCache, Redis Cloud, etc.)
278
+ - Update environment variable `REDIS_URL` in Archlast configuration
279
+ - Remove local Redis from compose file
280
+
281
+ 2. **External MinIO/S3**:
282
+ - Use AWS S3, Google Cloud Storage, or managed MinIO
283
+ - Update storage configuration in Archlast
284
+ - Remove local MinIO from compose file
285
+
286
+ 3. **External Database**:
287
+ - Use managed PostgreSQL/MySQL for persistence
288
+ - Configure Archlast to use external database
289
+
290
+ 4. **Load Balancing**:
291
+ - Deploy multiple Archlast instances behind a load balancer
292
+ - Use Docker Swarm or Kubernetes for orchestration
293
+
294
+ 5. **Monitoring**:
295
+ - Integrate with Prometheus/Grafana for metrics
296
+ - Set up log aggregation (ELK stack, Loki, etc.)
297
+
298
+ #### Security Checklist
299
+
300
+ - [ ] Change all default passwords
301
+ - [ ] Use secrets management (Docker secrets, Vault)
302
+ - [ ] Enable TLS for all endpoints
303
+ - [ ] Configure firewall rules
304
+ - [ ] Set up SSL/TLS certificates
305
+ - [ ] Enable authentication for Redis
306
+ - [ ] Configure MinIO with proper access policies
307
+ - [ ] Review and limit exposed ports
308
+ - [ ] Enable container resource limits
309
+ - [ ] Set up regular backups