Compare commits

...

3 Commits

3 changed files with 119 additions and 74 deletions
+28 -1
View File
@@ -5,8 +5,14 @@
} }
adnova.itqdev.xyz { adnova.itqdev.xyz {
handle_path /health/* { @healthPath path /health /health/*
handle @healthPath {
import basic-auth import basic-auth
reverse_proxy http://backend:8080
}
handle_path /static/* {
reverse_proxy http://backend-staticfiles:80
} }
reverse_proxy http://backend:8080 reverse_proxy http://backend:8080
@@ -16,6 +22,7 @@ admin.adnova.itqdev.xyz {
import basic-auth import basic-auth
root * /var/www/admin root * /var/www/admin
file_server
} }
loadtest.adnova.itqdev.xyz { loadtest.adnova.itqdev.xyz {
@@ -27,3 +34,23 @@ loadtest.adnova.itqdev.xyz {
grafana.adnova.itqdev.xyz { grafana.adnova.itqdev.xyz {
reverse_proxy http://grafana:3000 reverse_proxy http://grafana:3000
} }
pgadmin.adnova.itqdev.xyz {
reverse_proxy http://pgadmin:80
}
zipkin.adnova.itqdev.xyz {
import basic-auth
reverse_proxy http://zipkin:9411
}
prometheus.adnova.itqdev.xyz {
import basic-auth
reverse_proxy http://prometheus:9090
}
minio.adnova.itqdev.xyz {
reverse_proxy http://minio:9000
}
+46 -42
View File
@@ -34,36 +34,19 @@
{ {
name: "Gitea Repository", name: "Gitea Repository",
link: "https://git.itqdev.xyz/PROD.2025/AdNova", link: "https://git.itqdev.xyz/PROD.2025/AdNova",
description: "Main monorepo." description: "Main monorepo on Gitea."
}, },
{ {
name: "Jira Project Board", name: "Rest API Docs",
link: "https://jira.example.com/project", link: "https://adnova.itqdev.xyz/docs",
description: "Task tracking and project management." description: "Rest API Docs on Swagger."
}, },
{ {
name: "Jenkins CI/CD", name: "Django Admin",
link: "https://jenkins.example.com", link: "https://adnova.itqdev.xyz/admin/",
username: "ci_admin", username: "admin",
password: "jenkins_pass", password: "admin",
description: "Continuous Integration and Deployment pipelines." description: "Django Admin panel."
}
]
},
{
category: "Cloud Platforms",
items: [
{
name: "AWS Console",
link: "https://console.aws.amazon.com",
username: "aws_root",
password: "aws_super_secret",
description: "Access to AWS cloud services."
},
{
name: "Google Cloud Console",
link: "https://console.cloud.google.com",
description: "Access to Google Cloud Platform services."
} }
] ]
}, },
@@ -72,20 +55,48 @@
items: [ items: [
{ {
name: "Grafana", name: "Grafana",
link: "https://grafana.example.com", link: "https://grafana.adnova.itqdev.xyz",
username: "admin", username: "admin",
password: "proooooood", password: "proooooood",
description: "Real-time system metrics and dashboards." description: "Real-time system metrics and dashboards."
}, },
{ {
name: "Kibana Logs", name: "Prometheus",
link: "https://kibana.example.com", link: "https://prometheus.adnova.itqdev.xyz",
description: "Centralized log management and analysis." username: "admin",
password: "kit2025_observability",
description: "Real-time system metrics and scrape targets."
},
{
name: "Zipkin",
link: "https://zipkin.adnova.itqdev.xyz",
username: "admin",
password: "kit2025_observability",
description: "Latest traces from production."
},
{
name: "Django Silk",
link: "https://adnova.itqdev.xyz/silk/",
username: "admin",
password: "admin",
description: "App profiles and performance info in production, need to authenticate first as staff in Django Admin."
}, },
{ {
name: "Adnova Alerts", name: "Adnova Alerts",
link: "https://t.me/adnova_alerts", link: "https://t.me/adnova_alerts",
description: "Telegram channel where alerts are posted." description: "Telegram channel where alerts are posted."
},
{
name: "Healthcheck",
link: "https://adnova.itqdev.xyz/health",
username: "admin",
password: "kit2025_observability",
description: "Summary of integration status between services."
},
{
name: "Uptime-Kuma Dashboard",
link: "https://status.adnova.itqdev.xyz",
description: "External monitoring of AdNova."
} }
] ]
}, },
@@ -93,18 +104,11 @@
category: "Databases", category: "Databases",
items: [ items: [
{ {
name: "Production DB Admin", name: "Pgadmin",
link: "https://dbadmin.example.com/prod", link: "https://pgadmin.adnova.itqdev.xyz",
username: "db_prod_admin", username: "admin@mail.com",
password: "db_prod_secure_pass", password: "password",
description: "Direct access to production database." description: "Access to production database."
},
{
name: "Staging DB Admin",
link: "https://dbadmin.example.com/staging",
username: "db_stage_user",
password: "db_stage_pass",
description: "Access to staging database for testing."
} }
] ]
} }
+18 -4
View File
@@ -263,13 +263,24 @@
function setupWebSocket () function setupWebSocket ()
{ {
const wsUrl = 'ws://' + window.location.host + '/ws' let wsUrl = 'ws://' + window.location.host + '/ws'
ws = new WebSocket( wsUrl ) let triedSecure = false
function connect ( url )
{
ws = new WebSocket( url )
ws.onopen = () => console.log( 'WebSocket connected' ) ws.onopen = () => console.log( 'WebSocket connected' )
ws.onclose = () => console.log( 'WebSocket disconnected' ) ws.onclose = () => console.log( 'WebSocket disconnected' )
ws.onerror = ( error ) => console.error( 'WebSocket error:', error ) ws.onerror = ( error ) =>
{
console.error( 'WebSocket error:', error )
if ( !triedSecure )
{
triedSecure = true
wsUrl = 'wss://' + window.location.host + '/ws'
connect( wsUrl )
}
}
ws.onmessage = ( event ) => ws.onmessage = ( event ) =>
{ {
const data = JSON.parse( event.data ) const data = JSON.parse( event.data )
@@ -306,6 +317,9 @@
} }
} }
connect( wsUrl )
}
function setRunningState () function setRunningState ()
{ {
isRunning = true isRunning = true