Skip to content
Open
Show file tree
Hide file tree
Changes from 11 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 0 additions & 66 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,10 @@ API_MG_DB_DATABASE=kodus_db
# Hability to API_NODE_ENV=production
API_MG_DB_PRODUCTION_CONFIG=''

# VectorDB
WEAVIATE_SCHEME=https
WEAVIATE_HOST=localhost
WEAVIATE_API_KEY=default
WEAVIATE_SCHEMA_NAME=default

API_RABBITMQ_URI=amqp://user:password@rabbitmq:5672/?heartbeat=60

# OPENAI
API_OPEN_AI_API_KEY=abc
OPEN_AI_URL_HEALTH=https://status.openai.com/api/v2/status.json

# JWT
API_JWT_EXPIRES_IN=365d
Expand All @@ -51,19 +44,13 @@ API_JWT_REFRESH_EXPIRES_IN=365d
GLOBAL_GITHUB_CLIENT_ID=
API_GITHUB_CLIENT_SECRET=
API_GITHUB_PRIVATE_KEY=
GLOBAL_GITHUB_REDIRECT_URI=
GITHUB_URL_HEALTH=https://www.githubstatus.com/api/v2/status.json
API_GITHUB_CODE_MANAGEMENT_WEBHOOK="http://localhost:3001/github/webhook" # GitHub webhook URL (update with your API domain)

# Optional - Only needed if using OAuth
API_GITHUB_APP_ID= # GitHub App ID
API_GITHUB_CLIENT_SECRET= # GitHub App Client Secret
API_GITHUB_PRIVATE_KEY="" # GitHub App Private Key
WEB_GITHUB_INSTALL_URL="" # GitHub App Installation URL
WEB_OAUTH_GITHUB_CLIENT_ID="" # GitHub OAuth Client ID
WEB_OAUTH_GITHUB_CLIENT_SECRET="" # GitHub OAuth Client Secret
GLOBAL_GITHUB_CLIENT_ID=
GLOBAL_GITHUB_REDIRECT_URI=

# GITLAB
GLOBAL_GITLAB_CLIENT_ID=""
Expand All @@ -72,63 +59,20 @@ GLOBAL_GITLAB_REDIRECT_URL=""
API_GITLAB_TOKEN_URL=""
API_GITLAB_CODE_MANAGEMENT_WEBHOOK=http://localhost:3001/gitlab/webhook

# JIRA
GLOBAL_JIRA_CLIENT_ID=UCgqdwM9hJNlp9kWporxyN0ogOhpAaV3
GLOBAL_JIRA_REDIRECT_URI=http://localhost:3000/setup/jira
API_JIRA_CLIENT_SECRET=ATOAPhnRZOV0MrB0vzXP87jsi7hrUWzV5qqrnATioRKrp46n6h6opd_lmcpz1OQ_IZ3nAF797B91
API_JIRA_BASE_URL=https://api.atlassian.com/ex/jira
API_JIRA_MID_URL=rest/api/3
API_JIRA_OAUTH_TOKEN_URL=https://auth.atlassian.com/oauth/token
API_JIRA_GET_PERSONAL_PROFILE_URL=https://api.atlassian.com/me
API_JIRA_OAUTH_API_TOKEN_URL=https://api.atlassian.com/oauth/token
API_JIRA_URL_API_VERSION_1=rest/agile/1.0
# URL com HTTPS - fazer um local tunnel

API_SLACK_URL_HEALTH=https://status.slack.com/api/v2.0.0/current
API_SLACK_BOT_DIAGNOSIS_URL=

export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT=https://api.smith.langchain.com
export LANGCHAIN_API_KEY=ls__f2e19442f7164cc088f329784fd05e96
export LANGCHAIN_PROJECT=kodus-orchestrator
export LANGCHAIN_CALLBACKS_BACKGROUND=true

## CRON
API_CRON_AUTOMATION_INTERACTION_MONITOR="0 9,18 * * *"
API_CRON_AUTOMATION_TEAM_PROGRESS_TRACKER="30 11,16 * * *"
API_CRON_METRICS="* 22 * * *" #TODO DIA AS 22:00
API_CRON_AUTOMATION_ISSUES_DETAILS="0 0-23/1 * * *" # ISSO SIGNIFICA A CADA 1 HORA
API_CRON_AUTOMATION_DAILY_CHECKIN="*/5 * * * *" # A CADA 5 MINUTOS

API_CRON_TEAM_ARTIFACTS_WEEKLY="0 1 * * 5" # TODA SEMANA NA SEXTA DE MADRUGADA 01:00 AM
API_CRON_TEAM_ARTIFACTS_DAILY="0 3 * * *" # TODO DIA AS 03:00 AM DA MATINA

API_CRON_ORGANIZATION_ARTIFACTS_WEEKLY="0 3 * * 5" # TODA SEMANA NA SEXTA DE MADRUGADA 03:00 AM
API_CRON_ORGANIZATION_ARTIFACTS_DAILY="0 5 * * *" # TODO DIA AS 05:00 AM DA MATINA

API_CRON_ENRICH_TEAM_ARTIFACTS_WEEKLY="0 5 * * 5" # TODA SEMANA NA SEXTA DE MANHÃ 05:00 AM

API_CRON_COMPILE_SPRINT="0 0-23/1 * * *"
API_CRON_SPRINT_RETRO="0 11 * * *" # TODO DIA AS 11
API_CRON_ORGANIZATION_METRICS="50 23 * * 0" ## TODO DOMINGO AS 23:50

API_CRON_AUTOMATION_EXECUTIVE_CHECKIN="0 10 * * 1" # TODA SEMANA NA SEGUNDA DE MANHÃ 10:00 AM

API_CRON_SYNC_CODE_REVIEW_REACTIONS="0 0 * * *" # TODO DIA ÀS 00:00

API_CRON_KODY_LEARNING="0 0 * * 6" # TODO SÁBADO ÀS 00:00

API_CRON_CHECK_IF_PR_SHOULD_BE_APPROVED="*/2 * * * *" # A CADA 2 MINUTOS;

# CONFIGURES
API_RETRY_DIAGNOSIS_LLM=3

# MICROSERVICES
KODUS_SERVICE_TEAMS=
KODUS_SERVICE_AZURE_BOARDS=
KODUS_SERVICE_AZURE_REPOS=
GLOBAL_KODUS_SERVICE_SLACK=
GLOBAL_KODUS_SERVICE_DISCORD=

# EMAIL
API_MAILSEND_API_TOKEN=
Expand Down Expand Up @@ -170,16 +114,6 @@ API_NOVITA_AI_API_KEY=
# LLM Models
API_LLM_PROVIDER_MODEL="auto"
API_OPENAI_FORCE_BASE_URL=""
API_LLM_MODEL_CHATGPT_3_5_TURBO=gpt-3.5-turbo
API_LLM_MODEL_CHATGPT_3_5_TURBO_16K=gpt-3.5-turbo-16k
API_LLM_MODEL_CHATGPT_4=gpt-4-1106-preview
API_LLM_MODEL_CHATGPT_4_TURBO=gpt-4-turbo
API_LLM_MODEL_CHATGPT_4_ALL=gpt-4o
API_LLM_MODEL_CHATGPT_4_ALL_MINI=gpt-4o-mini
API_LLM_MODEL_CLAUDE_3_5_SONNET=claude-3-5-sonnet-20241022
API_LLM_MODEL_GEMINI_1_5_PRO=gemini-1.5-pro
API_LLM_MODEL_GEMINI_1_5_PRO_EXP=gemini-1.5-pro-exp-0801
API_LLM_MODEL_GEMINI_2_5_PRO_PREVIEW=gemini-2.5-pro-preview-03-25

# BITBUCKET
GLOBAL_BITBUCKET_CODE_MANAGEMENT_WEBHOOK=http://localhost:3001/bitbucket/webhook
Expand Down
164 changes: 98 additions & 66 deletions docker-compose.dev.small.yml
Original file line number Diff line number Diff line change
@@ -1,76 +1,108 @@
services:
kodus-orchestrator:
init: true
container_name: ${GLOBAL_API_CONTAINER_NAME}
build:
context: .
dockerfile: DockerFiles/Dockerfile.dev.small
args:
- API_CLOUD_MODE=${API_CLOUD_MODE:-false}
ports:
- "${API_PORT}:${API_PORT}"
- "9229:9229"
env_file: [.env]
environment:
- CHOKIDAR_USEPOLLING=true
- API_DEVELOPMENT_MODE=${API_DEVELOPMENT_MODE:-true}
restart: unless-stopped
volumes:
- .:/usr/src/app # <- bind: código-fonte
- yalc_store:/root/.yalc
- ./certs:/usr/src/app/certs:ro
depends_on:
db_postgres:
condition: service_healthy
db_mongodb:
condition: service_healthy
networks:
kodus-orchestrator:
init: true
container_name: ${GLOBAL_API_CONTAINER_NAME}
image: kodus-orchestrator-dev-small
build:
context: .
dockerfile: DockerFiles/Dockerfile.dev.small
args:
- API_CLOUD_MODE=${API_CLOUD_MODE:-false}
ports:
- '${API_PORT}:${API_PORT}'
- '9229:9229'
env_file: [.env]
environment:
- CHOKIDAR_USEPOLLING=true
- API_DEVELOPMENT_MODE=${API_DEVELOPMENT_MODE:-true}
restart: unless-stopped
volumes:
- .:/usr/src/app
- yalc_store:/root/.yalc
depends_on:
migrator:
condition: service_completed_successfully
networks:
- kodus-backend-services
- shared-network

db_postgres:
image: pgvector/pgvector:pg16
container_name: db_postgres
ports: ["5432:5432"]
environment:
POSTGRES_USER: ${API_PG_DB_USERNAME}
POSTGRES_PASSWORD: ${API_PG_DB_PASSWORD}
POSTGRES_DB: ${API_PG_DB_DATABASE}
volumes:
- pgdata:/var/lib/postgresql/data
- ./docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d:ro
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${API_PG_DB_USERNAME} -d ${API_PG_DB_DATABASE}"]
interval: 5s
timeout: 3s
retries: 20
start_period: 10s
networks:
- kodus-backend-services
migrator:
container_name: ${GLOBAL_API_CONTAINER_NAME}_migrator
image: kodus-orchestrator-dev-small
build:
context: .
dockerfile: DockerFiles/Dockerfile.dev.small
args:
- API_CLOUD_MODE=${API_CLOUD_MODE:-false}
env_file:
- .env
environment:
- API_DEVELOPMENT_MODE=${API_DEVELOPMENT_MODE:-true}
entrypoint: ['sh', '-c']
command: ['npm run migration:run && npm run seed']
restart: 'no'
volumes:
- .:/usr/src/app
networks:
- kodus-backend-services
- shared-network
depends_on:
db_postgres:
condition: service_healthy
db_mongodb:
condition: service_healthy

db_mongodb:
image: mongo:8
container_name: mongodb
ports: ["27017:27017"]
environment:
MONGO_INITDB_ROOT_USERNAME: ${API_MG_DB_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${API_MG_DB_PASSWORD}
MONGO_INITDB_DATABASE: ${API_MG_DB_DATABASE}
volumes:
- mongodbdata:/data/db
healthcheck:
test: ["CMD-SHELL", "echo 'db.runCommand({ ping: 1 }).ok' | mongosh --quiet mongodb://$${MONGO_INITDB_ROOT_USERNAME}:$${MONGO_INITDB_ROOT_PASSWORD}@localhost:27017/admin | grep -q 1"]
interval: 10s
timeout: 5s
retries: 20
start_period: 20s
networks:
- kodus-backend-services
db_postgres:
image: pgvector/pgvector:pg16
container_name: db_postgres
ports: ['5432:5432']
environment:
POSTGRES_USER: ${API_PG_DB_USERNAME}
POSTGRES_PASSWORD: ${API_PG_DB_PASSWORD}
POSTGRES_DB: ${API_PG_DB_DATABASE}
volumes:
- pgdata:/var/lib/postgresql/data
- ./docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d:ro
healthcheck:
test:
[
'CMD-SHELL',
'pg_isready -U ${API_PG_DB_USERNAME} -d ${API_PG_DB_DATABASE}',
]
interval: 5s
timeout: 3s
retries: 20
start_period: 10s
networks:
- kodus-backend-services

db_mongodb:
image: mongo:8
container_name: mongodb
ports: ['27017:27017']
environment:
MONGO_INITDB_ROOT_USERNAME: ${API_MG_DB_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${API_MG_DB_PASSWORD}
MONGO_INITDB_DATABASE: ${API_MG_DB_DATABASE}
volumes:
- mongodbdata:/data/db
healthcheck:
test:
[
'CMD-SHELL',
"echo 'db.runCommand({ ping: 1 }).ok' | mongosh --quiet mongodb://$${MONGO_INITDB_ROOT_USERNAME}:$${MONGO_INITDB_ROOT_PASSWORD}@localhost:27017/admin | grep -q 1",
]
interval: 10s
timeout: 5s
retries: 20
start_period: 20s
networks:
- kodus-backend-services

volumes:
yalc_store: {}
pgdata: {}
mongodbdata: {}
yalc_store: {}
pgdata: {}
mongodbdata: {}

networks:
kodus-backend-services:
Expand Down
54 changes: 53 additions & 1 deletion docker-compose.dev.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
services:
kodus-orchestrator:
container_name: ${GLOBAL_API_CONTAINER_NAME}
image: kodus-orchestrator-dev
build:
context: .
dockerfile: DockerFiles/Dockerfile.dev
Expand All @@ -18,10 +19,39 @@ services:
volumes:
- .:/usr/src/app:delegated
- /usr/src/app/node_modules
- ./certs:/usr/src/app/certs:ro
networks:
- kodus-backend-services
- shared-network
depends_on:
migrator:
condition: service_completed_successfully

migrator:
container_name: ${GLOBAL_API_CONTAINER_NAME}_migrator
image: kodus-orchestrator-dev
build:
context: .
dockerfile: DockerFiles/Dockerfile.dev
args:
- API_CLOUD_MODE=${API_CLOUD_MODE:-false}
env_file:
- ${ENV_FILE:-.env}
environment:
- API_DEVELOPMENT_MODE=${API_DEVELOPMENT_MODE:-true}
entrypoint: sh -c
command: npm run migration:run
restart: 'no'
volumes:
- .:/usr/src/app:delegated
- /usr/src/app/node_modules
networks:
- kodus-backend-services
- shared-network
depends_on:
db_postgres:
condition: service_healthy
db_mongodb:
condition: service_healthy

db_postgres:
profiles:
Expand All @@ -41,6 +71,17 @@ services:
- ./docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
networks:
- kodus-backend-services
restart: unless-stopped
healthcheck:
test:
[
'CMD-SHELL',
'pg_isready -U ${API_PG_DB_USERNAME} -d ${API_PG_DB_DATABASE}',
]
interval: 5s
timeout: 3s
retries: 20
start_period: 10s

db_mongodb:
profiles:
Expand All @@ -57,6 +98,17 @@ services:
MONGO_INITDB_DATABASE: ${API_MG_DB_DATABASE}
networks:
- kodus-backend-services
restart: unless-stopped
healthcheck:
test:
[
'CMD-SHELL',
"echo 'db.runCommand({ ping: 1 }).ok' | mongosh --quiet mongodb://$${MONGO_INITDB_ROOT_USERNAME}:$${MONGO_INITDB_ROOT_PASSWORD}@localhost:27017/admin | grep -q 1",
]
interval: 10s
timeout: 5s
retries: 20
start_period: 20s

volumes:
pgdata:
Expand Down
1 change: 0 additions & 1 deletion docker-compose.prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ services:
container_name: ${CONTAINER_NAME}
volumes:
- log_volume:/app/logs
- ./certs:/usr/src/app/certs:ro
logging:
driver: json-file
options:
Expand Down
Loading
Loading