chore(public): sanitize repository presentation

This commit is contained in:
igor04091968
2026-06-03 08:02:15 +03:00
parent dd3163624b
commit 9fc218dc49
107 changed files with 829 additions and 139257 deletions
+1 -1
View File
@@ -248,7 +248,7 @@ Playbook:
- `telegram_allowed_chat_ids`
- `tsj_bot_source_local_path`
3. Убедитесь, что в inventory есть группа `[proxmox]`.
Для текущего контура AW-Rus bot ожидает Proxmox host `10.10.10.2`.
Для текущего контура AW-Rus bot ожидает Proxmox host `<GATEWAY_HOST>`.
Рабочая модель для этого контура: `igor` + `sudo`, а не обязательный `root` login.
4. При необходимости задайте recovery-команды для AW-Rus:
- `tsj_bot_aw_rus_worktime_heal_cmd`
+2 -2
View File
@@ -21,7 +21,7 @@
aw_file_1c_manager_brief_model: gpt-5.3-codex
aw_file_1c_manager_brief_codex_user: igor
aw_file_1c_manager_brief_codex_bin: codex
aw_file_1c_manager_brief_workdir: /home/igor
aw_file_1c_manager_brief_workdir: ~
aw_file_1c_manager_brief_top_limit: 5
aw_file_1c_manager_brief_freshness_hours: 8
aw_file_1c_manager_brief_timeout_sec: 300
@@ -295,7 +295,7 @@
- name: Разрешить Windows upload key для igor
ansible.builtin.lineinfile:
path: /home/igor/.ssh/authorized_keys
path: ~/.ssh/authorized_keys
line: "{{ lookup('file', aw_file_1c_windows_upload_pubkey_path) }}"
create: true
owner: igor
+2 -2
View File
@@ -5,7 +5,7 @@
gather_facts: true
vars:
proxmox_web_gateway_public_hostname: "dm.iri1968.dpdns.org"
proxmox_web_gateway_public_hostname: "detmir.example.local"
proxmox_web_gateway_root: "/var/www/proxmox-web-gateway"
proxmox_web_gateway_site_name: "proxmox-web-gateway.conf"
proxmox_web_gateway_site_path: "/etc/nginx/sites-available/{{ proxmox_web_gateway_site_name }}"
@@ -17,7 +17,7 @@
proxmox_web_gateway_auth_realm: "DetMir operations gateway"
proxmox_web_gateway_auth_user: "detmir"
proxmox_web_gateway_auth_file: "/etc/nginx/proxmox-web-gateway.htpasswd"
proxmox_web_gateway_credentials_file: "/root/proxmox-web-gateway.credentials"
proxmox_web_gateway_credentials_file: "/etc/detmir/proxmox-web-gateway.credentials"
proxmox_web_gateway_routes:
- slug: "proxmox-gui"
title: "Proxmox VE"
+6 -6
View File
@@ -229,7 +229,7 @@
TELEGRAM_PROXY_URL={{ tsj_bot_telegram_proxy_url | default('http://127.0.0.1:11090') }}
AI_CHAT_ENABLED={{ tsj_bot_ai_chat_enabled | default('true') }}
AI_CHAT_TIMEOUT_SEC={{ tsj_bot_ai_chat_timeout_sec | default(1800) }}
AI_CHAT_WORKDIR={{ tsj_bot_ai_chat_workdir | default('/home/igor') }}
AI_CHAT_WORKDIR={{ tsj_bot_ai_chat_workdir | default('~') }}
AI_CHAT_SANDBOX={{ tsj_bot_ai_chat_sandbox | default('workspace-write') }}
CODEX_MODEL={{ tsj_bot_codex_model | default('gpt-5.3-codex') }}
CODEX_FALLBACK_MODELS={{ tsj_bot_codex_fallback_models | default('gpt-5.4-mini') }}
@@ -238,8 +238,8 @@
TMUX_SESSION={{ tsj_bot_tmux_session | default('ai') }}
TMUX_CREATE_IF_MISSING={{ tsj_bot_tmux_create_if_missing | default('false') }}
TMUX_START_COMMAND={{ tsj_bot_tmux_start_command | default('codex') }}
PFSENSE_ENV_PATH={{ tsj_bot_pfsense_env_path | default('/home/igor/.config/tsj-bot/pfsense.env.readonly') }}
PFSENSE_INVENTORY_PATH={{ tsj_bot_pfsense_inventory_path | default('/home/igor/.config/tsj-bot/inventory.md') }}
PFSENSE_ENV_PATH={{ tsj_bot_pfsense_env_path | default('~/.config/tsj-bot/pfsense.env.readonly') }}
PFSENSE_INVENTORY_PATH={{ tsj_bot_pfsense_inventory_path | default('~/.config/tsj-bot/inventory.md') }}
PFSENSE_CHANGE_CONTROL_ENABLED={{ tsj_bot_pfsense_change_control_enabled | default('true') }}
PFSENSE_CHANGE_CONFIRM_TTL_SEC={{ tsj_bot_pfsense_change_confirm_ttl_sec | default(900) }}
OPENVPN_CONFIG_ENABLED={{ tsj_bot_openvpn_config_enabled | default('true') }}
@@ -327,14 +327,14 @@
- { key: "AW_RUS_WINDOWS_POLICY_PATH", value: "{{ tsj_bot_aw_rus_windows_policy_path | default('C:\\ProgramData\\AWatch-rus\\dlp-policy.json') }}" }
- { key: "AW_RUS_WINDOWS_BROWSER_COLLECTOR_PATH", value: "{{ tsj_bot_aw_rus_windows_browser_collector_path | default('C:\\ProgramData\\AWatch-rus\\browser-domains-native-collector.ps1') }}" }
- { key: "AW_RUS_WINDOWS_EMAIL_COLLECTOR_PATH", value: "{{ tsj_bot_aw_rus_windows_email_collector_path | default('C:\\ProgramData\\AWatch-rus\\email-outbound-collector.ps1') }}" }
- { key: "AI_CHAT_WORKDIR", value: "{{ tsj_bot_ai_chat_workdir | default('/home/igor') }}" }
- { key: "AI_CHAT_WORKDIR", value: "{{ tsj_bot_ai_chat_workdir | default('~') }}" }
- { key: "AI_EXEC_USER", value: "{{ tsj_bot_ai_exec_user | default('igor') }}" }
- { key: "INCIDENT_FAILURE_QUORUM_CHECKS", value: "{{ tsj_bot_incident_failure_quorum_checks | default(2) }}" }
- { key: "DETMIR_AI_STATE_FILE", value: "{{ tsj_bot_detmir_ai_state_file | default('/var/lib/detmir-ai/latest-state.json') }}" }
- { key: "TSJ_GUARDIAN_STATUS_BIN", value: "{{ tsj_bot_guardian_status_bin | default('/usr/local/bin/tsj-guardian-status') }}" }
- { key: "TMUX_USER", value: "{{ tsj_bot_tmux_user | default('igor') }}" }
- { key: "PFSENSE_ENV_PATH", value: "{{ tsj_bot_pfsense_env_path | default('/home/igor/.config/tsj-bot/pfsense.env.readonly') }}" }
- { key: "PFSENSE_INVENTORY_PATH", value: "{{ tsj_bot_pfsense_inventory_path | default('/home/igor/.config/tsj-bot/inventory.md') }}" }
- { key: "PFSENSE_ENV_PATH", value: "{{ tsj_bot_pfsense_env_path | default('~/.config/tsj-bot/pfsense.env.readonly') }}" }
- { key: "PFSENSE_INVENTORY_PATH", value: "{{ tsj_bot_pfsense_inventory_path | default('~/.config/tsj-bot/inventory.md') }}" }
notify: Restart tsj bot
- name: Установить systemd unit бота
+3 -3
View File
@@ -13,21 +13,21 @@ aw_server_public_host: "{{ (hostvars[aw_server_inventory_host].ansible_host | de
aw_worktime_report_base: "http://{{ aw_server_public_host }}:5610"
aw_worktime_timezone: "Europe/Moscow"
aw_worktime_influx_enabled: false
aw_worktime_influx_url: "http://10.10.10.10:8086"
aw_worktime_influx_url: "http://<INFLUXDB_HOST>:8086"
aw_worktime_influx_org: "proxmox"
aw_worktime_influx_bucket: "aw_metrics"
aw_worktime_influx_hosts: "SHARKON2025"
aw_worktime_influx_days: "today,yesterday"
aw_worktime_influx_token: ""
aw_dlp_influx_enabled: false
aw_dlp_influx_url: "http://10.10.10.10:8086"
aw_dlp_influx_url: "http://<INFLUXDB_HOST>:8086"
aw_dlp_influx_org: "proxmox"
aw_dlp_influx_bucket: "aw_metrics"
aw_dlp_influx_hosts: "SHARKON2025"
aw_dlp_influx_lookback_days: 30
aw_dlp_influx_event_limit: 2000
aw_dlp_influx_token: ""
aw_monitored_windows_host: "192.168.100.18"
aw_monitored_windows_host: "<WINDOWS_HOST>"
aw_monitored_windows_hostname: "SHARKON2025"
aw_rus_health_worktime_api_base: "http://127.0.0.1:5610"
aw_rus_health_state_dir: "{{ aw_server_data_dir }}/health"
@@ -1,14 +1,14 @@
aw_pfsense_poller_config:
poll_interval_seconds: 60
aw:
server_host: "10.10.10.13"
server_host: "<AW_SERVER_HOST>"
server_port: 5600
hostname: "PFSENSE-EDGE01"
pulse_time_seconds: 120
timeout_seconds: 15
pfsense:
name: "pfSense Edge 01"
host: "10.10.10.1"
host: "<FIREWALL_HOST>"
scheme: "https"
verify_tls: false
timeout_seconds: 15
+18 -18
View File
@@ -3,7 +3,7 @@ telegram_allowed_chat_ids: "123456789"
telegram_default_chat_id: 123456789
# Path on controller (this machine) to source bot script for deployment.
tsj_bot_source_local_path: "/mnt/usb_hdd2/Projects/ActivityWatch-Russian/proxmox/tsj_guardian_bot.py"
tsj_bot_source_local_path: "<PROJECT_ROOT>/proxmox/tsj_guardian_bot.py"
tsj_bot_runtime_root: "/opt/infra-admin"
# Optional bot tuning
@@ -14,11 +14,11 @@ tsj_bot_retry_autorecovery_every_sec: 300
tsj_bot_telegram_proxy_url: "http://127.0.0.1:11090"
tsj_bot_https_proxy_url: "http://127.0.0.1:11090"
tsj_bot_http_proxy_url: "http://127.0.0.1:11090"
tsj_bot_no_proxy: "localhost,127.0.0.1,10.10.10.0/24"
tsj_bot_node_13_host: "10.10.10.13"
tsj_bot_node_16_host: "10.10.10.16"
tsj_bot_node_13_url: "http://10.10.10.13:5600/api/0/info"
tsj_bot_node_16_url: "http://10.10.10.16/"
tsj_bot_no_proxy: "localhost,127.0.0.1,<SERVER_SUBNET_CIDR>"
tsj_bot_node_13_host: "<AW_SERVER_HOST>"
tsj_bot_node_16_host: "<AUX_NODE_HOST>"
tsj_bot_node_13_url: "http://<AW_SERVER_HOST>:5600/api/0/info"
tsj_bot_node_16_url: "http://<AUX_NODE_HOST>/"
tsj_bot_node_16_enabled: "false"
tsj_bot_fs_warn_pct: 85
tsj_bot_fs_crit_pct: 92
@@ -26,13 +26,13 @@ tsj_bot_fs_targets: "host,200,201,202,203"
tsj_bot_fs_exclude_types: "tmpfs,devtmpfs,proc,sysfs,cgroup,cgroup2,overlay,squashfs,nsfs,tracefs,debugfs,securityfs,configfs,fusectl,mqueue,hugetlbfs,ramfs"
tsj_bot_fs_immediate_ai_on_critical: "true"
tsj_bot_ai_escalation_mode: "codex_exec"
tsj_bot_ai_chat_workdir: "/home/igor"
tsj_bot_ai_chat_workdir: "<OPERATOR_HOME>"
tsj_bot_ai_exec_user: "igor"
tsj_bot_tmux_user: "igor"
tsj_bot_pfsense_change_control_enabled: "true"
tsj_bot_pfsense_change_confirm_ttl_sec: 900
tsj_bot_pfsense_env_path: "/home/igor/.config/tsj-bot/pfsense.env.readonly"
tsj_bot_pfsense_inventory_path: "/home/igor/.config/tsj-bot/inventory.md"
tsj_bot_pfsense_env_path: "<OPERATOR_HOME>/.config/tsj-bot/pfsense.env.readonly"
tsj_bot_pfsense_inventory_path: "<OPERATOR_HOME>/.config/tsj-bot/inventory.md"
tsj_bot_openvpn_config_enabled: "true"
tsj_bot_openvpn_config_confirm_ttl_sec: 900
tsj_bot_openvpn_expiry_warn_enabled: "false"
@@ -45,15 +45,15 @@ tsj_bot_update_targets: "auto"
tsj_bot_pfsense_mcp_bearer: "CHANGE_ME"
# AW-Rus + DLP check defaults
tsj_bot_aw_rus_api_base: "http://10.10.10.13:5600/api/0"
tsj_bot_aw_rus_worktime_base: "http://10.10.10.13:5610"
tsj_bot_aw_dlp_policy_api_base: "http://10.10.10.13:5601/api/0"
tsj_bot_aw_rus_api_base: "http://<AW_SERVER_HOST>:5600/api/0"
tsj_bot_aw_rus_worktime_base: "http://<AW_SERVER_HOST>:5610"
tsj_bot_aw_dlp_policy_api_base: "http://<AW_SERVER_HOST>:5601/api/0"
tsj_bot_aw_dlp_policy_actor: "tsj-guardian-bot"
tsj_bot_aw_rus_worktime_heal_cmd: "sshpass -p 'CHANGE_ME' ssh -o PubkeyAuthentication=no -o StrictHostKeyChecking=no igor@10.10.10.13 'sudo -S /usr/local/bin/aw-worktime-autoheal-rust && sudo -S systemctl reset-failed aw-worktime-ui-bridge.service && sudo -S systemctl start aw-worktime-ui-bridge.service'"
tsj_bot_aw_rus_dlp_heal_cmd: "sshpass -p 'CHANGE_ME' ssh -o PubkeyAuthentication=no -o StrictHostKeyChecking=no igor@10.10.10.13 'sudo -S systemctl restart activitywatch-server.service && sudo -S systemctl start activitywatch-dlp-aggregator.service || true && sudo -S /usr/local/bin/aw-health-check && sudo -S /usr/local/bin/dlp-health-check'"
tsj_bot_aw_rus_case_api_base: "http://10.10.10.13:5602"
tsj_bot_aw_rus_worktime_heal_cmd: "sshpass -p 'CHANGE_ME' ssh -o PubkeyAuthentication=no -o StrictHostKeyChecking=no igor@<AW_SERVER_HOST> 'sudo -S /usr/local/bin/aw-worktime-autoheal-rust && sudo -S systemctl reset-failed aw-worktime-ui-bridge.service && sudo -S systemctl start aw-worktime-ui-bridge.service'"
tsj_bot_aw_rus_dlp_heal_cmd: "sshpass -p 'CHANGE_ME' ssh -o PubkeyAuthentication=no -o StrictHostKeyChecking=no igor@<AW_SERVER_HOST> 'sudo -S systemctl restart activitywatch-server.service && sudo -S systemctl start activitywatch-dlp-aggregator.service || true && sudo -S /usr/local/bin/aw-health-check && sudo -S /usr/local/bin/dlp-health-check'"
tsj_bot_aw_rus_case_api_base: "http://<AW_SERVER_HOST>:5602"
tsj_bot_aw_rus_hayabusa_enabled: "true"
tsj_bot_aw_rus_hayabusa_ssh_cmd: "sshpass -p 'CHANGE_ME' ssh -o PubkeyAuthentication=no -o StrictHostKeyChecking=no igor@10.10.10.13"
tsj_bot_aw_rus_hayabusa_ssh_cmd: "sshpass -p 'CHANGE_ME' ssh -o PubkeyAuthentication=no -o StrictHostKeyChecking=no igor@<AW_SERVER_HOST>"
tsj_bot_aw_rus_host: "SHARKON2025"
tsj_bot_aw_rus_primary_user: "USER1"
tsj_bot_aw_rus_stale_sec: 900
@@ -61,8 +61,8 @@ tsj_bot_aw_rus_slo_enabled: "true"
tsj_bot_aw_rus_slo_alert_window: "24h"
tsj_bot_aw_rus_slo_min_samples: 4
tsj_bot_aw_rus_slo_max_age_sec: 90
tsj_bot_aw_rus_slo_summary_cmd: "sshpass -p 'CHANGE_ME' ssh -o PubkeyAuthentication=no -o StrictHostKeyChecking=no igor@10.10.10.13 'cat /var/lib/activitywatch/slo/aw-slo-summary.json'"
tsj_bot_aw_rus_windows_host: "192.168.100.18"
tsj_bot_aw_rus_slo_summary_cmd: "sshpass -p 'CHANGE_ME' ssh -o PubkeyAuthentication=no -o StrictHostKeyChecking=no igor@<AW_SERVER_HOST> 'cat /var/lib/activitywatch/slo/aw-slo-summary.json'"
tsj_bot_aw_rus_windows_host: "<WINDOWS_HOST>"
tsj_bot_aw_rus_windows_ssh_user: "Администратор"
tsj_bot_aw_rus_windows_ssh_password: "CHANGE_ME"
tsj_bot_aw_rus_windows_config_path: "C:\\ProgramData\\AWatch-rus\\deployment-config.json"
+1 -1
View File
@@ -6,7 +6,7 @@ aw-ct ansible_host=10.20.30.13 ansible_user=root ansible_port=22
[aw_windows]
# Примечание: в русифицированных Windows часто нужен "Администратор", а не "Administrator".
win-node1 ansible_host=192.168.100.18 ansible_user=Администратор ansible_password=CHANGE_ME ansible_connection=winrm ansible_winrm_transport=ntlm ansible_port=5985 ansible_winrm_server_cert_validation=ignore
win-node1 ansible_host=<WINDOWS_HOST> ansible_user=Администратор ansible_password=CHANGE_ME ansible_connection=winrm ansible_winrm_transport=ntlm ansible_port=5985 ansible_winrm_server_cert_validation=ignore
[aw_pfsense_pollers]
# pfsense-poller1 ansible_host=192.168.100.30 ansible_user=root ansible_port=22
-11
View File
@@ -1,11 +0,0 @@
[proxmox]
pve-detmir ansible_host=10.10.10.2 ansible_user=igor ansible_password=04091968 ansible_connection=ssh ansible_become=true ansible_become_method=sudo ansible_become_password=04091968 ansible_port=22
[aw_server]
aw-prod ansible_host=10.10.10.13 ansible_user=igor ansible_password=04091968 ansible_connection=ssh ansible_become=true ansible_become_method=sudo ansible_become_password=04091968
[grafana]
grafana-main grafana_url=http://10.10.10.11:3000 grafana_validate_tls=false grafana_folder_title=DLP grafana_detmir_folder_uid=efk080s0lfc3ka grafana_pfsense_folder_uid=bfcx6gg70sagwc
[aw_windows]
rdp-prod ansible_host=192.168.100.18 ansible_user=Администратор ansible_password=Sergei2009@ ansible_connection=winrm ansible_winrm_transport=ntlm ansible_port=5985 ansible_winrm_server_cert_validation=ignore
@@ -6,7 +6,7 @@ map $http_upgrade $connection_upgrade {
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name {{ proxmox_web_gateway_public_hostname }} 10.10.10.2 192.168.63.213 _;
server_name {{ proxmox_web_gateway_public_hostname }} 10.10.10.2 <WAN_OR_EXTERNAL_IP> _;
access_log /var/log/nginx/proxmox-web-gateway.access.log;
error_log /var/log/nginx/proxmox-web-gateway.error.log;
@@ -17,7 +17,7 @@ server {
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name {{ proxmox_web_gateway_public_hostname }} 10.10.10.2 192.168.63.213 _;
server_name {{ proxmox_web_gateway_public_hostname }} 10.10.10.2 <WAN_OR_EXTERNAL_IP> _;
access_log /var/log/nginx/proxmox-web-gateway.access.log;
error_log /var/log/nginx/proxmox-web-gateway.error.log;