Compare commits
3 Commits
62a233b6c4
...
eccdd27ec5
| Author | SHA1 | Date | |
|---|---|---|---|
| eccdd27ec5 | |||
| 2f530f5278 | |||
| dc8e1401e0 |
@@ -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
|
||||||
|
}
|
||||||
|
|||||||
@@ -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."
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user