Lint / Shell (shellcheck) (pull_request) Successful in 10s
Lint / JS (eslint) (pull_request) Successful in 9s
Lint / No secrets in webhook configs (pull_request) Successful in 4s
Lint / Landing page is rendered (matrix (pull_request) Successful in 4s
Lint / Python (ruff) (pull_request) Successful in 5s
Lint / Python deps (pip-audit) (pull_request) Successful in 1m17s
Lint / Secret scan (gitleaks) (pull_request) Successful in 10s
Lint / Shell (shellcheck) (push) Successful in 10s
Lint / JS (eslint) (push) Successful in 7s
Lint / No secrets in webhook configs (push) Successful in 5s
Lint / Landing page is rendered (matrix (push) Successful in 4s
Lint / Python (ruff) (push) Successful in 8s
Lint / Python deps (pip-audit) (push) Successful in 1m13s
Lint / Secret scan (gitleaks) (push) Successful in 6s
The management room is end-to-end encrypted, but Draupnir ran with experimentalRustCrypto: false and Pantalaimon off, so it could post there (its own messages are unencrypted) but never saw commands: its last reply to a command was ~57 days ago, and `!draupnir rooms add …` sent from Lotus on 2026-10-13 was ignored. The same command sent unencrypted worked at once (✅, joined dco-memes-minecraft). Merging deploys via lxc110-draupnir.sh, which restarts draupnir. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5
69 lines
1.6 KiB
YAML
69 lines
1.6 KiB
YAML
homeserverUrl: "https://matrix.lotusguild.org"
|
|
rawHomeserverUrl: "https://matrix.lotusguild.org"
|
|
accessToken: "REDACTED"
|
|
|
|
pantalaimon:
|
|
use: false
|
|
username: draupnir
|
|
password: ""
|
|
|
|
# The management room (and most Lotus rooms) are end-to-end encrypted. Without
|
|
# crypto Draupnir can post there but can't read commands, so `!draupnir …` was
|
|
# silently ignored (LotusGuild/cinny audit, 2026-10-13). Rust crypto stores its
|
|
# keys under dataPath.
|
|
experimentalRustCrypto: true
|
|
|
|
dataPath: "/data/storage"
|
|
|
|
autojoinOnlyIfManager: true
|
|
|
|
recordIgnoredInvites: false
|
|
|
|
managementRoom: "!mEvR5fe3jMmzwd-FwNygD72OY_yu8H3UP_N-57oK7MI"
|
|
|
|
logLevel: "INFO"
|
|
|
|
verifyPermissionsOnStartup: true
|
|
|
|
noop: false
|
|
|
|
# Don't apply server ACLs (trust local Synapse admin decisions)
|
|
disableServerACL: true
|
|
|
|
# Protect all rooms the bot is joined to by default
|
|
protectAllJoinedRooms: false
|
|
|
|
# Synapse admin API access
|
|
admin:
|
|
enableMakeRoomAdminCommand: true
|
|
|
|
# Don't send verbose join/leave notifications
|
|
verboseLogging: false
|
|
|
|
# Background task interval for checking bans
|
|
backgroundDelayMS: 500
|
|
|
|
# Safe redaction limit per sync
|
|
redactionLimit: 100
|
|
|
|
# Health check endpoint (Prometheus scrape via blackbox exporter)
|
|
health:
|
|
healthz:
|
|
enabled: true
|
|
port: 8081
|
|
address: "0.0.0.0"
|
|
endpoint: "/healthz"
|
|
healthyStatus: 200
|
|
unhealthyStatus: 418
|
|
|
|
# Web server for abuse report forwarding
|
|
# Endpoint: POST /_matrix/draupnir/1/report/{roomId}/{eventId}
|
|
# Synapse integration: configure homeserver.yaml with the draupnir_abuse_reports module
|
|
# (see README for setup instructions)
|
|
web:
|
|
enabled: true
|
|
address: "0.0.0.0"
|
|
port: 8080
|
|
abuseReporting:
|
|
enabled: true
|