chore: gitea-actions improvements, graylog/fluent-bit logging, zomboid mod
- Gitea actions: add handlers, improve deps and service template - Graylog: simplify container config, add Caddy reverse proxy - Add fluent-bit container for log forwarding - Add ClimbDownRope mod (Workshop ID: 3000725405) to zomboid 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -177,6 +177,49 @@
|
||||
}
|
||||
}
|
||||
|
||||
# Graylog Logs - {{ logs_server_name }}
|
||||
{{ logs_server_name }} {
|
||||
# GELF HTTP endpoint - open for Lambda (auth via header)
|
||||
# Must come BEFORE ip_restricted_site to allow external access
|
||||
@gelf_authorized {
|
||||
path /gelf
|
||||
header X-Gelf-Token "{{ gelf_auth_token }}"
|
||||
}
|
||||
|
||||
handle @gelf_authorized {
|
||||
reverse_proxy localhost:12202
|
||||
}
|
||||
|
||||
# Reject unauthorized GELF requests
|
||||
handle /gelf {
|
||||
respond "Unauthorized" 401
|
||||
}
|
||||
|
||||
# IP restriction for Graylog web UI (excludes /gelf which is handled above)
|
||||
@local {
|
||||
remote_ip {{ caddy_local_networks | join(' ') }}
|
||||
}
|
||||
|
||||
@denied {
|
||||
not remote_ip {{ caddy_local_networks | join(' ') }}
|
||||
not path /gelf
|
||||
}
|
||||
|
||||
handle @denied {
|
||||
redir https://debyl.io{uri} 302
|
||||
}
|
||||
|
||||
handle @local {
|
||||
import common_headers
|
||||
reverse_proxy localhost:9000
|
||||
}
|
||||
|
||||
log {
|
||||
output file /var/log/caddy/graylog.log
|
||||
format json
|
||||
}
|
||||
}
|
||||
|
||||
# ============================================================================
|
||||
# COMPLEX CONFIGURATIONS
|
||||
# ============================================================================
|
||||
|
||||
32
ansible/roles/podman/templates/fluent-bit/fluent-bit.conf.j2
Normal file
32
ansible/roles/podman/templates/fluent-bit/fluent-bit.conf.j2
Normal file
@@ -0,0 +1,32 @@
|
||||
[SERVICE]
|
||||
Flush 5
|
||||
Daemon Off
|
||||
Log_Level info
|
||||
Parsers_File parsers.conf
|
||||
|
||||
# Read from systemd journal - filter for Podman container logs
|
||||
# Container logs come from conmon process with CONTAINER_NAME field
|
||||
[INPUT]
|
||||
Name systemd
|
||||
Tag journal.*
|
||||
Systemd_Filter _COMM=conmon
|
||||
Read_From_Tail On
|
||||
Strip_Underscores On
|
||||
|
||||
# Extract container name for better filtering in Graylog
|
||||
[FILTER]
|
||||
Name record_modifier
|
||||
Match journal.*
|
||||
Record host {{ ansible_hostname }}
|
||||
Record source podman
|
||||
|
||||
# Output to Graylog GELF UDP (local, port 12203)
|
||||
# Graylog needs a GELF UDP input configured on this port
|
||||
[OUTPUT]
|
||||
Name gelf
|
||||
Match journal.*
|
||||
Host 127.0.0.1
|
||||
Port 12203
|
||||
Mode udp
|
||||
Gelf_Short_Message_Key MESSAGE
|
||||
Gelf_Host_Key host
|
||||
Reference in New Issue
Block a user