Skip to content

Operations runbook #13

Open
Open

Description

@NinjaLikesCheez

Context

Pixel will be run by volunteers. The common operational tasks should be written down so anyone with access can do them safely, without needing the original author around.

Goal

A runbook (for example docs/runbook.md) covering day-to-day operations and incidents for dev and prod.

Procedures to cover

  • Access lists: add or remove a member, friend or admin in each environment, and roll out the change
  • Moderation:
  • Secrets:
    • rotate the Discord bot token
    • rotate other secrets (Sentry DSN and so on)
  • Deploys:
    • roll back to the previous version
    • check what's currently deployed
  • Incidents:
    • the bot is offline or not responding
    • duplicate replies
    • SpaceAPI is down
  • Sentry: where alerts go, and how to triage them
  • Privacy: handle a data access or deletion request (Privacy notice and data retention (GDPR) #7)
  • Disaster recovery: recreate an environment from scratch

Acceptance criteria

  • Each procedure has been followed successfully by someone other than its author (in dev)
  • Linked from the README
  • Kept in sync with infrastructure changes. Note this in AGENTS.md

Open questions

  • Who is on the hook when the bot is down? Is there a contact list?

Activity

  1. NinjaLikesCheez commented on Oct 3, 2026

    @NinjaLikesCheez
    ContributorAuthor

    Note from the admin work (#24 to #28): adding and removing members and friends will become an admin command (/admin member set, #26) instead of editing members.yaml and restarting. The runbook should describe the command, plus how to restore the members file from its .bak or a volume snapshot (#9) if it's ever lost. admins.yaml stays file-only.

  2. NinjaLikesCheez commented on Oct 4, 2026

    @NinjaLikesCheez
    ContributorAuthor

    First version of the runbook is up in #56 (docs/runbook.md). It covers every procedure listed here, plus Home Assistant. Each procedure says what works today, with 🚧 slots for the Azure steps, so it can be filled in as Terraform lands (#8, #9, #10, #12). Still open here: someone other than the author following each procedure in dev, the on-call contact and alert destination (marked 🚧), and the privacy section, which is a draft until #7.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationinfrastructureTerraform, Azure, CI/CD, operations

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions