{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "YGG.cz - Explore",
  "home_page_url": "https://ygg.cz/en/",
  "feed_url": "https://ygg.cz/en/feed.json",
  "description": "A chronological stream of everything — guides, troubleshooting, notes, analyses, projects and curated external sources.",
  "language": "en",
  "authors": [
    {
      "name": "Zdeněk Kubala"
    }
  ],
  "items": [
    {
      "id": "https://ygg.cz/en/note/journalctl-vacuum/",
      "url": "https://ygg.cz/en/note/journalctl-vacuum/",
      "title": "The journal eats gigabytes before anyone notices",
      "summary": "The default journal cap is a tenth of the partition. On a small root that means gigabytes of logs nobody wants.",
      "tags": [
        "systemd",
        "journal",
        "disk"
      ],
      "date_published": "2026-09-10T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/project/infrastructure-stabilization/",
      "url": "https://ygg.cz/en/project/infrastructure-stabilization/",
      "title": "Infrastructure stabilization",
      "summary": "Stabilizing an organization’s technical backbone: administration rules, documentation, a platform for testing and hosting, and a link to the infrastructure one level up.",
      "tags": [
        "documentation",
        "system-inventory",
        "security",
        "volunteers"
      ],
      "date_published": "2026-07-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/project/investment-assistant/",
      "url": "https://ygg.cz/en/project/investment-assistant/",
      "title": "Investment assistant",
      "summary": "Local decision support for a personal investment portfolio: broker data, regular reports and an analytical framework with a traceable history of decisions.",
      "tags": [
        "python",
        "mcp",
        "ai",
        "reporting",
        "investing"
      ],
      "date_published": "2026-03-22T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/project/mojewebfoundry/",
      "url": "https://ygg.cz/en/project/mojewebfoundry/",
      "title": "mojeWebFoundry",
      "summary": "A framework for building several separate static sites on SvelteKit. It came out of moving away from Jekyll and doubles as a way to find out what current tooling can do.",
      "tags": [
        "sveltekit",
        "static-site",
        "ci",
        "ai",
        "monorepo"
      ],
      "date_published": "2026-08-22T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/guide/esp32-rf433-doorbell/",
      "url": "https://ygg.cz/en/guide/esp32-rf433-doorbell/",
      "title": "A dumb wireless doorbell in Home Assistant via RF433 and ESP32",
      "summary": "How to capture the signal of an ordinary 433 MHz wireless doorbell and send each press to Home Assistant via an ESP32-C3.",
      "tags": [
        "esp32",
        "esphome",
        "rf433",
        "home-assistant"
      ],
      "date_published": "2026-08-12T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/guide/esp32-ir-ceiling-light/",
      "url": "https://ygg.cz/en/guide/esp32-ir-ceiling-light/",
      "title": "An IR-remote ceiling light via ESP32 and ESPHome",
      "summary": "How to capture an infrared remote’s codes and control a light from Home Assistant via an ESP32-C3 – without the physical remote.",
      "tags": [
        "esp32",
        "esphome",
        "infrared",
        "home-assistant"
      ],
      "date_published": "2026-07-19T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/project/ai-projects/",
      "url": "https://ygg.cz/en/project/ai-projects/",
      "title": "AI as a tool",
      "summary": "Turning ideas into working solutions with AI – without a programming background, but with architecture, tests and quality checks as in team development.",
      "tags": [
        "ai",
        "claude-code",
        "architecture",
        "adr"
      ],
      "date_published": "2026-05-01T00:00:00Z",
      "date_modified": "2026-09-26T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/note/postfix-spf-macros/",
      "url": "https://ygg.cz/en/note/postfix-spf-macros/",
      "title": "SPF, Postfix and rspamd: common delivery problems",
      "summary": "The most common reasons an SPF check rejects mail that is perfectly fine – in the DNS record, in Postfix and in rspamd.",
      "tags": [
        "postfix",
        "mail",
        "spf",
        "rspamd"
      ],
      "date_published": "2026-02-01T00:00:00Z",
      "date_modified": "2026-09-26T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/explainer/dns-delegation/",
      "url": "https://ygg.cz/en/explainer/dns-delegation/",
      "title": "How DNS delegation works and why it matters",
      "summary": "DNS is a delegated tree: every zone can hand responsibility one level down. Understand that and you understand why changes propagate slowly and where to look for faults.",
      "tags": [
        "dns",
        "networking"
      ],
      "date_published": "2026-01-01T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/project/multi-tenant-platform/",
      "url": "https://ygg.cz/en/project/multi-tenant-platform/",
      "title": "Multi-tenant platform",
      "summary": "A web application for multiple organizations on a shared core: separate data and settings for each client, a modular architecture and security from day one.",
      "tags": [
        "django",
        "multi-tenant",
        "architecture",
        "gdpr",
        "ai"
      ],
      "date_published": "2026-04-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/link/dia-vyrocni-zprava/",
      "url": "https://ygg.cz/en/link/dia-vyrocni-zprava/",
      "title": "Czech Digital and Information Agency: activity reports",
      "summary": "What actually moved in the digitalization of the Czech state – read through the data rather than the press releases.",
      "tags": [
        "report",
        "digital-government"
      ],
      "date_published": "2026-03-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/reference/nftables-cheat-sheet/",
      "url": "https://ygg.cz/en/reference/nftables-cheat-sheet/",
      "title": "nftables: rules for a home network",
      "summary": "A reference card for nftables: basic commands, tables and chains, and NAT masquerade for a home router.",
      "tags": [
        "networking",
        "nftables"
      ],
      "date_published": "2026-03-01T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/guide/esp32-unknown-display/",
      "url": "https://ygg.cz/en/guide/esp32-unknown-display/",
      "title": "An undocumented display on ESP32: identifying it and getting it running",
      "summary": "How to get a TFT display without a datasheet working on an ESP32: identify it, wire it up and initialise it. Based on the E32R35T board with an ST7796S controller.",
      "tags": [
        "esp32",
        "display",
        "spi",
        "st7796",
        "xpt2046"
      ],
      "date_published": "2026-02-26T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/link/cadastre-open-data/",
      "url": "https://ygg.cz/en/link/cadastre-open-data/",
      "title": "RÚIAN open data: addresses, buildings and territorial units",
      "summary": "The Czech register of territorial identification, addresses and real estate as open data – what it contains, how it is distributed and what to watch out for.",
      "tags": [
        "open-data",
        "ruian"
      ],
      "date_published": "2026-01-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/link/how-complex-systems-fail/",
      "url": "https://ygg.cz/en/link/how-complex-systems-fail/",
      "title": "How Complex Systems Fail",
      "summary": "The classic text by R. Cook – why failure never has a single cause. Required reading for anyone who runs systems.",
      "tags": [
        "essay",
        "systems"
      ],
      "date_published": "2025-12-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/guide/home-assistant-voice-czech/",
      "url": "https://ygg.cz/en/guide/home-assistant-voice-czech/",
      "title": "Czech voice control in Home Assistant: models and custom sentences",
      "summary": "Czech voice control in Home Assistant: local vs. cloud models (Whisper, Piper, Nabu Casa) and custom sentences for energy and the TV through Hassil intents.",
      "tags": [
        "home-assistant",
        "voice-control",
        "whisper",
        "piper",
        "assist"
      ],
      "date_published": "2025-10-23T00:00:00Z",
      "date_modified": "2025-10-30T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/troubleshooting/zha-custom-quirks/",
      "url": "https://ygg.cz/en/troubleshooting/zha-custom-quirks/",
      "title": "Foreign Zigbee devices in ZHA: three cases with custom quirks",
      "summary": "Three cases of taming Zigbee devices in Home Assistant through a ZHA custom quirk: an mmWave presence sensor, a MOES thermostatic valve and the IKEA SOMRIG button.",
      "tags": [
        "home-assistant",
        "zigbee",
        "zha",
        "quirk",
        "tuya"
      ],
      "date_published": "2025-09-25T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/project/smart-home/",
      "url": "https://ygg.cz/en/project/smart-home/",
      "title": "A smart home on Home Assistant",
      "summary": "A household run mostly locally: heating by weather and time of day, electricity and gas metering, custom ESP32 devices and notifications on the phone.",
      "tags": [
        "home-assistant",
        "zigbee",
        "esphome",
        "esp32",
        "energy",
        "heating"
      ],
      "date_published": "2025-06-01T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/note/ubuntu-25-04-plucky-puffin/",
      "url": "https://ygg.cz/en/note/ubuntu-25-04-plucky-puffin/",
      "title": "Ubuntu 25.04 (Plucky Puffin): TPM disk encryption, an ARM64 desktop and APT 3.0",
      "summary": "A non-LTS release from April 2025: TPM-backed disk encryption in the installer, an official ARM64 desktop, kernel 6.14 with sched_ext, APT 3.0 and the end of apt-key.",
      "tags": [
        "ubuntu",
        "release",
        "tpm",
        "apt"
      ],
      "date_published": "2025-04-17T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/link/cyber-resilience-act/",
      "url": "https://ygg.cz/en/link/cyber-resilience-act/",
      "title": "Cyber Resilience Act",
      "summary": "EU Regulation 2024/2847 on security requirements for products with digital elements – with a note on the original proposal, which all but forgot about open source.",
      "tags": [
        "cra",
        "opensource",
        "eu",
        "security",
        "public-code"
      ],
      "date_published": "2024-12-10T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/explainer/selinux-policy-basics/",
      "url": "https://ygg.cz/en/explainer/selinux-policy-basics/",
      "title": "SELinux from the kernel to the policy: labels, modules and finding bugs",
      "summary": "How SELinux hangs off the LSM hooks, what the context on every file means, how a module is built from .te and .if, and how a policy bug is actually found.",
      "tags": [
        "selinux",
        "lsm",
        "policy"
      ],
      "date_published": "2024-11-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/link/eidas2-eu-digital-identity-wallet/",
      "url": "https://ygg.cz/en/link/eidas2-eu-digital-identity-wallet/",
      "title": "eIDAS 2.0: the EU digital identity regulation",
      "summary": "A 2024 amendment to the eIDAS regulation sets up the legal framework for a European digital identity wallet that member states must offer to citizens.",
      "tags": [
        "eidas",
        "digital-identity",
        "eu"
      ],
      "date_published": "2024-05-20T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/guide/systemd-resolved-split-dns/",
      "url": "https://ygg.cz/en/guide/systemd-resolved-split-dns/",
      "title": "Split DNS on a single machine with systemd-resolved",
      "summary": "Making an internal domain resolve through a VPN resolver while the rest of the world stays public. Unfinished – the DNSSEC and fallback parts are missing.",
      "tags": [
        "dns",
        "systemd",
        "vpn"
      ],
      "date_published": "2023-11-10T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/explainer/disa-stig-applicability/",
      "url": "https://ygg.cz/en/explainer/disa-stig-applicability/",
      "title": "DISA STIG: what it is and how severity is read",
      "summary": "What DISA STIGs are, how the CAT I/II/III severity categories are read, and why rules are not applied blindly across the board.",
      "tags": [
        "stig",
        "compliance",
        "security",
        "hardening"
      ],
      "date_published": "2023-02-02T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/link/grug-brained-developer/",
      "url": "https://ygg.cz/en/link/grug-brained-developer/",
      "title": "The Grug Brained Developer",
      "summary": "On humility towards complexity – why simplicity is an engineering discipline, not a lack of ambition.",
      "tags": [
        "essay",
        "engineering"
      ],
      "date_published": "2022-06-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/note/openssh-9-defaults/",
      "url": "https://ygg.cz/en/note/openssh-9-defaults/",
      "title": "OpenSSH 9.0: scp over SFTP and hybrid key exchange",
      "summary": "An April 2022 release in which scp stopped using the legacy protocol and the default key exchange gained a post-quantum component.",
      "tags": [
        "openssh",
        "scp",
        "sftp"
      ],
      "date_published": "2022-04-08T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/note/podman-rootless-containers/",
      "url": "https://ygg.cz/en/note/podman-rootless-containers/",
      "title": "Podman: containers without a daemon and without root",
      "summary": "A container tool with no permanently running daemon that can run as an ordinary user and generate systemd units.",
      "tags": [
        "podman",
        "containers",
        "systemd"
      ],
      "date_published": "2022-02-17T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/project/selinux-engineering/",
      "url": "https://ygg.cz/en/project/selinux-engineering/",
      "title": "SELinux development in an enterprise distribution",
      "summary": "Working on SELinux in an enterprise Linux distribution: policies, their bugs and passing the knowledge on to colleagues.",
      "tags": [
        "selinux",
        "policies",
        "lsm",
        "training"
      ],
      "date_published": "2022-01-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/link/opensuse-microos/",
      "url": "https://ygg.cz/en/link/opensuse-microos/",
      "title": "openSUSE MicroOS: a system that does not update while running",
      "summary": "An immutable system with transactional updates on btrfs snapshots, where applications live in containers rather than in the root filesystem.",
      "tags": [
        "opensuse",
        "microos",
        "btrfs"
      ],
      "date_published": "2021-11-08T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/note/centos-rebuild-distros/",
      "url": "https://ygg.cz/en/note/centos-rebuild-distros/",
      "title": "The end of CentOS 8 and the distributions that replaced it",
      "summary": "After the December 2020 announcement that CentOS 8 would end, two independent RHEL rebuilds appeared during 2021 – AlmaLinux and Rocky Linux.",
      "tags": [
        "centos",
        "rhel",
        "almalinux",
        "rocky-linux"
      ],
      "date_published": "2021-06-21T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/project/stig-certification/",
      "url": "https://ygg.cz/en/project/stig-certification/",
      "title": "Security certification against DISA STIG",
      "summary": "Preparing a minimal enterprise distribution for DISA STIG certification: architecture, test adaptation, mitigations and judging which rules apply to the system at all.",
      "tags": [
        "stig",
        "compliance",
        "hardening",
        "sle-micro"
      ],
      "date_published": "2021-05-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/link/eu-open-source-strategy/",
      "url": "https://ygg.cz/en/link/eu-open-source-strategy/",
      "title": "The European Commission open source software strategy",
      "summary": "A strategy adopted in October 2020 in which the European Commission committed to publishing its own software, contributing back and setting up an open source programme office.",
      "tags": [
        "opensource",
        "european-commission",
        "public-code"
      ],
      "date_published": "2020-10-21T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/note/wireguard-linux-kernel-5-6/",
      "url": "https://ygg.cz/en/note/wireguard-linux-kernel-5-6/",
      "title": "WireGuard in the mainline Linux kernel",
      "summary": "The WireGuard VPN protocol landed directly in the mainline Linux kernel in March 2020, without needing a separately maintained module.",
      "tags": [
        "wireguard",
        "vpn",
        "kernel"
      ],
      "date_published": "2020-03-29T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/project/ansible-infrastructure-as-code/",
      "url": "https://ygg.cz/en/project/ansible-infrastructure-as-code/",
      "title": "Infrastructure as Code with Ansible",
      "summary": "Idempotent infrastructure deployment with Ansible – system and applications, roles driven by host groups, and contributions to an OpenStack deployment.",
      "tags": [
        "ansible",
        "iac",
        "openstack",
        "deployment",
        "idempotence",
        "hardening"
      ],
      "date_published": "2020-01-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/explainer/apparmor-intro/",
      "url": "https://ygg.cz/en/explainer/apparmor-intro/",
      "title": "AppArmor: an introduction to MAC for Linux applications",
      "summary": "What AppArmor is, how mandatory access control through profiles works, and how profiles are created and controlled.",
      "tags": [
        "apparmor",
        "security",
        "linux-kernel",
        "profiles"
      ],
      "date_published": "2019-06-26T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/project/cloud-test-automation/",
      "url": "https://ygg.cz/en/project/cloud-test-automation/",
      "title": "Cloud platform test automation",
      "summary": "A framework for automated testing of OpenStack cloud platform updates, storage integration and CI/CD – including a period leading the test team.",
      "tags": [
        "openstack",
        "test-automation",
        "ci-cd",
        "storage",
        "qa"
      ],
      "date_published": "2019-06-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/project/model-railway-kubernetes/",
      "url": "https://ygg.cz/en/project/model-railway-kubernetes/",
      "title": "A model railway controlled from Kubernetes",
      "summary": "A model railway fully controlled and monitored from a small Intel NUC computer via Arduino, with the applications running in a Kubernetes cluster.",
      "tags": [
        "kubernetes",
        "intel-nuc",
        "arduino",
        "monitoring",
        "talk"
      ],
      "date_published": "2019-01-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/explainer/aix-for-linux-admin/",
      "url": "https://ygg.cz/en/explainer/aix-for-linux-admin/",
      "title": "AIX for a Linux admin: where Linux habits stop working",
      "summary": "The differences a Linux administrator meets when moving to AIX on IBM Power – tooling, LVM, LPARs, enterprise storage and backups, compared with SLES and RHEL.",
      "tags": [
        "aix",
        "ibm-power",
        "lvm",
        "lpar",
        "sles",
        "rhel"
      ],
      "date_published": "2018-10-15T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/explainer/clickable-participatory-budget/",
      "url": "https://ygg.cz/en/explainer/clickable-participatory-budget/",
      "title": "Clickable and participatory budgets in practice",
      "summary": "A short explanation of clickable and participatory budgets and how they work in practice, including acquisition costs (as of 2018).",
      "tags": [
        "clickable-budget",
        "participatory-budget",
        "transparency",
        "local-government"
      ],
      "date_published": "2018-10-04T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/explainer/open-data-why/",
      "url": "https://ygg.cz/en/explainer/open-data-why/",
      "title": "Open data – why is it worth having?",
      "summary": "What open data is, what it can look like in a town and why it makes sense – with examples of good practice from 2018.",
      "tags": [
        "open-data",
        "transparency",
        "local-government"
      ],
      "date_published": "2018-06-30T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/explainer/maintenance-update-testing/",
      "url": "https://ygg.cz/en/explainer/maintenance-update-testing/",
      "title": "Why and how enterprise distribution maintenance packages get tested",
      "summary": "Why a fix package for an enterprise Linux distribution goes through testing before release – regression testing, multiple architectures and virtualization.",
      "tags": [
        "qa",
        "regression-testing",
        "packages",
        "virtualization"
      ],
      "date_published": "2018-01-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/explainer/kernel-isolation-linux/",
      "url": "https://ygg.cz/en/explainer/kernel-isolation-linux/",
      "title": "Kernel isolation: PV, HVM and OS-level virtualization in Linux",
      "summary": "The difference between paravirtualization, full hardware virtualization and OS-level virtualization (containers) in Linux.",
      "tags": [
        "virtualization",
        "containers",
        "xen",
        "kvm",
        "namespaces"
      ],
      "date_published": "2017-10-07T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/note/debian-9-stretch/",
      "url": "https://ygg.cz/en/note/debian-9-stretch/",
      "title": "Debian 9 (Stretch): MariaDB instead of MySQL, X without root",
      "summary": "A June 2017 release in which MariaDB became the default database and the X server stopped requiring root privileges.",
      "tags": [
        "debian",
        "mariadb",
        "xorg"
      ],
      "date_published": "2017-06-17T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/guide/cacti-small-infra/",
      "url": "https://ygg.cz/en/guide/cacti-small-infra/",
      "title": "Cacti for a small virtualized infrastructure",
      "summary": "How to deploy Cacti on a dedicated host and use SNMP to watch load on both the hosts and the virtual machines – paravirtualized and fully virtualized alike.",
      "tags": [
        "cacti",
        "snmp",
        "monitoring",
        "xen"
      ],
      "date_published": "2017-04-06T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/guide/ssh-proxyjump/",
      "url": "https://ygg.cz/en/guide/ssh-proxyjump/",
      "title": "ProxyJump: through a bastion without holding tunnels in your head",
      "summary": "Getting scp, rsync and git through a jump host by writing it into ssh_config once.",
      "tags": [
        "ssh",
        "bastion"
      ],
      "date_published": "2017-03-01T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/link/lets-encrypt-general-availability/",
      "url": "https://ygg.cz/en/link/lets-encrypt-general-availability/",
      "title": "Let's Encrypt: out of beta, free certificates for everyone",
      "summary": "A certificate authority that left beta in April 2016 and made automated, free, domain-validated TLS certificates available through the ACME protocol.",
      "tags": [
        "tls",
        "acme",
        "certificates"
      ],
      "date_published": "2016-04-12T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/note/dpkg-force-remove/",
      "url": "https://ygg.cz/en/note/dpkg-force-remove/",
      "title": "Removing a package while breaking dependencies",
      "summary": "Force-removing a single package on a Debian-based system without letting apt pull the rest of a dependency chain with it.",
      "tags": [
        "dpkg",
        "apt",
        "debian"
      ],
      "date_published": "2015-04-25T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/guide/raspbian-read-only-root/",
      "url": "https://ygg.cz/en/guide/raspbian-read-only-root/",
      "title": "A read-only root on Raspbian that survives a cold power-off",
      "summary": "How to turn Raspbian on an SD card into a read-only root so the device survives being unplugged, and how to turn it into an image for mass deployment.",
      "tags": [
        "raspberry-pi",
        "raspbian",
        "read-only",
        "tmpfs"
      ],
      "date_published": "2015-04-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/explainer/xen-ha-nas-small/",
      "url": "https://ygg.cz/en/explainer/xen-ha-nas-small/",
      "title": "High availability and shared storage for a small XEN cluster",
      "summary": "How high availability and shared storage work for a small cluster of virtual machines on XEN.",
      "tags": [
        "xen",
        "high-availability",
        "nas",
        "san",
        "virtualization"
      ],
      "date_published": "2015-03-26T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/project/raspberry-pi-read-only/",
      "url": "https://ygg.cz/en/project/raspberry-pi-read-only/",
      "title": "Read-only Raspberry Pi for daily menu displays",
      "summary": "Daily menu displays in canteens across the country: a Raspberry Pi that survives being unplugged and deploys without anyone touching it on site.",
      "tags": [
        "raspberry-pi",
        "raspbian",
        "read-only",
        "digital-signage",
        "deployment"
      ],
      "date_published": "2015-03-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/guide/compromised-server-rebuild/",
      "url": "https://ygg.cz/en/guide/compromised-server-rebuild/",
      "title": "Moving off a probably compromised server onto clean infrastructure",
      "summary": "How the move of an organization’s services off a probably compromised server onto new infrastructure actually went: the old stack, the split into virtual machines, the upgrade trouble and the hardening.",
      "tags": [
        "security",
        "kvm",
        "migration",
        "hardening",
        "php",
        "containers"
      ],
      "date_published": "2015-01-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/project/party-websites/",
      "url": "https://ygg.cz/en/project/party-websites/",
      "title": "Political party websites in Jekyll",
      "summary": "Running and developing several static websites of a political party in Jekyll, including a signpost site for regional elections.",
      "tags": [
        "jekyll",
        "static-sites",
        "git"
      ],
      "date_published": "2015-01-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/link/rfc-7208-spf/",
      "url": "https://ygg.cz/en/link/rfc-7208-spf/",
      "title": "RFC 7208: Sender Policy Framework",
      "summary": "The source text for SPF. It answers the questions blog posts disagree on – lookup limits, macros, and what each result actually means.",
      "tags": [
        "spf",
        "mail",
        "standard"
      ],
      "date_published": "2014-06-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/project/multi-arch-update-testing/",
      "url": "https://ygg.cz/en/project/multi-arch-update-testing/",
      "title": "Update testing across architectures",
      "summary": "Verifying fixes of an enterprise Linux distribution before release – on x86, IBM Z and PowerPC, with a focus on virtualization.",
      "tags": [
        "qa",
        "regression-testing",
        "virtualization",
        "kvm",
        "ibm-z"
      ],
      "date_published": "2014-05-07T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/project/infrastructure-migration/",
      "url": "https://ygg.cz/en/project/infrastructure-migration/",
      "title": "Infrastructure migration",
      "summary": "Moving an organization’s services off a probably compromised server onto a newly designed infrastructure, running it long term and leading a technical team of volunteers.",
      "tags": [
        "migration",
        "virtualization",
        "security",
        "e-mail",
        "jekyll",
        "volunteers"
      ],
      "date_published": "2014-04-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/guide/roundcube-mysql-ssl/",
      "url": "https://ygg.cz/en/guide/roundcube-mysql-ssl/",
      "title": "Roundcube over MySQL with SSL, plus the password plugin",
      "summary": "Connecting Roundcube to a MySQL server over SSL and a working password_query for the password plugin.",
      "tags": [
        "roundcube",
        "mysql",
        "ssl",
        "pdo"
      ],
      "date_published": "2014-01-18T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/project/linux-packaging/",
      "url": "https://ygg.cz/en/project/linux-packaging/",
      "title": "Packaging for RPM and Debian and the Open Build Service",
      "summary": "Building packages for both RPM- and Debian-based distributions – spec, dsc and control files, builds locally and in the Open Build Service.",
      "tags": [
        "rpm",
        "deb",
        "open-build-service",
        "packages"
      ],
      "date_published": "2014-01-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/reference/postfix-header-checks/",
      "url": "https://ygg.cz/en/reference/postfix-header-checks/",
      "title": "Postfix header_checks: rewriting mail headers",
      "summary": "A reference for the Postfix header_checks directive: rewriting, prefixing and dropping headers with regexp rules.",
      "tags": [
        "postfix",
        "header-checks",
        "mail",
        "regexp"
      ],
      "date_published": "2014-01-01T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/note/maildir-mail-notification/",
      "url": "https://ygg.cz/en/note/maildir-mail-notification/",
      "title": "Maildir: login mail notification and reading with mailx",
      "summary": "Getting new-mail notifications on login (including SSH) and reading local mail with mailx when the delivery agent uses Maildir.",
      "tags": [
        "maildir",
        "mailx",
        "pam",
        "debian"
      ],
      "date_published": "2013-12-06T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/project/xen-infrastructure/",
      "url": "https://ygg.cz/en/project/xen-infrastructure/",
      "title": "XEN virtualization infrastructure",
      "summary": "Consolidating several servers onto the XEN XCP virtualization platform with high availability, shared storage and backups – including migration of running services.",
      "tags": [
        "xen",
        "virtualization",
        "high-availability",
        "nas",
        "backup",
        "migration"
      ],
      "date_published": "2013-11-01T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/note/xen-xcp-notes/",
      "url": "https://ygg.cz/en/note/xen-xcp-notes/",
      "title": "XEN / XCP: a handful of useful notes",
      "summary": "Scattered fixes from running XEN Cloud Platform: VNC keymap, LVM storage type, the HVC console and CPU hotplug in a guest.",
      "tags": [
        "xen",
        "xcp",
        "virtualization"
      ],
      "date_published": "2013-05-10T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/reference/network-bonding-debian/",
      "url": "https://ygg.cz/en/reference/network-bonding-debian/",
      "title": "Network bonding (etherchannel) on Debian",
      "summary": "A reference for round-robin network bonding on Debian, including the variant with a bridge for XEN.",
      "tags": [
        "bonding",
        "debian",
        "ifenslave",
        "xen"
      ],
      "date_published": "2013-05-07T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/guide/ddrescue-loop-mdadm/",
      "url": "https://ygg.cz/en/guide/ddrescue-loop-mdadm/",
      "title": "Examining a RAID member from a disk image with dd_rescue and mdadm",
      "summary": "Imaging a failing drive with dd_rescue and inspecting its mdadm RAID member over a loop device – without touching the original disk.",
      "tags": [
        "dd-rescue",
        "mdadm",
        "loop-device",
        "raid"
      ],
      "date_published": "2013-03-03T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/guide/wpa-passphrase-audit/",
      "url": "https://ygg.cz/en/guide/wpa-passphrase-audit/",
      "title": "Auditing the strength of your own WPA passphrase",
      "summary": "How to check whether your home Wi-Fi uses a weak WPA passphrase by capturing your own handshake and testing it offline.",
      "tags": [
        "wifi",
        "wpa",
        "security",
        "aircrack-ng"
      ],
      "date_published": "2013-01-05T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/guide/extundelete-restore/",
      "url": "https://ygg.cz/en/guide/extundelete-restore/",
      "title": "Restoring deleted files with extundelete",
      "summary": "Recovering deleted files from an ext3/ext4 filesystem with extundelete – mount read-only first and work by inode.",
      "tags": [
        "extundelete",
        "ext4",
        "recovery"
      ],
      "date_published": "2012-12-03T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/project/aix-linux-administration/",
      "url": "https://ygg.cz/en/project/aix-linux-administration/",
      "title": "AIX and Linux administration",
      "summary": "Installation, upgrades, configuration and support of AIX and Linux systems on IBM Power – logical partitions, SAN, backups and high availability.",
      "tags": [
        "aix",
        "powerha",
        "lpar",
        "san",
        "ksh"
      ],
      "date_published": "2012-01-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/reference/iptables-domaci-sit/",
      "url": "https://ygg.cz/en/reference/iptables-domaci-sit/",
      "title": "iptables: rules for a home network",
      "summary": "A reference card for iptables. Superseded – on Debian 12 and newer, nftables does the same job.",
      "tags": [
        "networking",
        "iptables"
      ],
      "date_published": "2011-06-01T00:00:00Z",
      "date_modified": "2023-06-10T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/note/debian-6-0-squeeze/",
      "url": "https://ygg.cz/en/note/debian-6-0-squeeze/",
      "title": "Debian 6.0 (Squeeze): dependency-based boot ordering",
      "summary": "A February 2011 release that switched the default boot script ordering to dependency-based sequencing and offered a FreeBSD kernel port as a technology preview.",
      "tags": [
        "debian",
        "sysvinit",
        "insserv"
      ],
      "date_published": "2011-02-06T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/troubleshooting/portmap-shutdown-hang/",
      "url": "https://ygg.cz/en/troubleshooting/portmap-shutdown-hang/",
      "title": "Portmapper hangs at boot or shutdown",
      "summary": "The portmapper service stalls for a minute during boot or halt – how the issue was tracked down and resolved.",
      "tags": [
        "portmap",
        "init",
        "rpc"
      ],
      "date_published": "2010-06-03T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/note/port-forwarding-nat/",
      "url": "https://ygg.cz/en/note/port-forwarding-nat/",
      "title": "Port forwarding on a firewall via NAT",
      "summary": "How to point a chosen port of a public IP at a service running on a private address on the firewall.",
      "tags": [
        "iptables",
        "nat",
        "firewall"
      ],
      "date_published": "2010-05-31T00:00:00Z",
      "date_modified": "2026-10-01T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/project/network-administration/",
      "url": "https://ygg.cz/en/project/network-administration/",
      "title": "Network administration for companies and the public sector",
      "summary": "End-to-end administration of networks and servers for private companies and the public sector – from network devices to mail, VPN and storage.",
      "tags": [
        "network-administration",
        "openvpn",
        "iscsi",
        "firewall",
        "active-directory"
      ],
      "date_published": "2010-04-14T00:00:00Z"
    },
    {
      "id": "https://ygg.cz/en/project/infrastructure-monitoring/",
      "url": "https://ygg.cz/en/project/infrastructure-monitoring/",
      "title": "Infrastructure monitoring",
      "summary": "Watching load and availability of servers and networks – from SNMP and an information system for monitoring and helpdesk to Cacti on top of a virtualization infrastructure.",
      "tags": [
        "monitoring",
        "cacti",
        "snmp",
        "availability",
        "helpdesk"
      ],
      "date_published": "2010-01-01T00:00:00Z"
    }
  ]
}
