Docker Compose refactoring
This commit is contained in:
parent
7a2a667aaf
commit
a53a26f4c0
36 changed files with 411 additions and 524 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -15,7 +15,6 @@ npm-debug.log*
|
||||||
.idea/
|
.idea/
|
||||||
*.szpm
|
*.szpm
|
||||||
.env*
|
.env*
|
||||||
yarn-error.log
|
|
||||||
docker-compose.yml
|
docker-compose.yml
|
||||||
coverage
|
coverage
|
||||||
.pgpass
|
.pgpass
|
||||||
|
|
|
||||||
8
Makefile
8
Makefile
|
|
@ -63,19 +63,19 @@ create-admin-user:
|
||||||
@test -f .env || echo "You must create .env please refer to the README" && exit 1
|
@test -f .env || echo "You must create .env please refer to the README" && exit 1
|
||||||
|
|
||||||
start: .env
|
start: .env
|
||||||
CURRENT_UID=$(CURRENT_UID) docker-compose up -d
|
CURRENT_UID=$(CURRENT_UID) docker compose -f docker-compose.link.yml up -d
|
||||||
|
|
||||||
start-dev: .env
|
start-dev: .env
|
||||||
CURRENT_UID=$(CURRENT_UID) docker-compose up --build -d
|
CURRENT_UID=$(CURRENT_UID) docker compose up --build -d
|
||||||
|
|
||||||
restart: .env
|
restart: .env
|
||||||
CURRENT_UID=$(CURRENT_UID) docker restart $(shell docker ps -a -q)
|
CURRENT_UID=$(CURRENT_UID) docker restart $(shell docker ps -a -q)
|
||||||
|
|
||||||
stop:
|
stop:
|
||||||
CURRENT_UID=$(CURRENT_UID) docker-compose down
|
CURRENT_UID=$(CURRENT_UID) docker compose down
|
||||||
|
|
||||||
destroy:
|
destroy:
|
||||||
docker-compose down
|
docker compose down
|
||||||
docker volume prune
|
docker volume prune
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,5 @@
|
||||||
**/coverage
|
**/coverage
|
||||||
**/.next
|
**/.next
|
||||||
**/amigo.*.json
|
**/amigo.*.json
|
||||||
**/.yalc
|
|
||||||
**/cypress/videos
|
**/cypress/videos
|
||||||
**/cypress/screenshots
|
**/cypress/screenshots
|
||||||
|
|
|
||||||
2
apps/leafcutter/.gitignore
vendored
2
apps/leafcutter/.gitignore
vendored
|
|
@ -21,8 +21,6 @@
|
||||||
|
|
||||||
# debug
|
# debug
|
||||||
npm-debug.log*
|
npm-debug.log*
|
||||||
yarn-debug.log*
|
|
||||||
yarn-error.log*
|
|
||||||
|
|
||||||
# local env files
|
# local env files
|
||||||
.env.local
|
.env.local
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,6 @@ First, run the development server:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm run dev
|
npm run dev
|
||||||
# or
|
|
||||||
yarn dev
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,6 @@ First, run the development server:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm run dev
|
npm run dev
|
||||||
# or
|
|
||||||
yarn dev
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,8 @@ const checkRewrites = async (request: NextRequestWithAuth) => {
|
||||||
const metamigoURL = process.env.METAMIGO_URL ?? "http://metamigo:3000";
|
const metamigoURL = process.env.METAMIGO_URL ?? "http://metamigo:3000";
|
||||||
|
|
||||||
if (request.nextUrl.pathname.startsWith('/proxy/leafcutter')) {
|
if (request.nextUrl.pathname.startsWith('/proxy/leafcutter')) {
|
||||||
return rewriteURL(request, linkBaseURL, leafcutterURL);
|
const headers = { 'X-Leafcutter-Embedded': "true" };
|
||||||
|
return rewriteURL(request, linkBaseURL, leafcutterURL, headers);
|
||||||
} else if (request.nextUrl.pathname.startsWith('/proxy/metamigo')) {
|
} else if (request.nextUrl.pathname.startsWith('/proxy/metamigo')) {
|
||||||
return rewriteURL(request, linkBaseURL, metamigoURL);
|
return rewriteURL(request, linkBaseURL, metamigoURL);
|
||||||
} else if (request.nextUrl.pathname.startsWith('/proxy/zammad')) {
|
} else if (request.nextUrl.pathname.startsWith('/proxy/zammad')) {
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,5 @@
|
||||||
**/coverage
|
**/coverage
|
||||||
**/.next
|
**/.next
|
||||||
**/amigo.*.json
|
**/amigo.*.json
|
||||||
**/.yalc
|
|
||||||
**/cypress/videos
|
**/cypress/videos
|
||||||
**/cypress/screenshots
|
**/cypress/screenshots
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,5 @@
|
||||||
**/coverage
|
**/coverage
|
||||||
**/.next
|
**/.next
|
||||||
**/amigo.*.json
|
**/amigo.*.json
|
||||||
**/.yalc
|
|
||||||
**/cypress/videos
|
**/cypress/videos
|
||||||
**/cypress/screenshots
|
**/cypress/screenshots
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ module.exports = {
|
||||||
"eslint-config-link/profile/node",
|
"eslint-config-link/profile/node",
|
||||||
"eslint-config-link/profile/typescript",
|
"eslint-config-link/profile/typescript",
|
||||||
"eslint-config-link/profile/jest",
|
"eslint-config-link/profile/jest",
|
||||||
"eslint-config-next",
|
"next",
|
||||||
],
|
],
|
||||||
parserOptions: { tsconfigRootDir: __dirname },
|
parserOptions: { tsconfigRootDir: __dirname },
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,5 @@
|
||||||
**/coverage
|
**/coverage
|
||||||
**/.next
|
**/.next
|
||||||
**/amigo.*.json
|
**/amigo.*.json
|
||||||
**/.yalc
|
|
||||||
**/cypress/videos
|
**/cypress/videos
|
||||||
**/cypress/screenshots
|
**/cypress/screenshots
|
||||||
|
|
|
||||||
20
docker-compose.leafcutter.yml
Normal file
20
docker-compose.leafcutter.yml
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
version: "3.4"
|
||||||
|
|
||||||
|
services:
|
||||||
|
leafcutter:
|
||||||
|
container_name: leafcutter
|
||||||
|
restart: ${RESTART}
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: ./apps/leafcutter/Dockerfile
|
||||||
|
image: registry.gitlab.com/digiresilience/link/link-stack/leafcutter:${LINK_STACK_VERSION}
|
||||||
|
expose:
|
||||||
|
- "3000"
|
||||||
|
ports:
|
||||||
|
- "8005:3000"
|
||||||
|
environment:
|
||||||
|
NEXTAUTH_URL: ${LINK_URL}
|
||||||
|
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
|
||||||
|
NEXTAUTH_AUDIENCE: ${NEXTAUTH_AUDIENCE}
|
||||||
|
NEXTAUTH_SIGNING_KEY_B64: ${NEXTAUTH_SIGNING_KEY_B64}
|
||||||
|
NEXTAUTH_ENCRYPTION_KEY_B64: ${NEXTAUTH_ENCRYPTION_KEY_B64}
|
||||||
29
docker-compose.link.yml
Normal file
29
docker-compose.link.yml
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
version: "3.4"
|
||||||
|
|
||||||
|
services:
|
||||||
|
link:
|
||||||
|
container_name: link
|
||||||
|
restart: ${RESTART}
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: ./apps/link/Dockerfile
|
||||||
|
image: registry.gitlab.com/digiresilience/link/link-stack/link:${LINK_STACK_VERSION}
|
||||||
|
expose:
|
||||||
|
- "3000"
|
||||||
|
ports:
|
||||||
|
- "8004:3000"
|
||||||
|
environment:
|
||||||
|
ZAMMAD_PROXY_URL: ${ZAMMAD_PROXY_URL}
|
||||||
|
ZAMMAD_API_TOKEN: ${ZAMMAD_API_TOKEN}
|
||||||
|
ZAMMAD_VIRUAL_HOST: ${ZAMMAD_VIRTUAL_HOST}
|
||||||
|
LINK_URL: ${LINK_URL}
|
||||||
|
LEAFCUTTER_URL: http://leafcutter:3000
|
||||||
|
METAMIGO_URL: http://metamigo-frontend:3000
|
||||||
|
ZAMMAD_URL: http://localhost:8001
|
||||||
|
NEXTAUTH_URL: ${LINK_URL}
|
||||||
|
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
|
||||||
|
NEXTAUTH_AUDIENCE: ${NEXTAUTH_AUDIENCE}
|
||||||
|
NEXTAUTH_SIGNING_KEY_B64: ${NEXTAUTH_SIGNING_KEY_B64}
|
||||||
|
NEXTAUTH_ENCRYPTION_KEY_B64: ${NEXTAUTH_ENCRYPTION_KEY_B64}
|
||||||
|
GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID}
|
||||||
|
GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET}
|
||||||
53
docker-compose.metamigo-postgresql.yml
Normal file
53
docker-compose.metamigo-postgresql.yml
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
version: "3.4"
|
||||||
|
|
||||||
|
x-metamigo-vars:
|
||||||
|
&common-metamigo-variables
|
||||||
|
DATABASE_HOST: "metamigo-postgresql"
|
||||||
|
DATABASE_NAME: "metamigo"
|
||||||
|
DATABASE_ROOT_OWNER: "root"
|
||||||
|
DATABASE_ROOT_PASSWORD: ${METAMIGO_DATABASE_ROOT_PASSWORD}
|
||||||
|
DATABASE_OWNER: "metamigo"
|
||||||
|
DATABASE_PASSWORD: ${METAMIGO_DATABASE_PASSWORD}
|
||||||
|
DATABASE_VISITOR: "app_visitor"
|
||||||
|
DATABASE_AUTHENTICATOR: "app_graphile_auth"
|
||||||
|
DATABASE_AUTHENTICATOR_PASSWORD: ${METAMIGO_DATABASE_AUTHENTICATOR_PASSWORD}
|
||||||
|
DATABASE_URL: "postgresql://metamigo:${METAMIGO_DATABASE_PASSWORD}@metamigo-postgresql/metamigo"
|
||||||
|
WORKER_DATABASE_URL: "postgresql://metamigo:${METAMIGO_DATABASE_PASSWORD}@metamigo-postgresql/metamigo"
|
||||||
|
SHADOW_DATABASE_URL: "postgresql://metamigo:${METAMIGO_DATABASE_PASSWORD}@metamigo-postgresql/metamigo_shadow"
|
||||||
|
ROOT_DATABASE_URL: "postgresql://metamigo:${METAMIGO_DATABASE_PASSWORD}@metamigo-postgresql/template1"
|
||||||
|
APP_ROOT_DATABASE_URL: "postgresql://root:${METAMIGO_DATABASE_ROOT_PASSWORD}@metamigo-postgresql/metamigo"
|
||||||
|
DATABASE_AUTH_URL: "postgresql://app_graphile_auth:${METAMIGO_DATABASE_AUTHENTICATOR_PASSWORD}@metamigo-postgresql/metamigo"
|
||||||
|
CORS_ALLOWED_ORIGINS: "https://metamigo-api,${METAMIGO_DOMAIN},http://localhost:3000,http://127.0.0.1:3000"
|
||||||
|
FRONTEND_URL: ${METAMIGO_DOMAIN}
|
||||||
|
API_URL: "http://metamigo-api:3001"
|
||||||
|
NEXTAUTH_URL: ${METAMIGO_DOMAIN}
|
||||||
|
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
|
||||||
|
NEXTAUTH_AUDIENCE: ${NEXTAUTH_AUDIENCE}
|
||||||
|
NEXTAUTH_SIGNING_KEY_B64: ${NEXTAUTH_SIGNING_KEY_B64}
|
||||||
|
NEXTAUTH_ENCRYPTION_KEY_B64: ${NEXTAUTH_ENCRYPTION_KEY_B64}
|
||||||
|
GITLAB_EMAIL_ADDRESS: ${GITLAB_EMAIL_ADDRESS}
|
||||||
|
GITLAB_ID: ${GITLAB_ID}
|
||||||
|
GITLAB_SECRET: ${GITLAB_SECRET}
|
||||||
|
SIGNALD_ENABLED: "true"
|
||||||
|
SIGNALD_SOCKET: /signald/signald.sock
|
||||||
|
|
||||||
|
services:
|
||||||
|
metamigo-postgresql:
|
||||||
|
build: ./docker/postgresql
|
||||||
|
image: registry.gitlab.com/digiresilience/link/link-stack/postgresql:${LINK_STACK_VERSION}
|
||||||
|
container_name: metamigo-postgresql
|
||||||
|
restart: ${RESTART}
|
||||||
|
volumes:
|
||||||
|
- metamigo-data:/var/lib/postgresql/data
|
||||||
|
- ./scripts/bootstrap-metamigo.sh:/docker-entrypoint-initdb.d/bootstrap-metamigo.sh
|
||||||
|
environment:
|
||||||
|
<<: *common-metamigo-variables
|
||||||
|
POSTGRES_PASSWORD: ${METAMIGO_DATABASE_ROOT_PASSWORD}
|
||||||
|
POSTGRES_USER: "root"
|
||||||
|
POSTGRES_DB: "metamigo"
|
||||||
|
ports:
|
||||||
|
- 127.0.0.1:5433:5432
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
metamigo-data:
|
||||||
|
driver: local
|
||||||
96
docker-compose.metamigo.yml
Normal file
96
docker-compose.metamigo.yml
Normal file
|
|
@ -0,0 +1,96 @@
|
||||||
|
version: "3.4"
|
||||||
|
|
||||||
|
x-global-vars:
|
||||||
|
&common-global-variables
|
||||||
|
TZ: Etc/UTC
|
||||||
|
|
||||||
|
x-metamigo-vars:
|
||||||
|
&common-metamigo-variables
|
||||||
|
DATABASE_HOST: "metamigo-postgresql"
|
||||||
|
DATABASE_NAME: "metamigo"
|
||||||
|
DATABASE_ROOT_OWNER: "root"
|
||||||
|
DATABASE_ROOT_PASSWORD: ${METAMIGO_DATABASE_ROOT_PASSWORD}
|
||||||
|
DATABASE_OWNER: "metamigo"
|
||||||
|
DATABASE_PASSWORD: ${METAMIGO_DATABASE_PASSWORD}
|
||||||
|
DATABASE_VISITOR: "app_visitor"
|
||||||
|
DATABASE_AUTHENTICATOR: "app_graphile_auth"
|
||||||
|
DATABASE_AUTHENTICATOR_PASSWORD: ${METAMIGO_DATABASE_AUTHENTICATOR_PASSWORD}
|
||||||
|
DATABASE_URL: "postgresql://metamigo:${METAMIGO_DATABASE_PASSWORD}@metamigo-postgresql/metamigo"
|
||||||
|
WORKER_DATABASE_URL: "postgresql://metamigo:${METAMIGO_DATABASE_PASSWORD}@metamigo-postgresql/metamigo"
|
||||||
|
SHADOW_DATABASE_URL: "postgresql://metamigo:${METAMIGO_DATABASE_PASSWORD}@metamigo-postgresql/metamigo_shadow"
|
||||||
|
ROOT_DATABASE_URL: "postgresql://metamigo:${METAMIGO_DATABASE_PASSWORD}@metamigo-postgresql/template1"
|
||||||
|
APP_ROOT_DATABASE_URL: "postgresql://root:${METAMIGO_DATABASE_ROOT_PASSWORD}@metamigo-postgresql/metamigo"
|
||||||
|
DATABASE_AUTH_URL: "postgresql://app_graphile_auth:${METAMIGO_DATABASE_AUTHENTICATOR_PASSWORD}@metamigo-postgresql/metamigo"
|
||||||
|
CORS_ALLOWED_ORIGINS: "https://metamigo-api,${METAMIGO_DOMAIN},http://localhost:3000,http://127.0.0.1:3000"
|
||||||
|
FRONTEND_URL: ${METAMIGO_DOMAIN}
|
||||||
|
API_URL: "http://metamigo-api:3001"
|
||||||
|
NEXTAUTH_URL: ${METAMIGO_DOMAIN}
|
||||||
|
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
|
||||||
|
NEXTAUTH_AUDIENCE: ${NEXTAUTH_AUDIENCE}
|
||||||
|
NEXTAUTH_SIGNING_KEY_B64: ${NEXTAUTH_SIGNING_KEY_B64}
|
||||||
|
NEXTAUTH_ENCRYPTION_KEY_B64: ${NEXTAUTH_ENCRYPTION_KEY_B64}
|
||||||
|
GITLAB_EMAIL_ADDRESS: ${GITLAB_EMAIL_ADDRESS}
|
||||||
|
GITLAB_ID: ${GITLAB_ID}
|
||||||
|
GITLAB_SECRET: ${GITLAB_SECRET}
|
||||||
|
SIGNALD_ENABLED: "true"
|
||||||
|
SIGNALD_SOCKET: /signald/signald.sock
|
||||||
|
|
||||||
|
services:
|
||||||
|
metamigo-api:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: ./apps/metamigo-cli/Dockerfile
|
||||||
|
image: registry.gitlab.com/digiresilience/link/link-stack/metamigo:${LINK_STACK_VERSION}
|
||||||
|
container_name: metamigo-api
|
||||||
|
restart: ${RESTART}
|
||||||
|
command: [ "api" ]
|
||||||
|
ports:
|
||||||
|
- 127.0.0.1:8003:3001
|
||||||
|
environment: *common-metamigo-variables
|
||||||
|
volumes:
|
||||||
|
- ./signald-state:/signald
|
||||||
|
depends_on:
|
||||||
|
- metamigo-postgresql
|
||||||
|
- signald
|
||||||
|
|
||||||
|
metamigo-frontend:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: ./apps/metamigo-frontend/Dockerfile
|
||||||
|
image: registry.gitlab.com/digiresilience/link/link-stack/metamigo-frontend:${LINK_STACK_VERSION}
|
||||||
|
container_name: metamigo-frontend
|
||||||
|
restart: ${RESTART}
|
||||||
|
expose:
|
||||||
|
- "3000"
|
||||||
|
ports:
|
||||||
|
- 127.0.0.1:8002:3000
|
||||||
|
depends_on:
|
||||||
|
- metamigo-api
|
||||||
|
environment:
|
||||||
|
<<: *common-metamigo-variables
|
||||||
|
VIRTUAL_HOST: ${METAMIGO_VIRTUAL_HOST}
|
||||||
|
VIRTUAL_PORT: 3000
|
||||||
|
|
||||||
|
metamigo-worker:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: ./apps/metamigo-cli/Dockerfile
|
||||||
|
image: registry.gitlab.com/digiresilience/link/link-stack/metamigo:${LINK_STACK_VERSION}
|
||||||
|
container_name: metamigo-worker
|
||||||
|
restart: ${RESTART}
|
||||||
|
command: [ "worker" ]
|
||||||
|
environment: *common-metamigo-variables
|
||||||
|
depends_on:
|
||||||
|
- metamigo-api
|
||||||
|
|
||||||
|
signald:
|
||||||
|
container_name: signald
|
||||||
|
build: ./docker/signald
|
||||||
|
image: registry.gitlab.com/digiresilience/link/link-stack/signald:${LINK_STACK_VERSION}
|
||||||
|
restart: ${RESTART}
|
||||||
|
user: ${CURRENT_UID}
|
||||||
|
volumes:
|
||||||
|
- ./signald-state:/signald
|
||||||
|
environment:
|
||||||
|
<<: *common-global-variables
|
||||||
|
|
||||||
11
docker-compose.nginx-proxy.yml
Normal file
11
docker-compose.nginx-proxy.yml
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
version: "3.4"
|
||||||
|
|
||||||
|
services:
|
||||||
|
nginx-proxy:
|
||||||
|
container_name: nginx-proxy
|
||||||
|
build: ./docker/nginx-proxy
|
||||||
|
restart: ${RESTART}
|
||||||
|
ports:
|
||||||
|
- "8080:80"
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/tmp/docker.sock:ro
|
||||||
18
docker-compose.opensearch.yml
Normal file
18
docker-compose.opensearch.yml
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
version: "3.4"
|
||||||
|
|
||||||
|
services:
|
||||||
|
opensearch:
|
||||||
|
container_name: opensearch
|
||||||
|
build: ./docker/opensearch
|
||||||
|
image: registry.gitlab.com/digiresilience/link/link-stack/opensearch:${LINK_STACK_VERSION}
|
||||||
|
restart: ${RESTART}
|
||||||
|
|
||||||
|
opensearch-dashboards:
|
||||||
|
container_name: opensearch-dashboards
|
||||||
|
build: ./docker/opensearch-dashboards
|
||||||
|
image: registry.gitlab.com/digiresilience/link/link-stack/opensearch-dashboards:${LINK_STACK_VERSION}
|
||||||
|
restart: ${RESTART}
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
opensearch-data:
|
||||||
|
driver: local
|
||||||
|
|
@ -1,323 +0,0 @@
|
||||||
version: "3.4"
|
|
||||||
|
|
||||||
x-global-vars:
|
|
||||||
&common-global-variables
|
|
||||||
TZ: Etc/UTC
|
|
||||||
|
|
||||||
x-zammad-vars:
|
|
||||||
&common-zammad-variables
|
|
||||||
MEMCACHE_SERVERS: "zammad-memcached:11211"
|
|
||||||
REDIS_URL: "redis://zammad-redis:6379"
|
|
||||||
ENABLE_EXPERIMENTAL_MOBILE_FRONTEND: "true"
|
|
||||||
|
|
||||||
x-metamigo-vars:
|
|
||||||
&common-metamigo-variables
|
|
||||||
DATABASE_HOST: "metamigo-postgresql"
|
|
||||||
DATABASE_NAME: "metamigo"
|
|
||||||
DATABASE_ROOT_OWNER: "root"
|
|
||||||
DATABASE_ROOT_PASSWORD: ${METAMIGO_DATABASE_ROOT_PASSWORD}
|
|
||||||
DATABASE_OWNER: "metamigo"
|
|
||||||
DATABASE_PASSWORD: ${METAMIGO_DATABASE_PASSWORD}
|
|
||||||
DATABASE_VISITOR: "app_visitor"
|
|
||||||
DATABASE_AUTHENTICATOR: "app_graphile_auth"
|
|
||||||
DATABASE_AUTHENTICATOR_PASSWORD: ${METAMIGO_DATABASE_AUTHENTICATOR_PASSWORD}
|
|
||||||
DATABASE_URL: "postgresql://metamigo:${METAMIGO_DATABASE_PASSWORD}@metamigo-postgresql/metamigo"
|
|
||||||
WORKER_DATABASE_URL: "postgresql://metamigo:${METAMIGO_DATABASE_PASSWORD}@metamigo-postgresql/metamigo"
|
|
||||||
SHADOW_DATABASE_URL: "postgresql://metamigo:${METAMIGO_DATABASE_PASSWORD}@metamigo-postgresql/metamigo_shadow"
|
|
||||||
ROOT_DATABASE_URL: "postgresql://metamigo:${METAMIGO_DATABASE_PASSWORD}@metamigo-postgresql/template1"
|
|
||||||
APP_ROOT_DATABASE_URL: "postgresql://root:${METAMIGO_DATABASE_ROOT_PASSWORD}@metamigo-postgresql/metamigo"
|
|
||||||
DATABASE_AUTH_URL: "postgresql://app_graphile_auth:${METAMIGO_DATABASE_AUTHENTICATOR_PASSWORD}@metamigo-postgresql/metamigo"
|
|
||||||
CORS_ALLOWED_ORIGINS: "https://metamigo-api,${METAMIGO_DOMAIN},http://localhost:3000,http://127.0.0.1:3000"
|
|
||||||
FRONTEND_URL: ${METAMIGO_DOMAIN}
|
|
||||||
API_URL: "http://metamigo-api:3001"
|
|
||||||
NEXTAUTH_URL: ${METAMIGO_DOMAIN}
|
|
||||||
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
|
|
||||||
NEXTAUTH_AUDIENCE: ${NEXTAUTH_AUDIENCE}
|
|
||||||
NEXTAUTH_SIGNING_KEY_B64: ${NEXTAUTH_SIGNING_KEY_B64}
|
|
||||||
NEXTAUTH_ENCRYPTION_KEY_B64: ${NEXTAUTH_ENCRYPTION_KEY_B64}
|
|
||||||
GITLAB_EMAIL_ADDRESS: ${GITLAB_EMAIL_ADDRESS}
|
|
||||||
GITLAB_ID: ${GITLAB_ID}
|
|
||||||
GITLAB_SECRET: ${GITLAB_SECRET}
|
|
||||||
SIGNALD_ENABLED: "true"
|
|
||||||
SIGNALD_SOCKET: /signald/signald.sock
|
|
||||||
|
|
||||||
services:
|
|
||||||
zammad-elasticsearch:
|
|
||||||
container_name: zammad-elasticsearch
|
|
||||||
environment:
|
|
||||||
discovery.type: single-node
|
|
||||||
ES_JAVA_OPTS: -Xms750m -Xmx750m
|
|
||||||
xpack.security.enabled: false
|
|
||||||
<<: *common-global-variables
|
|
||||||
build: ./docker/elasticsearch
|
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/zammad-elasticsearch
|
|
||||||
restart: ${RESTART}
|
|
||||||
volumes:
|
|
||||||
- elasticsearch-data:/usr/share/elasticsearch/data
|
|
||||||
|
|
||||||
zammad-init:
|
|
||||||
platform: linux/x86_64
|
|
||||||
container_name: zammad-init
|
|
||||||
command: [ "zammad-init" ]
|
|
||||||
depends_on:
|
|
||||||
- zammad-postgresql
|
|
||||||
environment:
|
|
||||||
<<: [ *common-zammad-variables, *common-global-variables ]
|
|
||||||
POSTGRESQL_USER: zammad
|
|
||||||
POSTGRESQL_PASS: ${ZAMMAD_DATABASE_PASSWORD}
|
|
||||||
build: ./docker/zammad
|
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/zammad
|
|
||||||
restart: on-failure
|
|
||||||
volumes:
|
|
||||||
- zammad-data:/opt/zammad
|
|
||||||
|
|
||||||
zammad-memcached:
|
|
||||||
container_name: zammad-memcached
|
|
||||||
command: memcached -m 256M
|
|
||||||
build: ./docker/memcached
|
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/zammad-memcached
|
|
||||||
restart: ${RESTART}
|
|
||||||
environment:
|
|
||||||
<<: *common-global-variables
|
|
||||||
|
|
||||||
zammad-nginx:
|
|
||||||
platform: linux/x86_64
|
|
||||||
container_name: zammad-nginx
|
|
||||||
command: [ "zammad-nginx" ]
|
|
||||||
expose:
|
|
||||||
- "8080"
|
|
||||||
ports:
|
|
||||||
- 127.0.0.1:8001:8080
|
|
||||||
depends_on:
|
|
||||||
- zammad-railsserver
|
|
||||||
build: ./docker/zammad
|
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/zammad
|
|
||||||
restart: ${RESTART}
|
|
||||||
environment:
|
|
||||||
<<: *common-global-variables
|
|
||||||
NGINX_SERVER_SCHEME: https
|
|
||||||
VIRTUAL_HOST: ${ZAMMAD_VIRTUAL_HOST}
|
|
||||||
VIRTUAL_PORT: 8080
|
|
||||||
volumes:
|
|
||||||
- zammad-data:/opt/zammad
|
|
||||||
|
|
||||||
zammad-postgresql:
|
|
||||||
container_name: zammad-postgresql
|
|
||||||
environment:
|
|
||||||
<<: *common-global-variables
|
|
||||||
POSTGRES_USER: zammad
|
|
||||||
POSTGRES_PASSWORD: ${ZAMMAD_DATABASE_PASSWORD}
|
|
||||||
build: ./docker/postgresql
|
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/postgresql
|
|
||||||
restart: ${RESTART}
|
|
||||||
ports:
|
|
||||||
- 127.0.0.1:5432:5432
|
|
||||||
volumes:
|
|
||||||
- postgresql-data:/var/lib/postgresql/data
|
|
||||||
|
|
||||||
zammad-railsserver:
|
|
||||||
platform: linux/x86_64
|
|
||||||
container_name: zammad-railsserver
|
|
||||||
command: [ "zammad-railsserver" ]
|
|
||||||
depends_on:
|
|
||||||
- zammad-memcached
|
|
||||||
- zammad-postgresql
|
|
||||||
- zammad-redis
|
|
||||||
environment:
|
|
||||||
<<: [ *common-global-variables, *common-zammad-variables ]
|
|
||||||
build: ./docker/zammad
|
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/zammad
|
|
||||||
restart: ${RESTART}
|
|
||||||
volumes:
|
|
||||||
- zammad-data:/opt/zammad
|
|
||||||
|
|
||||||
zammad-redis:
|
|
||||||
container_name: zammad-redis
|
|
||||||
build: ./docker/redis
|
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/zammad-redis
|
|
||||||
restart: ${RESTART}
|
|
||||||
environment:
|
|
||||||
<<: *common-global-variables
|
|
||||||
|
|
||||||
zammad-scheduler:
|
|
||||||
platform: linux/x86_64
|
|
||||||
container_name: zammad-scheduler
|
|
||||||
command: [ "zammad-scheduler" ]
|
|
||||||
depends_on:
|
|
||||||
- zammad-memcached
|
|
||||||
- zammad-railsserver
|
|
||||||
- zammad-redis
|
|
||||||
environment:
|
|
||||||
<<: [ *common-global-variables, *common-zammad-variables ]
|
|
||||||
build: ./docker/zammad
|
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/zammad
|
|
||||||
restart: ${RESTART}
|
|
||||||
volumes:
|
|
||||||
- zammad-data:/opt/zammad
|
|
||||||
|
|
||||||
zammad-websocket:
|
|
||||||
platform: linux/x86_64
|
|
||||||
container_name: zammad-websocket
|
|
||||||
command: [ "zammad-websocket" ]
|
|
||||||
depends_on:
|
|
||||||
- zammad-memcached
|
|
||||||
- zammad-railsserver
|
|
||||||
- zammad-redis
|
|
||||||
environment:
|
|
||||||
<<: [ *common-global-variables, *common-zammad-variables ]
|
|
||||||
build: ./docker/zammad
|
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/zammad
|
|
||||||
restart: ${RESTART}
|
|
||||||
volumes:
|
|
||||||
- zammad-data:/opt/zammad
|
|
||||||
|
|
||||||
opensearch:
|
|
||||||
container_name: opensearch
|
|
||||||
build: ./docker/opensearch
|
|
||||||
restart: ${RESTART}
|
|
||||||
volumes:
|
|
||||||
- opensearch-data:/usr/share/opensearch/data
|
|
||||||
|
|
||||||
opensearch-dashboards:
|
|
||||||
container_name: opensearch-dashboards
|
|
||||||
build: ./docker/opensearch-dashboards
|
|
||||||
restart: ${RESTART}
|
|
||||||
|
|
||||||
metamigo-postgresql:
|
|
||||||
build: ./docker/postgresql
|
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/postgresql
|
|
||||||
container_name: metamigo-postgresql
|
|
||||||
restart: ${RESTART}
|
|
||||||
volumes:
|
|
||||||
- metamigo-data:/var/lib/postgresql/data
|
|
||||||
- ./scripts/bootstrap-metamigo.sh:/docker-entrypoint-initdb.d/bootstrap-metamigo.sh
|
|
||||||
environment:
|
|
||||||
<<: *common-metamigo-variables
|
|
||||||
POSTGRES_PASSWORD: ${METAMIGO_DATABASE_ROOT_PASSWORD}
|
|
||||||
POSTGRES_USER: "root"
|
|
||||||
POSTGRES_DB: "metamigo"
|
|
||||||
ports:
|
|
||||||
- 127.0.0.1:5435:5432
|
|
||||||
|
|
||||||
metamigo-api:
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: ./apps/metamigo-cli/Dockerfile
|
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/metamigo
|
|
||||||
container_name: metamigo-api
|
|
||||||
restart: ${RESTART}
|
|
||||||
command: [ "api" ]
|
|
||||||
ports:
|
|
||||||
- 127.0.0.1:8003:3001
|
|
||||||
environment: *common-metamigo-variables
|
|
||||||
volumes:
|
|
||||||
- ./signald-state:/signald
|
|
||||||
depends_on:
|
|
||||||
- metamigo-postgresql
|
|
||||||
- signald
|
|
||||||
|
|
||||||
metamigo-frontend:
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: ./apps/metamigo-frontend/Dockerfile
|
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/metamigo-frontend
|
|
||||||
container_name: metamigo-frontend
|
|
||||||
restart: ${RESTART}
|
|
||||||
expose:
|
|
||||||
- "3000"
|
|
||||||
ports:
|
|
||||||
- 127.0.0.1:8002:3000
|
|
||||||
# depends_on:
|
|
||||||
# - metamigo-api
|
|
||||||
environment:
|
|
||||||
<<: *common-metamigo-variables
|
|
||||||
VIRTUAL_HOST: ${METAMIGO_VIRTUAL_HOST}
|
|
||||||
VIRTUAL_PORT: 3000
|
|
||||||
|
|
||||||
metamigo-worker:
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: ./apps/metamigo-cli/Dockerfile
|
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/metamigo
|
|
||||||
container_name: metamigo-worker
|
|
||||||
restart: ${RESTART}
|
|
||||||
command: [ "worker" ]
|
|
||||||
environment: *common-metamigo-variables
|
|
||||||
depends_on:
|
|
||||||
- metamigo-api
|
|
||||||
|
|
||||||
signald:
|
|
||||||
container_name: signald
|
|
||||||
build: ./docker/signald
|
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/signald
|
|
||||||
restart: ${RESTART}
|
|
||||||
user: ${CURRENT_UID}
|
|
||||||
volumes:
|
|
||||||
- ./signald-state:/signald
|
|
||||||
environment:
|
|
||||||
<<: *common-global-variables
|
|
||||||
|
|
||||||
# nginx-proxy:
|
|
||||||
# container_name: nginx-proxy
|
|
||||||
# build: ./docker/nginx-proxy
|
|
||||||
# restart: ${RESTART}
|
|
||||||
# ports:
|
|
||||||
# - "80:80"
|
|
||||||
# volumes:
|
|
||||||
# - /var/run/docker.sock:/tmp/docker.sock:ro
|
|
||||||
|
|
||||||
link:
|
|
||||||
container_name: link
|
|
||||||
restart: ${RESTART}
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: ./apps/link/Dockerfile
|
|
||||||
expose:
|
|
||||||
- "3000"
|
|
||||||
ports:
|
|
||||||
- "8004:3000"
|
|
||||||
environment:
|
|
||||||
ZAMMAD_PROXY_URL: ${ZAMMAD_PROXY_URL}
|
|
||||||
ZAMMAD_API_TOKEN: ${ZAMMAD_API_TOKEN}
|
|
||||||
ZAMMAD_VIRUAL_HOST: ${ZAMMAD_VIRTUAL_HOST}
|
|
||||||
LINK_URL: ${LINK_URL}
|
|
||||||
LEAFCUTTER_URL: http://leafcutter:3000
|
|
||||||
METAMIGO_URL: http://metamigo-frontend:3000
|
|
||||||
ZAMMAD_URL: http://localhost:8001
|
|
||||||
NEXTAUTH_URL: ${LINK_URL}
|
|
||||||
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
|
|
||||||
NEXTAUTH_AUDIENCE: ${NEXTAUTH_AUDIENCE}
|
|
||||||
NEXTAUTH_SIGNING_KEY_B64: ${NEXTAUTH_SIGNING_KEY_B64}
|
|
||||||
NEXTAUTH_ENCRYPTION_KEY_B64: ${NEXTAUTH_ENCRYPTION_KEY_B64}
|
|
||||||
GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID}
|
|
||||||
GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET}
|
|
||||||
|
|
||||||
leafcutter:
|
|
||||||
container_name: leafcutter
|
|
||||||
restart: ${RESTART}
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: ./apps/leafcutter/Dockerfile
|
|
||||||
expose:
|
|
||||||
- "3000"
|
|
||||||
ports:
|
|
||||||
- "8005:3000"
|
|
||||||
environment:
|
|
||||||
LINK_EMBEDDED: "true"
|
|
||||||
NEXTAUTH_URL: ${LINK_URL}
|
|
||||||
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
|
|
||||||
NEXTAUTH_AUDIENCE: ${NEXTAUTH_AUDIENCE}
|
|
||||||
NEXTAUTH_SIGNING_KEY_B64: ${NEXTAUTH_SIGNING_KEY_B64}
|
|
||||||
NEXTAUTH_ENCRYPTION_KEY_B64: ${NEXTAUTH_ENCRYPTION_KEY_B64}
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
elasticsearch-data:
|
|
||||||
driver: local
|
|
||||||
postgresql-data:
|
|
||||||
driver: local
|
|
||||||
zammad-data:
|
|
||||||
driver: local
|
|
||||||
metamigo-data:
|
|
||||||
driver: local
|
|
||||||
opensearch-data:
|
|
||||||
driver: local
|
|
||||||
147
docker-compose.zammad.yml
Normal file
147
docker-compose.zammad.yml
Normal file
|
|
@ -0,0 +1,147 @@
|
||||||
|
version: "3.4"
|
||||||
|
|
||||||
|
x-global-vars: &common-global-variables
|
||||||
|
TZ: Etc/UTC
|
||||||
|
|
||||||
|
x-zammad-vars: &common-zammad-variables
|
||||||
|
MEMCACHE_SERVERS: "zammad-memcached:11211"
|
||||||
|
REDIS_URL: "redis://zammad-redis:6379"
|
||||||
|
ENABLE_EXPERIMENTAL_MOBILE_FRONTEND: "true"
|
||||||
|
|
||||||
|
services:
|
||||||
|
zammad-elasticsearch:
|
||||||
|
container_name: zammad-elasticsearch
|
||||||
|
environment:
|
||||||
|
discovery.type: single-node
|
||||||
|
ES_JAVA_OPTS: -Xms750m -Xmx750m
|
||||||
|
xpack.security.enabled: false
|
||||||
|
<<: *common-global-variables
|
||||||
|
build: ./docker/elasticsearch
|
||||||
|
image: registry.gitlab.com/digiresilience/link/link-stack/elasticsearch:${LINK_STACK_VERSION}
|
||||||
|
restart: ${RESTART}
|
||||||
|
volumes:
|
||||||
|
- elasticsearch-data:/usr/share/elasticsearch/data
|
||||||
|
|
||||||
|
zammad-init:
|
||||||
|
platform: linux/x86_64
|
||||||
|
container_name: zammad-init
|
||||||
|
command: ["zammad-init"]
|
||||||
|
depends_on:
|
||||||
|
- zammad-postgresql
|
||||||
|
environment:
|
||||||
|
<<: [*common-zammad-variables, *common-global-variables]
|
||||||
|
POSTGRESQL_USER: zammad
|
||||||
|
POSTGRESQL_PASS: ${ZAMMAD_DATABASE_PASSWORD}
|
||||||
|
build: ./docker/zammad
|
||||||
|
image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION}
|
||||||
|
restart: on-failure
|
||||||
|
volumes:
|
||||||
|
- zammad-data:/opt/zammad
|
||||||
|
|
||||||
|
zammad-memcached:
|
||||||
|
container_name: zammad-memcached
|
||||||
|
command: memcached -m 256M
|
||||||
|
build: ./docker/memcached
|
||||||
|
image: registry.gitlab.com/digiresilience/link/link-stack/memcached:${LINK_STACK_VERSION}
|
||||||
|
restart: ${RESTART}
|
||||||
|
environment:
|
||||||
|
<<: *common-global-variables
|
||||||
|
|
||||||
|
zammad-nginx:
|
||||||
|
platform: linux/x86_64
|
||||||
|
container_name: zammad-nginx
|
||||||
|
command: ["zammad-nginx"]
|
||||||
|
expose:
|
||||||
|
- "8080"
|
||||||
|
ports:
|
||||||
|
- 127.0.0.1:8001:8080
|
||||||
|
depends_on:
|
||||||
|
- zammad-railsserver
|
||||||
|
build: ./docker/zammad
|
||||||
|
image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION}
|
||||||
|
restart: ${RESTART}
|
||||||
|
environment:
|
||||||
|
<<: *common-global-variables
|
||||||
|
NGINX_SERVER_SCHEME: https
|
||||||
|
VIRTUAL_HOST: ${ZAMMAD_VIRTUAL_HOST}
|
||||||
|
VIRTUAL_PORT: 8080
|
||||||
|
volumes:
|
||||||
|
- zammad-data:/opt/zammad
|
||||||
|
|
||||||
|
zammad-postgresql:
|
||||||
|
container_name: zammad-postgresql
|
||||||
|
environment:
|
||||||
|
<<: *common-global-variables
|
||||||
|
POSTGRES_USER: zammad
|
||||||
|
POSTGRES_PASSWORD: ${ZAMMAD_DATABASE_PASSWORD}
|
||||||
|
build: ./docker/postgresql
|
||||||
|
image: registry.gitlab.com/digiresilience/link/link-stack/postgresql:${LINK_STACK_VERSION}
|
||||||
|
restart: ${RESTART}
|
||||||
|
ports:
|
||||||
|
- 127.0.0.1:5432:5432
|
||||||
|
volumes:
|
||||||
|
- postgresql-data:/var/lib/postgresql/data
|
||||||
|
|
||||||
|
zammad-railsserver:
|
||||||
|
platform: linux/x86_64
|
||||||
|
container_name: zammad-railsserver
|
||||||
|
command: ["zammad-railsserver"]
|
||||||
|
depends_on:
|
||||||
|
- zammad-memcached
|
||||||
|
- zammad-postgresql
|
||||||
|
- zammad-redis
|
||||||
|
environment:
|
||||||
|
<<: [*common-global-variables, *common-zammad-variables]
|
||||||
|
build: ./docker/zammad
|
||||||
|
image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION}
|
||||||
|
restart: ${RESTART}
|
||||||
|
volumes:
|
||||||
|
- zammad-data:/opt/zammad
|
||||||
|
|
||||||
|
zammad-redis:
|
||||||
|
container_name: zammad-redis
|
||||||
|
build: ./docker/redis
|
||||||
|
image: registry.gitlab.com/digiresilience/link/link-stack/redis:${LINK_STACK_VERSION}
|
||||||
|
restart: ${RESTART}
|
||||||
|
environment:
|
||||||
|
<<: *common-global-variables
|
||||||
|
|
||||||
|
zammad-scheduler:
|
||||||
|
platform: linux/x86_64
|
||||||
|
container_name: zammad-scheduler
|
||||||
|
command: ["zammad-scheduler"]
|
||||||
|
depends_on:
|
||||||
|
- zammad-memcached
|
||||||
|
- zammad-railsserver
|
||||||
|
- zammad-redis
|
||||||
|
environment:
|
||||||
|
<<: [*common-global-variables, *common-zammad-variables]
|
||||||
|
build: ./docker/zammad
|
||||||
|
image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION}
|
||||||
|
restart: ${RESTART}
|
||||||
|
volumes:
|
||||||
|
- zammad-data:/opt/zammad
|
||||||
|
|
||||||
|
zammad-websocket:
|
||||||
|
platform: linux/x86_64
|
||||||
|
container_name: zammad-websocket
|
||||||
|
command: ["zammad-websocket"]
|
||||||
|
depends_on:
|
||||||
|
- zammad-memcached
|
||||||
|
- zammad-railsserver
|
||||||
|
- zammad-redis
|
||||||
|
environment:
|
||||||
|
<<: [*common-global-variables, *common-zammad-variables]
|
||||||
|
build: ./docker/zammad
|
||||||
|
image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION}
|
||||||
|
restart: ${RESTART}
|
||||||
|
volumes:
|
||||||
|
- zammad-data:/opt/zammad
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
elasticsearch-data:
|
||||||
|
driver: local
|
||||||
|
postgresql-data:
|
||||||
|
driver: local
|
||||||
|
zammad-data:
|
||||||
|
driver: local
|
||||||
15
package.json
15
package.json
|
|
@ -9,6 +9,21 @@
|
||||||
"dev:metamigo": "make dev-metamigo && dotenv -- turbo run dev --concurrency 30 --filter=!link --filter=!leafcutter",
|
"dev:metamigo": "make dev-metamigo && dotenv -- turbo run dev --concurrency 30 --filter=!link --filter=!leafcutter",
|
||||||
"migrate": "dotenv -- npm run migrate --workspace=@digiresilience/metamigo-cli",
|
"migrate": "dotenv -- npm run migrate --workspace=@digiresilience/metamigo-cli",
|
||||||
"fmt": "turbo run fmt",
|
"fmt": "turbo run fmt",
|
||||||
|
"docker:all:up": "docker compose -f docker-compose.zammad.yml -f docker-compose.metamigo-postgresql.yml -f docker-compose.metamigo.yml -f docker-compose.opensearch.yml -f docker-compose.leafcutter.yml -f docker-compose.link.yml up -d",
|
||||||
|
"docker:all:down": "docker compose -f docker-compose.zammad.yml -f docker-compose.metamigo-postgresql.yml -f docker-compose.metamigo.yml -f docker-compose.opensearch.yml -f docker-compose.leafcutter.yml -f docker-compose.link.yml down",
|
||||||
|
"docker:all:build": "docker compose -f docker-compose.zammad.yml -f docker-compose.metamigo-postgresql.yml -f docker-compose.metamigo.yml -f docker-compose.opensearch.yml -f docker-compose.leafcutter.yml -f docker-compose.link.yml up --build -d",
|
||||||
|
"docker:link:dev:up": "docker compose -f docker-compose.metamigo-postgresql.yml -f docker-compose.metamigo.yml -f docker-compose.zammad.yml up -d",
|
||||||
|
"docker:link:dev:down": "docker compose -f docker-compose.metamigo-postgresql.yml -f docker-compose.metamigo.yml -f docker-compose.zammad.yml down",
|
||||||
|
"docker:link:up": "docker compose -f docker-compose.metamigo-postgresql.yml -f docker-compose.metamigo.yml -f docker-compose.zammad.yml -f docker-compose.link.yml up -d",
|
||||||
|
"docker:link:down": "docker compose -f docker-compose.metamigo-postgresql.yml -f docker-compose.metamigo.yml -f docker-compose.zammad.yml -f docker-compose.link.yml down",
|
||||||
|
"docker:leafcutter:dev:up": "docker compose -f docker-compose.opensearch.yml up -d",
|
||||||
|
"docker:leafcutter:dev:down": "docker compose -f docker-compose.opensearch.yml down",
|
||||||
|
"docker:leafcutter:up": "docker compose -f docker-compose.opensearch.yml -f docker-compose.leafcutter.yml up -d",
|
||||||
|
"docker:leafcutter:down": "docker compose -f docker-compose.opensearch.yml -f docker-compose.leafcutter.yml down",
|
||||||
|
"docker:metamigo:dev:up": "docker compose -f docker-compose.metamigo-postgresql.yml -f docker-compose.zammad.yml up -d",
|
||||||
|
"docker:metamigo:dev:down": "docker compose -f docker-compose.metamigo-postgresql.yml -f docker-compose.zammad.yml down",
|
||||||
|
"docker:metamigo:up": "docker compose -f docker-compose.zammad.yml -f docker-compose.metamigo-postgresql.yml -f docker-compose.metamigo.yml up -d",
|
||||||
|
"docker:metamigo:down": "docker compose -f docker-compose.zammad.yml -f docker-compose.metamigo-postgresql.yml -f docker-compose.metamigo.yml down",
|
||||||
"upgrade:setup": "npm i -g npm-check-updates",
|
"upgrade:setup": "npm i -g npm-check-updates",
|
||||||
"upgrade:check": "ncu -ws -x graphql",
|
"upgrade:check": "ncu -ws -x graphql",
|
||||||
"upgrade:all": "ncu -ws -u -x graphql"
|
"upgrade:all": "ncu -ws -u -x graphql"
|
||||||
|
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
.PHONY: fmt test yarn
|
|
||||||
.npmrc:
|
|
||||||
echo '@guardianproject-ops:registry=https://gitlab.com/api/v4/packages/npm/' > .npmrc
|
|
||||||
echo '//gitlab.com/api/v4/packages/npm/:_authToken=${CI_JOB_TOKEN}' >> .npmrc
|
|
||||||
echo '//gitlab.com/api/v4/projects/:_authToken=${CI_JOB_TOKEN}' >> .npmrc
|
|
||||||
echo '//gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/npm/:_authToken=${CI_JOB_TOKEN}' >> .npmrc
|
|
||||||
|
|
||||||
yarn:
|
|
||||||
yarn
|
|
||||||
|
|
||||||
test: yarn
|
|
||||||
mkdir -p coverage
|
|
||||||
yarn lint
|
|
||||||
yarn test
|
|
||||||
|
|
||||||
publish: test .npmrc
|
|
||||||
npm publish
|
|
||||||
|
|
||||||
|
|
@ -11,7 +11,7 @@ We recommend using [@digiresilience/amigo-dev][amigo-dev] to manage your dev dep
|
||||||
But if you want to do it manually, then:
|
But if you want to do it manually, then:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
$ yarn add -D @digiresilience/babel-preset-amigo
|
$ npm install --save-dev @digiresilience/babel-preset-amigo
|
||||||
```
|
```
|
||||||
|
|
||||||
# Usage
|
# Usage
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ We recommend using [@digiresilience/amigo-dev][amigo-dev] to manage your dev dep
|
||||||
But if you want to do it manually, then:
|
But if you want to do it manually, then:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
$ yarn add -D @digiresilience/eslint-config-amigo
|
$ npm install --save-dev @digiresilience/eslint-config-amigo
|
||||||
```
|
```
|
||||||
|
|
||||||
# Usage
|
# Usage
|
||||||
|
|
|
||||||
2
packages/hapi-nextauth/.gitignore
vendored
2
packages/hapi-nextauth/.gitignore
vendored
|
|
@ -8,6 +8,4 @@ coverage
|
||||||
*.log
|
*.log
|
||||||
package-lock.json
|
package-lock.json
|
||||||
.npmrc
|
.npmrc
|
||||||
.yalc
|
|
||||||
yalc.lock
|
|
||||||
junit.xml
|
junit.xml
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,7 @@
|
||||||
Makefile
|
Makefile
|
||||||
.gitlab-ci.yml
|
.gitlab-ci.yml
|
||||||
coverage
|
coverage
|
||||||
.yarnrc*
|
|
||||||
jest*
|
jest*
|
||||||
tsconfig*
|
tsconfig*
|
||||||
*.log
|
*.log
|
||||||
test*
|
test*
|
||||||
.yalc
|
|
||||||
yalc.lock
|
|
||||||
|
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
test: build
|
|
||||||
mkdir -p coverage
|
|
||||||
yarn test
|
|
||||||
|
|
||||||
.PHONY: build
|
|
||||||
build: node_modules/
|
|
||||||
yarn build
|
|
||||||
|
|
||||||
lint:
|
|
||||||
yarn test:lint
|
|
||||||
|
|
||||||
fmt:
|
|
||||||
yarn fix:prettier
|
|
||||||
yarn fix:lint
|
|
||||||
|
|
||||||
doc:
|
|
||||||
yarn doc
|
|
||||||
|
|
||||||
publish: test
|
|
||||||
npm publish
|
|
||||||
|
|
||||||
# always run yarn when we are in the CI
|
|
||||||
node_modules/: .npmrc
|
|
||||||
@(test -d node_modules && test -z "${CI_JOB_TOKEN}") || yarn
|
|
||||||
|
|
||||||
.npmrc:
|
|
||||||
ifdef CI_JOB_TOKEN
|
|
||||||
echo '@guardianproject-ops:registry=https://gitlab.com/api/v4/packages/npm/' > .npmrc
|
|
||||||
echo '@digiresilience:registry=https://gitlab.com/api/v4/packages/npm/' > .npmrc
|
|
||||||
echo '//gitlab.com/api/v4/packages/npm/:_authToken=${CI_JOB_TOKEN}' >> .npmrc
|
|
||||||
echo '//gitlab.com/api/v4/projects/:_authToken=${CI_JOB_TOKEN}' >> .npmrc
|
|
||||||
echo '//gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/npm/:_authToken=${CI_JOB_TOKEN}' >> .npmrc
|
|
||||||
endif
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -rf build tmp coverage yarn-error.log
|
|
||||||
|
|
||||||
distclean: clean
|
|
||||||
rm -rf node_modules
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
version: "3.1"
|
|
||||||
services:
|
|
||||||
db_test:
|
|
||||||
image: postgres:13
|
|
||||||
environment:
|
|
||||||
POSTGRES_PASSWORD: amigo
|
|
||||||
POSTGRES_USER: postgres
|
|
||||||
ports:
|
|
||||||
- "127.0.0.1:5436:5432"
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
test: build
|
|
||||||
mkdir -p coverage
|
|
||||||
yarn test
|
|
||||||
|
|
||||||
.PHONY: build
|
|
||||||
build: node_modules/
|
|
||||||
yarn build
|
|
||||||
|
|
||||||
lint:
|
|
||||||
yarn test:lint
|
|
||||||
|
|
||||||
fmt:
|
|
||||||
yarn fix:prettier
|
|
||||||
yarn fix:lint
|
|
||||||
|
|
||||||
doc:
|
|
||||||
yarn doc
|
|
||||||
|
|
||||||
publish: test
|
|
||||||
npm publish
|
|
||||||
|
|
||||||
node_modules/: .npmrc
|
|
||||||
test -d node_modules || yarn
|
|
||||||
|
|
||||||
.npmrc:
|
|
||||||
ifdef CI_JOB_TOKEN
|
|
||||||
echo '@guardianproject-ops:registry=https://gitlab.com/api/v4/packages/npm/' > .npmrc
|
|
||||||
echo '@digiresilience:registry=https://gitlab.com/api/v4/packages/npm/' >> .npmrc
|
|
||||||
echo '//gitlab.com/api/v4/packages/npm/:_authToken=${CI_JOB_TOKEN}' >> .npmrc
|
|
||||||
echo '//gitlab.com/api/v4/projects/:_authToken=${CI_JOB_TOKEN}' >> .npmrc
|
|
||||||
echo '//gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/npm/:_authToken=${CI_JOB_TOKEN}' >> .npmrc
|
|
||||||
endif
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -rf build tmp coverage yarn-error.log
|
|
||||||
|
|
||||||
distclean: clean
|
|
||||||
rm -rf node_modules
|
|
||||||
2
packages/metamigo-common/.gitignore
vendored
2
packages/metamigo-common/.gitignore
vendored
|
|
@ -8,6 +8,4 @@ coverage
|
||||||
*.log
|
*.log
|
||||||
package-lock.json
|
package-lock.json
|
||||||
.npmrc
|
.npmrc
|
||||||
.yalc
|
|
||||||
yalc.lock
|
|
||||||
junit.xml
|
junit.xml
|
||||||
|
|
|
||||||
|
|
@ -9,5 +9,3 @@ jest*
|
||||||
tsconfig*
|
tsconfig*
|
||||||
*.log
|
*.log
|
||||||
test*
|
test*
|
||||||
.yalc
|
|
||||||
yalc.lock
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ export const configSchema = {
|
||||||
connection: {
|
connection: {
|
||||||
doc: "The postgres connection url.",
|
doc: "The postgres connection url.",
|
||||||
format: "uri",
|
format: "uri",
|
||||||
default: "postgresql://metamigo:metamigo@127.0.0.1:5435/metamigo_dev",
|
default: "postgresql://metamigo:metamigo@127.0.0.1:5433/metamigo_dev",
|
||||||
env: "METAMIGO_DATABASE_URL",
|
env: "METAMIGO_DATABASE_URL",
|
||||||
sensitive: true,
|
sensitive: true,
|
||||||
},
|
},
|
||||||
|
|
@ -29,7 +29,7 @@ export const configSchema = {
|
||||||
connection: {
|
connection: {
|
||||||
doc: "The postgres connection url for the worker database.",
|
doc: "The postgres connection url for the worker database.",
|
||||||
format: "uri",
|
format: "uri",
|
||||||
default: "postgresql://metamigo:metamigo@127.0.0.1:5435/metamigo_dev",
|
default: "postgresql://metamigo:metamigo@127.0.0.1:5433/metamigo_dev",
|
||||||
env: "METAMIGO_WORKER_DATABASE_URL",
|
env: "METAMIGO_WORKER_DATABASE_URL",
|
||||||
},
|
},
|
||||||
concurrency: {
|
concurrency: {
|
||||||
|
|
@ -55,14 +55,14 @@ export const configSchema = {
|
||||||
appRootConnection: {
|
appRootConnection: {
|
||||||
doc: "The postgres root/superuser connection url for development mode so PG can watch the schema changes, this is strangely named in the postgraphile API 'ownerConnectionString'",
|
doc: "The postgres root/superuser connection url for development mode so PG can watch the schema changes, this is strangely named in the postgraphile API 'ownerConnectionString'",
|
||||||
format: String,
|
format: String,
|
||||||
default: "postgresql://postgres:metamigo@127.0.0.1:5435/metamigo_dev",
|
default: "postgresql://postgres:metamigo@127.0.0.1:5433/metamigo_dev",
|
||||||
env: "METAMIGO_APP_ROOT_DATABASE_URL",
|
env: "METAMIGO_APP_ROOT_DATABASE_URL",
|
||||||
},
|
},
|
||||||
authConnection: {
|
authConnection: {
|
||||||
doc: "The postgres connection URL for postgraphile, must not be superuser and must have limited privs.",
|
doc: "The postgres connection URL for postgraphile, must not be superuser and must have limited privs.",
|
||||||
format: String,
|
format: String,
|
||||||
default:
|
default:
|
||||||
"postgresql://metamigo_graphile_auth:metamigo@127.0.0.1:5435/metamigo_dev",
|
"postgresql://metamigo_graphile_auth:metamigo@127.0.0.1:5433/metamigo_dev",
|
||||||
env: "METAMIGO_DATABASE_AUTH_URL",
|
env: "METAMIGO_DATABASE_AUTH_URL",
|
||||||
},
|
},
|
||||||
visitor: {
|
visitor: {
|
||||||
|
|
@ -88,14 +88,14 @@ export const configSchema = {
|
||||||
shadowConnection: {
|
shadowConnection: {
|
||||||
doc: "The shadow databse connection url used by postgraphile-migrate. Not needed in production.",
|
doc: "The shadow databse connection url used by postgraphile-migrate. Not needed in production.",
|
||||||
format: "uri",
|
format: "uri",
|
||||||
default: "postgresql://metamigo:metamigo@127.0.0.1:5435/metamigo_shadow",
|
default: "postgresql://metamigo:metamigo@127.0.0.1:5433/metamigo_shadow",
|
||||||
env: "METAMIGO_SHADOW_DATABASE_URL",
|
env: "METAMIGO_SHADOW_DATABASE_URL",
|
||||||
sensitive: true,
|
sensitive: true,
|
||||||
},
|
},
|
||||||
rootConnection: {
|
rootConnection: {
|
||||||
doc: "The postgres root/superuser connection url for testing only, database must NOT be the app database. Not needed in production.",
|
doc: "The postgres root/superuser connection url for testing only, database must NOT be the app database. Not needed in production.",
|
||||||
format: "uri",
|
format: "uri",
|
||||||
default: "postgresql://postgres:metamigo@127.0.0.1:5435/template1",
|
default: "postgresql://postgres:metamigo@127.0.0.1:5433/template1",
|
||||||
env: "METAMIGO_ROOT_DATABASE_URL",
|
env: "METAMIGO_ROOT_DATABASE_URL",
|
||||||
sensitive: true,
|
sensitive: true,
|
||||||
},
|
},
|
||||||
|
|
@ -363,10 +363,10 @@ export interface INextAuthConfig {
|
||||||
encryptionKey: string;
|
encryptionKey: string;
|
||||||
signingKeyB64: string;
|
signingKeyB64: string;
|
||||||
encryptionKeyB64: string;
|
encryptionKeyB64: string;
|
||||||
google?: { id: string; secret: string };
|
google?: { id: string; secret: string; };
|
||||||
github?: { id: string; secret: string };
|
github?: { id: string; secret: string; };
|
||||||
gitlab?: { id: string; secret: string };
|
gitlab?: { id: string; secret: string; };
|
||||||
cognito?: { id: string; secret: string; domain: string };
|
cognito?: { id: string; secret: string; domain: string; };
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ICFAccessConfig {
|
export interface ICFAccessConfig {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
const { spawn } = require("child_process");
|
const { spawn } = require("child_process");
|
||||||
const findWorkspaceRoot = require("find-yarn-workspace-root");
|
|
||||||
|
|
||||||
if (process.env.CI) {
|
if (process.env.CI) {
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
|
|
@ -21,7 +20,7 @@ spawn(
|
||||||
"--no-owner",
|
"--no-owner",
|
||||||
"--exclude-schema=graphile_migrate",
|
"--exclude-schema=graphile_migrate",
|
||||||
"--exclude-schema=graphile_worker",
|
"--exclude-schema=graphile_worker",
|
||||||
`--file=${findWorkspaceRoot()}/data/schema.sql`,
|
`--file=../../data/schema.sql`,
|
||||||
connectionString,
|
connectionString,
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
test: build
|
|
||||||
mkdir -p coverage
|
|
||||||
yarn test
|
|
||||||
|
|
||||||
.PHONY: build
|
|
||||||
build: node_modules/
|
|
||||||
yarn build
|
|
||||||
|
|
||||||
lint:
|
|
||||||
yarn test:lint
|
|
||||||
|
|
||||||
fmt:
|
|
||||||
yarn fix:prettier
|
|
||||||
yarn fix:lint
|
|
||||||
|
|
||||||
doc:
|
|
||||||
yarn doc
|
|
||||||
|
|
||||||
publish: test
|
|
||||||
npm publish
|
|
||||||
|
|
||||||
node_modules/: .npmrc
|
|
||||||
test -d node_modules || yarn
|
|
||||||
|
|
||||||
.npmrc:
|
|
||||||
ifdef CI_JOB_TOKEN
|
|
||||||
echo '@guardianproject-ops:registry=https://gitlab.com/api/v4/packages/npm/' > .npmrc
|
|
||||||
echo '//gitlab.com/api/v4/packages/npm/:_authToken=${CI_JOB_TOKEN}' >> .npmrc
|
|
||||||
echo '//gitlab.com/api/v4/projects/:_authToken=${CI_JOB_TOKEN}' >> .npmrc
|
|
||||||
echo '//gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/npm/:_authToken=${CI_JOB_TOKEN}' >> .npmrc
|
|
||||||
endif
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -rf build tmp coverage yarn-error.log
|
|
||||||
|
|
||||||
distclean: clean
|
|
||||||
rm -rf node_modules
|
|
||||||
|
|
@ -7,7 +7,7 @@ What's this all about? Watch this [video from Stuart Sierra](https://www.youtube
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
```console
|
```console
|
||||||
$ yarn add -D @digiresilience/montar
|
$ npm install --save-dev @digiresilience/montar
|
||||||
```
|
```
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
.PHONY: test yarn publish
|
|
||||||
.npmrc:
|
|
||||||
echo '@guardianproject-ops:registry=https://gitlab.com/api/v4/packages/npm/' > .npmrc
|
|
||||||
echo '//gitlab.com/api/v4/packages/npm/:_authToken=${CI_JOB_TOKEN}' >> .npmrc
|
|
||||||
echo '//gitlab.com/api/v4/projects/:_authToken=${CI_JOB_TOKEN}' >> .npmrc
|
|
||||||
echo '//gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/npm/:_authToken=${CI_JOB_TOKEN}' >> .npmrc
|
|
||||||
|
|
||||||
yarn:
|
|
||||||
yarn
|
|
||||||
|
|
||||||
test: yarn
|
|
||||||
mkdir -p coverage
|
|
||||||
yarn lint
|
|
||||||
yarn test
|
|
||||||
|
|
||||||
publish: test .npmrc
|
|
||||||
npm publish
|
|
||||||
|
|
||||||
|
|
@ -11,7 +11,7 @@ We recommend using [@digiresilience/amigo-dev][amigo-dev] to manage your dev dep
|
||||||
But if you want to do it manually, then:
|
But if you want to do it manually, then:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
$ yarn add -D @digiresilience/tsconfig-amigo
|
$ npm install --save-dev @digiresilience/tsconfig-amigo
|
||||||
```
|
```
|
||||||
|
|
||||||
# Usage
|
# Usage
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue