@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.
- package/README.md +104 -100
- package/dist/admin/auth.d.ts +24 -5
- package/dist/admin/auth.js +49 -25
- package/dist/admin/schema.d.ts +122 -32
- package/dist/admin/schema.js +131 -95
- package/dist/admin/seed.d.ts +1 -1
- package/dist/admin/seed.js +79 -47
- package/dist/auth/api-key-resolver.d.ts +1 -1
- package/dist/auth/api-key-resolver.js +7 -3
- package/dist/auth/archlast-auth-adapter.d.ts +2 -5
- package/dist/auth/archlast-auth-adapter.js +1 -1
- package/dist/auth/better-auth-adapter.d.ts.map +1 -1
- package/dist/auth/better-auth-adapter.js +41 -26
- package/dist/auth/better-auth-adapter.js.map +1 -1
- package/dist/auth/better-auth-admin.d.ts.map +1 -1
- package/dist/auth/better-auth-admin.js +1 -1
- package/dist/auth/better-auth-admin.js.map +1 -1
- package/dist/auth/better-auth-api-key-resolver.js +1 -1
- package/dist/auth/better-auth-api-key-resolver.js.map +1 -1
- package/dist/auth/better-auth-instance.d.ts +249 -301
- package/dist/auth/better-auth-instance.d.ts.map +1 -1
- package/dist/auth/better-auth-instance.js +11 -0
- package/dist/auth/better-auth-instance.js.map +1 -1
- package/dist/auth/better-auth-seed.d.ts +5 -2
- package/dist/auth/better-auth-seed.js +31 -22
- package/dist/auth/better-auth-session-adapter.d.ts.map +1 -1
- package/dist/auth/better-auth-session-adapter.js +14 -10
- package/dist/auth/better-auth-session-adapter.js.map +1 -1
- package/dist/auth/errors.d.ts.map +1 -1
- package/dist/auth/errors.js +11 -11
- package/dist/auth/errors.js.map +1 -1
- package/dist/auth/oauth-proxy.d.ts +5 -2
- package/dist/auth/oauth-proxy.js +23 -27
- package/dist/auth/resolver.d.ts.map +1 -1
- package/dist/auth/resolver.js.map +1 -1
- package/dist/auth/role-helpers.d.ts +1 -1
- package/dist/auth/role-helpers.d.ts.map +1 -1
- package/dist/auth/role-helpers.js.map +1 -1
- package/dist/auth/session-manager.d.ts +2 -5
- package/dist/auth/session-manager.js +16 -6
- package/dist/auth/system/better-auth-schema.d.ts.map +1 -1
- package/dist/auth/system/better-auth-schema.js +6 -23
- package/dist/auth/system/better-auth-schema.js.map +1 -1
- package/dist/cache/circuit-breaker.d.ts +81 -0
- package/dist/cache/circuit-breaker.d.ts.map +1 -0
- package/dist/cache/circuit-breaker.js +170 -0
- package/dist/cache/circuit-breaker.js.map +1 -0
- package/dist/cache/client.d.ts +6 -3
- package/dist/cache/client.d.ts.map +1 -1
- package/dist/cache/client.js +12 -53
- package/dist/cache/client.js.map +1 -1
- package/dist/cache/index.d.ts +2 -0
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/index.js +5 -1
- package/dist/cache/index.js.map +1 -1
- package/dist/cache/invalidation-queue.d.ts +63 -0
- package/dist/cache/invalidation-queue.d.ts.map +1 -0
- package/dist/cache/invalidation-queue.js +196 -0
- package/dist/cache/invalidation-queue.js.map +1 -0
- package/dist/cache/layers.d.ts +14 -4
- package/dist/cache/layers.d.ts.map +1 -1
- package/dist/cache/layers.js +66 -72
- package/dist/cache/layers.js.map +1 -1
- package/dist/cache/manager.d.ts.map +1 -1
- package/dist/cache/manager.js +6 -41
- package/dist/cache/manager.js.map +1 -1
- package/dist/cache/protocol.d.ts +4 -39
- package/dist/cache/protocol.d.ts.map +1 -1
- package/dist/cache/protocol.js.map +1 -1
- package/dist/cache/redis-adapter.d.ts +103 -0
- package/dist/cache/redis-adapter.d.ts.map +1 -0
- package/dist/cache/redis-adapter.js +424 -0
- package/dist/cache/redis-adapter.js.map +1 -0
- package/dist/cache/run-sidecar.js +10 -1
- package/dist/cache/run-sidecar.js.map +1 -1
- package/dist/cache/sidecar-server.d.ts +51 -1
- package/dist/cache/sidecar-server.d.ts.map +1 -1
- package/dist/cache/sidecar-server.js +368 -22
- package/dist/cache/sidecar-server.js.map +1 -1
- package/dist/cache/store.d.ts +43 -0
- package/dist/cache/store.d.ts.map +1 -1
- package/dist/cache/store.js +69 -76
- package/dist/cache/store.js.map +1 -1
- package/dist/cache/strategies.d.ts +2 -9
- package/dist/cache/strategies.d.ts.map +1 -1
- package/dist/cache/types.d.ts +130 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cache/types.js +60 -0
- package/dist/cache/types.js.map +1 -0
- package/dist/config/bullmq.d.ts +16 -0
- package/dist/config/bullmq.d.ts.map +1 -0
- package/dist/config/bullmq.js +103 -0
- package/dist/config/bullmq.js.map +1 -0
- package/dist/config/index.d.ts +1 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -0
- package/dist/config/index.js.map +1 -1
- package/dist/config/schema.d.ts +80 -6
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +71 -6
- package/dist/config/schema.js.map +1 -1
- package/dist/config/service.d.ts +54 -4
- package/dist/config/service.d.ts.map +1 -1
- package/dist/config/service.js +56 -2
- package/dist/config/service.js.map +1 -1
- package/dist/controllers/admin/admin-tokens.controller.d.ts +131 -115
- package/dist/controllers/admin/admin-tokens.controller.js +117 -98
- package/dist/controllers/admin/api-keys.controller.d.ts +1 -1
- package/dist/controllers/admin/api-keys.controller.d.ts.map +1 -1
- package/dist/controllers/admin/api-keys.controller.js.map +1 -1
- package/dist/controllers/admin/app-users.controller.d.ts +274 -243
- package/dist/controllers/admin/app-users.controller.js +301 -257
- package/dist/controllers/admin/auth.controller.d.ts +260 -236
- package/dist/controllers/admin/auth.controller.js +197 -174
- package/dist/controllers/admin/backup.controller.d.ts.map +1 -1
- package/dist/controllers/admin/backup.controller.js.map +1 -1
- package/dist/controllers/admin/settings.controller.d.ts +1 -1
- package/dist/controllers/admin/storage-stats.controller.d.ts +63 -0
- package/dist/controllers/admin/storage-stats.controller.d.ts.map +1 -0
- package/dist/controllers/admin/storage-stats.controller.js +33 -0
- package/dist/controllers/admin/storage-stats.controller.js.map +1 -0
- package/dist/controllers/admin/tenants.controller.d.ts.map +1 -1
- package/dist/controllers/admin/tenants.controller.js.map +1 -1
- package/dist/controllers/admin/users.controller.d.ts +1 -1
- package/dist/controllers/admin/users.controller.d.ts.map +1 -1
- package/dist/controllers/admin/users.controller.js.map +1 -1
- package/dist/controllers/auth.controller.d.ts +289 -271
- package/dist/controllers/auth.controller.js +275 -226
- package/dist/controllers/crud-generator.controller.d.ts.map +1 -1
- package/dist/controllers/crud-generator.controller.js +127 -125
- package/dist/controllers/crud-generator.controller.js.map +1 -1
- package/dist/controllers/index.d.ts +1 -1
- package/dist/controllers/index.d.ts.map +1 -1
- package/dist/controllers/index.js.map +1 -1
- package/dist/controllers/introspection.controller.d.ts +642 -0
- package/dist/controllers/introspection.controller.d.ts.map +1 -1
- package/dist/controllers/introspection.controller.js +611 -0
- package/dist/controllers/introspection.controller.js.map +1 -1
- package/dist/controllers/invite.controller.d.ts +190 -170
- package/dist/controllers/invite.controller.js +183 -164
- package/dist/controllers/mfa.controller.d.ts +205 -183
- package/dist/controllers/mfa.controller.js +131 -111
- package/dist/controllers/otp.controller.d.ts +194 -171
- package/dist/controllers/otp.controller.js +192 -175
- package/dist/controllers/storage.controller.d.ts.map +1 -1
- package/dist/controllers/storage.controller.js.map +1 -1
- package/dist/controllers/system.controller.d.ts +5 -3
- package/dist/controllers/system.controller.d.ts.map +1 -1
- package/dist/controllers/system.controller.js +4 -2
- package/dist/controllers/system.controller.js.map +1 -1
- package/dist/controllers/tenant.controller.d.ts +258 -227
- package/dist/controllers/tenant.controller.js +224 -200
- package/dist/db/cachedclient.d.ts +6 -11
- package/dist/db/cachedclient.d.ts.map +1 -1
- package/dist/db/cachedclient.js +79 -43
- package/dist/db/cachedclient.js.map +1 -1
- package/dist/db/distributed-client.d.ts +79 -24
- package/dist/db/distributed-client.js +23 -24
- package/dist/db/factory.d.ts +3 -8
- package/dist/db/factory.d.ts.map +1 -1
- package/dist/db/factory.js +3 -22
- package/dist/db/factory.js.map +1 -1
- package/dist/db/socket-client.d.ts +7 -0
- package/dist/db/socket-client.d.ts.map +1 -1
- package/dist/db/socket-client.js +140 -11
- package/dist/db/socket-client.js.map +1 -1
- package/dist/deployment/handler.d.ts +10 -2
- package/dist/deployment/handler.d.ts.map +1 -1
- package/dist/deployment/handler.js +70 -15
- package/dist/deployment/handler.js.map +1 -1
- package/dist/deployment/persistence.d.ts.map +1 -1
- package/dist/deployment/persistence.js +6 -1
- package/dist/deployment/persistence.js.map +1 -1
- package/dist/docker/compose.d.ts.map +1 -1
- package/dist/docker/compose.js +76 -0
- package/dist/docker/compose.js.map +1 -1
- package/dist/engine/runner.d.ts.map +1 -1
- package/dist/engine/runner.js +0 -43
- package/dist/engine/runner.js.map +1 -1
- package/dist/functions/built-in/auth-apikey.d.ts.map +1 -1
- package/dist/functions/built-in/auth-apikey.js.map +1 -1
- package/dist/functions/built-in/system-cache.d.ts.map +1 -1
- package/dist/functions/built-in/system-cache.js +6 -31
- package/dist/functions/built-in/system-cache.js.map +1 -1
- package/dist/functions/built-in/system-data.d.ts.map +1 -1
- package/dist/functions/built-in/system-data.js +4 -2
- package/dist/functions/built-in/system-data.js.map +1 -1
- package/dist/functions/definition.d.ts.map +1 -1
- package/dist/functions/definition.js +6 -2
- package/dist/functions/definition.js.map +1 -1
- package/dist/http/routes/metrics.d.ts +42 -0
- package/dist/http/routes/metrics.d.ts.map +1 -0
- package/dist/http/routes/metrics.js +29 -0
- package/dist/http/routes/metrics.js.map +1 -0
- package/dist/http/server.d.ts +1 -0
- package/dist/http/server.d.ts.map +1 -1
- package/dist/http/server.js +41 -3
- package/dist/http/server.js.map +1 -1
- package/dist/ipc/socket-bridge.d.ts +1 -0
- package/dist/ipc/socket-bridge.d.ts.map +1 -1
- package/dist/ipc/socket-bridge.js +5 -1
- package/dist/ipc/socket-bridge.js.map +1 -1
- package/dist/jobs/bullmq-adapter.d.ts +154 -0
- package/dist/jobs/bullmq-adapter.d.ts.map +1 -0
- package/dist/jobs/bullmq-adapter.js +688 -0
- package/dist/jobs/bullmq-adapter.js.map +1 -0
- package/dist/jobs/bullmq-circuit-breaker.d.ts +133 -0
- package/dist/jobs/bullmq-circuit-breaker.d.ts.map +1 -0
- package/dist/jobs/bullmq-circuit-breaker.js +323 -0
- package/dist/jobs/bullmq-circuit-breaker.js.map +1 -0
- package/dist/jobs/bullmq-dlq-manager.d.ts +155 -0
- package/dist/jobs/bullmq-dlq-manager.d.ts.map +1 -0
- package/dist/jobs/bullmq-dlq-manager.js +325 -0
- package/dist/jobs/bullmq-dlq-manager.js.map +1 -0
- package/dist/jobs/bullmq-metrics.d.ts +104 -0
- package/dist/jobs/bullmq-metrics.d.ts.map +1 -0
- package/dist/jobs/bullmq-metrics.js +323 -0
- package/dist/jobs/bullmq-metrics.js.map +1 -0
- package/dist/jobs/bullmq-priority-service.d.ts +173 -0
- package/dist/jobs/bullmq-priority-service.d.ts.map +1 -0
- package/dist/jobs/bullmq-priority-service.js +390 -0
- package/dist/jobs/bullmq-priority-service.js.map +1 -0
- package/dist/jobs/bullmq-scheduler.d.ts +111 -0
- package/dist/jobs/bullmq-scheduler.d.ts.map +1 -0
- package/dist/jobs/bullmq-scheduler.js +300 -0
- package/dist/jobs/bullmq-scheduler.js.map +1 -0
- package/dist/jobs/bullmq-worker.d.ts +155 -0
- package/dist/jobs/bullmq-worker.d.ts.map +1 -0
- package/dist/jobs/bullmq-worker.js +651 -0
- package/dist/jobs/bullmq-worker.js.map +1 -0
- package/dist/jobs/circuit-breaker.d.ts +120 -0
- package/dist/jobs/circuit-breaker.d.ts.map +1 -0
- package/dist/jobs/circuit-breaker.js +262 -0
- package/dist/jobs/circuit-breaker.js.map +1 -0
- package/dist/jobs/index.d.ts +1 -1
- package/dist/jobs/index.d.ts.map +1 -1
- package/dist/jobs/index.js.map +1 -1
- package/dist/jobs/queue.d.ts +120 -1
- package/dist/jobs/queue.d.ts.map +1 -1
- package/dist/jobs/queue.js +487 -9
- package/dist/jobs/queue.js.map +1 -1
- package/dist/jobs/redis-connection.d.ts +50 -0
- package/dist/jobs/redis-connection.d.ts.map +1 -0
- package/dist/jobs/redis-connection.js +123 -0
- package/dist/jobs/redis-connection.js.map +1 -0
- package/dist/jobs/run-scheduler.js +163 -10
- package/dist/jobs/run-scheduler.js.map +1 -1
- package/dist/jobs/run-worker.js +101 -9
- package/dist/jobs/run-worker.js.map +1 -1
- package/dist/jobs/worker-thread.d.ts +6 -0
- package/dist/jobs/worker-thread.d.ts.map +1 -1
- package/dist/jobs/worker-thread.js +37 -8
- package/dist/jobs/worker-thread.js.map +1 -1
- package/dist/jobs/worker.d.ts +33 -0
- package/dist/jobs/worker.d.ts.map +1 -1
- package/dist/jobs/worker.js +358 -115
- package/dist/jobs/worker.js.map +1 -1
- package/dist/linq/async-enumerable.d.ts.map +1 -1
- package/dist/linq/async-enumerable.js.map +1 -1
- package/dist/linq/enumerable.d.ts.map +1 -1
- package/dist/linq/enumerable.js +10 -10
- package/dist/linq/enumerable.js.map +1 -1
- package/dist/metrics/collector.d.ts +26 -0
- package/dist/metrics/collector.d.ts.map +1 -0
- package/dist/metrics/collector.js +103 -0
- package/dist/metrics/collector.js.map +1 -0
- package/dist/polling/updates.controller.d.ts +57 -0
- package/dist/polling/updates.controller.d.ts.map +1 -0
- package/dist/polling/updates.controller.js +70 -0
- package/dist/polling/updates.controller.js.map +1 -0
- package/dist/repository/db-set.d.ts.map +1 -1
- package/dist/repository/db-set.js +12 -8
- package/dist/repository/db-set.js.map +1 -1
- package/dist/repository/ef-core.d.ts.map +1 -1
- package/dist/repository/ef-core.js +6 -6
- package/dist/repository/ef-core.js.map +1 -1
- package/dist/repository/factory.d.ts +1 -1
- package/dist/repository/factory.d.ts.map +1 -1
- package/dist/repository/factory.js.map +1 -1
- package/dist/repository/interfaces.d.ts.map +1 -1
- package/dist/repository/interfaces.js.map +1 -1
- package/dist/repository/queryable.d.ts.map +1 -1
- package/dist/repository/queryable.js.map +1 -1
- package/dist/rpc/adapter.d.ts.map +1 -1
- package/dist/rpc/adapter.js.map +1 -1
- package/dist/rpc/router.d.ts +2 -2
- package/dist/rpc/router.d.ts.map +1 -1
- package/dist/rpc/router.js +1 -1
- package/dist/rpc/router.js.map +1 -1
- package/dist/schema/relationship-types.d.ts +7 -2
- package/dist/schema/relationship-types.js +1 -1
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/services/admin/app-users.service.d.ts +1 -1
- package/dist/services/admin/app-users.service.js +31 -38
- package/dist/services/admin/auth.service.d.ts +1 -1
- package/dist/services/admin/auth.service.js +11 -5
- package/dist/services/admin/backup/BackupOrchestrator.d.ts.map +1 -1
- package/dist/services/admin/backup/BackupOrchestrator.js +4 -7
- package/dist/services/admin/backup/BackupOrchestrator.js.map +1 -1
- package/dist/services/admin/backup/SqliteGenerator.js +8 -8
- package/dist/services/admin/backup/StorageStreamer.d.ts +3 -3
- package/dist/services/admin/backup/StorageStreamer.d.ts.map +1 -1
- package/dist/services/admin/backup/StorageStreamer.js +16 -55
- package/dist/services/admin/backup/StorageStreamer.js.map +1 -1
- package/dist/services/admin/backup/ZipComposer.d.ts +2 -0
- package/dist/services/admin/backup/ZipComposer.d.ts.map +1 -1
- package/dist/services/admin/backup/ZipComposer.js +23 -0
- package/dist/services/admin/backup/ZipComposer.js.map +1 -1
- package/dist/services/admin/backup.service.d.ts.map +1 -1
- package/dist/services/admin/backup.service.js.map +1 -1
- package/dist/services/admin/data.service.d.ts.map +1 -1
- package/dist/services/admin/data.service.js +287 -286
- package/dist/services/admin/data.service.js.map +1 -1
- package/dist/services/admin/tenants.service.d.ts.map +1 -1
- package/dist/services/admin/tenants.service.js.map +1 -1
- package/dist/services/auth.service.d.ts +2 -3
- package/dist/services/auth.service.js +16 -16
- package/dist/services/invite.service.d.ts +1 -1
- package/dist/services/invite.service.js +17 -15
- package/dist/services/storage.service.d.ts.map +1 -1
- package/dist/services/storage.service.js +35 -4
- package/dist/services/storage.service.js.map +1 -1
- package/dist/services/system.service.d.ts.map +1 -1
- package/dist/services/system.service.js +1 -1
- package/dist/services/system.service.js.map +1 -1
- package/dist/services/tenant.service.d.ts +1 -1
- package/dist/services/tenant.service.js +43 -31
- package/dist/sse/subscriptions.controller.d.ts +57 -0
- package/dist/sse/subscriptions.controller.d.ts.map +1 -0
- package/dist/sse/subscriptions.controller.js +127 -0
- package/dist/sse/subscriptions.controller.js.map +1 -0
- package/dist/startup/bootstrap.d.ts +13 -2
- package/dist/startup/bootstrap.d.ts.map +1 -1
- package/dist/startup/bootstrap.js +85 -13
- package/dist/startup/bootstrap.js.map +1 -1
- package/dist/storage/s3-backend.d.ts.map +1 -1
- package/dist/storage/s3-backend.js +3 -3
- package/dist/storage/s3-backend.js.map +1 -1
- package/dist/websocket/server.d.ts.map +1 -1
- package/dist/websocket/server.js +14 -3
- package/dist/websocket/server.js.map +1 -1
- package/docker/README.md +309 -11
- package/package.json +214 -210
- package/templates/.env.example +115 -55
- package/templates/archlast.config.js +51 -37
- package/templates/docker-compose.prod.yml +32 -15
- 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
|