Skip to content

Commit 06e6d87

Browse files
committed
feat: centralize monitoring in one node.
1 parent 6f7ebcd commit 06e6d87

22 files changed

Lines changed: 340 additions & 189 deletions

.github/workflows/cd-keycloak.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
host: ${{ secrets.HOST }}
2222
username: deploy
2323
key: ${{ secrets.SSH_PRIVATE_KEY }}
24-
source: "infra/compose/docker-compose.keycloak.yml,infra/keycloak/,infra/scripts/,Makefile"
24+
source: "infra/keycloak/,infra/scripts/,Makefile,makefiles/keycloak.mk"
2525
target: "/home/deploy/survey-app"
2626
strip_components: 0
2727
rm: false
@@ -34,7 +34,7 @@ jobs:
3434
username: deploy
3535
key: ${{ secrets.SSH_PRIVATE_KEY }}
3636
script: |
37-
cat << 'EOF' > /home/deploy/survey-app/infra/compose/.env
37+
cat << 'EOF' > /home/deploy/survey-app/infra/keycloak/.env
3838
${{ secrets.ENV_FILE }}
3939
EOF
4040
@@ -56,7 +56,7 @@ jobs:
5656
username: deploy
5757
key: ${{ secrets.SSH_PRIVATE_KEY }}
5858
script: |
59-
cat << 'EOF' > /home/deploy/survey-app/infra/compose/CaddyfileKeycloak
59+
cat << 'EOF' > /home/deploy/survey-app/infra/keycloak/Caddyfile
6060
${{ secrets.CADDYFILE_KEYCLOAK }}
6161
EOF
6262
@@ -68,5 +68,5 @@ jobs:
6868
key: ${{ secrets.SSH_PRIVATE_KEY }}
6969
script: |
7070
cd /home/deploy/survey-app
71-
docker compose -f infra/compose/docker-compose.keycloak.yml down
72-
docker compose -f infra/compose/docker-compose.keycloak.yml --env-file infra/compose/.env up -d --build
71+
docker compose -f infra/keycloak/docker-compose.yml down --remove-orphans
72+
docker compose -f infra/keycloak/docker-compose.yml --env-file infra/keycloak/.env up -d --build
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: Deploy to monitoring
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
8+
jobs:
9+
deploy:
10+
runs-on: ubuntu-latest
11+
environment: monitoring
12+
concurrency:
13+
group: deploy-monitoring-${{ github.ref }}
14+
cancel-in-progress: true
15+
16+
steps:
17+
- name: Checkout code
18+
uses: actions/checkout@v3
19+
20+
- name: Copy project files to production server
21+
uses: appleboy/scp-action@v1
22+
with:
23+
host: ${{ secrets.HOST }}
24+
username: deploy
25+
key: ${{ secrets.SSH_PRIVATE_KEY }}
26+
source: "infra/monitoring/,infra/scripts/,Makefile,makefiles/monitoring.mk"
27+
target: "/home/deploy/survey-app"
28+
strip_components: 0
29+
rm: false
30+
overwrite: true
31+
32+
- name: Upload .env file
33+
uses: appleboy/ssh-action@v1
34+
with:
35+
host: ${{ secrets.HOST }}
36+
username: deploy
37+
key: ${{ secrets.SSH_PRIVATE_KEY }}
38+
script: |
39+
cat << 'EOF' > /home/deploy/survey-app/infra/monitoring/.env
40+
${{ secrets.ENV_FILE }}
41+
EOF
42+
43+
- name: Upload Caddyfile
44+
uses: appleboy/ssh-action@v1
45+
with:
46+
host: ${{ secrets.HOST }}
47+
username: deploy
48+
key: ${{ secrets.SSH_PRIVATE_KEY }}
49+
script: |
50+
cat << 'EOF' > /home/deploy/survey-app/infra/monitoring/Caddyfile
51+
${{ secrets.CADDY_FILE }}
52+
EOF
53+
54+
- name: Deploy with Docker Compose
55+
uses: appleboy/ssh-action@v1
56+
with:
57+
host: ${{ secrets.HOST }}
58+
username: deploy
59+
key: ${{ secrets.SSH_PRIVATE_KEY }}
60+
script: |
61+
cd /home/deploy/survey-app
62+
docker compose -f infra/monitoring/docker-compose.yml down --remove-orphans
63+
docker compose -f infra/monitoring/docker-compose.yml --env-file infra/monitoring/.env up -d --build

.github/workflows/cd-prod.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,5 +68,5 @@ jobs:
6868
key: ${{ secrets.SSH_PRIVATE_KEY }}
6969
script: |
7070
cd /home/deploy/survey-app
71-
docker compose -f infra/compose/docker-compose.yml down
71+
docker compose -f infra/compose/docker-compose.yml down --remove-orphans
7272
docker compose -f infra/compose/docker-compose.yml --env-file infra/compose/.env up -d --build

.github/workflows/cd-staging.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,5 +87,5 @@ jobs:
8787
key: ${{ secrets.SSH_PRIVATE_KEY }}
8888
script: |
8989
cd /home/deploy/survey-app
90-
docker compose -f infra/compose/docker-compose.yml down
90+
docker compose -f infra/compose/docker-compose.yml down --remove-orphans
9191
docker compose -f infra/compose/docker-compose.yml --env-file infra/compose/.env up -d --build

Makefile

Lines changed: 8 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,10 @@
1-
.PHONY: prod-restore-db prod-list-backups prod-backup dev-up dev-down dev-logs prod-up prod-down prod-logs caddy-reload container-exec prod-ps prod-restart prod-log-service dev-ps keycloak-up keycloak-down keycloak-logs keycloak-log-service keycloak-ps keycloak-restart ollama-pull
1+
.PHONY: help
22

3-
# Usage: make restore FILE=backups/your_backup.dump
4-
prod-restore-db:
5-
@echo "📦 Restoring from: $(FILE)"
6-
@./infra/compose/scripts/restore_db.sh --file $(FILE)
3+
include makefiles/compose.mk
4+
include makefiles/dev.mk
5+
include makefiles/keycloak.mk
6+
include makefiles/monitoring.mk
77

8-
prod-list-backups:
9-
docker compose -f infra/compose/docker-compose.yml run --rm --entrypoint patronx patronx-worker list
10-
11-
prod-backup:
12-
docker compose -f infra/compose/docker-compose.yml run --rm --entrypoint patronx patronx-worker backup
13-
14-
prod-up:
15-
docker compose -f infra/compose/docker-compose.yml --env-file infra/compose/.env up -d
16-
17-
prod-down:
18-
docker compose -f infra/compose/docker-compose.yml down
19-
20-
prod-logs:
21-
docker compose -f infra/compose/docker-compose.yml logs -f
22-
23-
prod-log-service:
24-
docker compose -f infra/compose/docker-compose.yml logs -f $(SERVICE)
25-
26-
prod-ps:
27-
docker compose -f infra/compose/docker-compose.yml ps
28-
29-
prod-restart:
30-
docker compose -f infra/compose/docker-compose.yml restart $(SERVICE)
31-
32-
caddy-reload: ## Usage: make caddy-reload CONTAINER=<container-name>
33-
docker exec $(CONTAINER) caddy reload --config /etc/caddy/Caddyfile --adapter caddyfile
34-
35-
container-logs:
36-
docker logs -f $(CONTAINER)
37-
38-
container-exec:
39-
docker exec -it $(CONTAINER) $(CMD)
40-
41-
dev-up:
42-
docker compose -f infra/compose/docker-compose.dev.yml --env-file infra/compose/.env up --build --force-recreate -d
43-
44-
dev-down:
45-
docker compose -f infra/compose/docker-compose.dev.yml down
46-
47-
dev-logs:
48-
docker compose -f infra/compose/docker-compose.dev.yml logs -f
49-
50-
dev-ps:
51-
docker compose -f infra/compose/docker-compose.dev.yml ps
52-
53-
keycloak-up:
54-
docker compose -f infra/compose/docker-compose.keycloak.yml --env-file infra/compose/.env up -d
55-
56-
keycloak-down:
57-
docker compose -f infra/compose/docker-compose.keycloak.yml down
58-
59-
keycloak-logs:
60-
docker compose -f infra/compose/docker-compose.keycloak.yml logs -f
61-
62-
keycloak-log-service:
63-
docker compose -f infra/compose/docker-compose.keycloak.yml logs -f $(SERVICE)
64-
65-
keycloak-ps:
66-
docker compose -f infra/compose/docker-compose.keycloak.yml ps
67-
68-
keycloak-restart:
69-
docker compose -f infra/compose/docker-compose.keycloak.yml restart $(SERVICE)
70-
71-
ollama-pull:
72-
docker exec -it ollama ollama pull tinyllama
8+
help: ## Show this help message
9+
@grep -h -E '^[a-zA-Z_-]+:.*?##' Makefile makefiles/*.mk | \
10+
awk -F':|##' '{printf " %-20s %s\n", $$1, $$3}' | sort

README.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,18 @@ services/
5050
backoffice/ (angular v20)
5151
analytics/ (fastapi python3.12)
5252
infra/
53-
monitoring/
54-
elk/
5553
scripts/
5654
keycloak/
55+
docker-compose.yml
56+
Caddyfile
57+
monitoring/
58+
elk/
59+
grafana/
60+
docker-compose.yml
61+
Caddyfile
5762
compose/
5863
docker-compose.yml
5964
docker-compose.dev.yml
60-
docker-compose.keycloak.yml
6165
Caddyfile
6266
docs/
6367
data-recovery.md

infra/compose/.env.example

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,7 @@ AWS_DEFAULT_REGION=
4444
COMPANY_NAME=
4545
COMPANY_WEBSITE=
4646
COMPANY_LOGO_URL=
47+
LOGSTASH_HOST=
48+
LOGSTASH_PORT=
49+
50+

infra/compose/Caddyfile

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,9 @@ http://localhost {
55
handle_path /analytics* {
66
reverse_proxy analytics:8000
77
}
8-
handle /monitoring* {
9-
basic_auth {
10-
{$KIBANA_USER} {$KIBANA_PASS_HASH}
11-
}
12-
reverse_proxy kibana:5601
13-
}
148
handle_path /backoffice* {
159
reverse_proxy backoffice:4200
1610
}
17-
handle /grafana* {
18-
reverse_proxy grafana:3000 {
19-
header_up Host {host}
20-
header_up X-Real-IP {remote}
21-
header_up X-Forwarded-For {remote}
22-
header_up X-Forwarded-Proto {scheme}
23-
}
24-
}
2511
handle {
2612
reverse_proxy /* frontend:5173
2713
}

infra/compose/docker-compose.dev.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ services:
4242
- ELASTIC_SEARCH_URL=http://elasticsearch:9200
4343
- ENVIRONMENT=development
4444
volumes:
45-
- ../elk/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
45+
- ../monitoring/elk/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
4646
depends_on:
4747
- elasticsearch
4848
healthcheck:

0 commit comments

Comments
 (0)