Capture current Ansible control plane state
Commit the accumulated infrastructure work that was living only in the working tree: monitoring stack, emergency access/bot, gyro allocator, grimmory, adguard, backup audit and the OpenCode agent definitions. Also ignore Python bytecode, local archives and Nix/direnv artifacts. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GTocXkGUUazHdKKd3r9k71
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
[Unit]
|
||||
Description=Notify Telegram about failed Gyro unit %i
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
User={{ gyro_user }}
|
||||
Group={{ gyro_group }}
|
||||
EnvironmentFile={{ gyro_config_dir }}/gyro.env
|
||||
ExecStart=/usr/local/libexec/gyro-failure-notify %i
|
||||
UMask=0077
|
||||
NoNewPrivileges=true
|
||||
PrivateTmp=true
|
||||
ProtectHome=true
|
||||
ProtectSystem=strict
|
||||
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
|
||||
@@ -0,0 +1,6 @@
|
||||
TINVEST_TOKEN={{ gyro_tinvest_token | string | to_json }}
|
||||
TINVEST_ACCOUNT_ID={{ gyro_tinvest_account_id | string | to_json }}
|
||||
TELEGRAM_BOT_TOKEN={{ gyro_telegram_bot_token | string | to_json }}
|
||||
TELEGRAM_USER_ID={{ gyro_telegram_user_id | string | to_json }}
|
||||
TELEGRAM_PROXY={{ gyro_telegram_proxy | string | to_json }}
|
||||
DRY_RUN_OVERRIDE={{ gyro_dry_run_override | string | to_json }}
|
||||
@@ -0,0 +1,31 @@
|
||||
[Unit]
|
||||
Description=Gyro investment allocator
|
||||
Wants=network-online.target
|
||||
After=network-online.target
|
||||
OnFailure=gyro-failure@%n.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
User={{ gyro_user }}
|
||||
Group={{ gyro_group }}
|
||||
WorkingDirectory={{ gyro_app_dir }}
|
||||
EnvironmentFile={{ gyro_config_dir }}/gyro.env
|
||||
Environment=UV_CACHE_DIR={{ gyro_cache_dir }}/uv
|
||||
Environment=PYTHONDONTWRITEBYTECODE=1
|
||||
ExecStart=/usr/local/bin/uv run --frozen --no-sync python main.py
|
||||
UMask=0077
|
||||
NoNewPrivileges=true
|
||||
PrivateTmp=true
|
||||
ProtectClock=true
|
||||
ProtectControlGroups=true
|
||||
ProtectHome=true
|
||||
ProtectHostname=true
|
||||
ProtectKernelLogs=true
|
||||
ProtectKernelModules=true
|
||||
ProtectKernelTunables=true
|
||||
ProtectSystem=strict
|
||||
ReadWritePaths={{ gyro_cache_dir }}
|
||||
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
|
||||
RestrictNamespaces=true
|
||||
LockPersonality=true
|
||||
MemoryDenyWriteExecute=true
|
||||
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=Run Gyro investment allocator on weekdays
|
||||
|
||||
[Timer]
|
||||
OnCalendar={{ gyro_timer_on_calendar }}
|
||||
Persistent=true
|
||||
Unit=gyro.service
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
Reference in New Issue
Block a user