{"id":51887880,"url":"https://github.com/saegey/frigate-townhaus","last_synced_at":"2026-07-25T23:30:30.563Z","repository":{"id":360249245,"uuid":"1248007872","full_name":"saegey/frigate-townhaus","owner":"saegey","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-25T15:59:11.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-25T17:30:20.547Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/saegey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-24T04:14:45.000Z","updated_at":"2026-05-25T15:59:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/saegey/frigate-townhaus","commit_stats":null,"previous_names":["saegey/frigate-townhaus"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/saegey/frigate-townhaus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saegey%2Ffrigate-townhaus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saegey%2Ffrigate-townhaus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saegey%2Ffrigate-townhaus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saegey%2Ffrigate-townhaus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/saegey","download_url":"https://codeload.github.com/saegey/frigate-townhaus/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saegey%2Ffrigate-townhaus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35896124,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-25T02:00:06.922Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-07-25T23:30:30.143Z","updated_at":"2026-07-25T23:30:30.559Z","avatar_url":"https://github.com/saegey.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# frigate-infra\n\nInfrastructure-oriented Docker Compose deployment for Frigate on Debian 12 with Intel VAAPI support.\n\n## Repository Layout\n\n- `docker-compose.yml`: Frigate service definition\n- `.env.example`: environment variable template\n- `config/config.template.yml`: starter Frigate configuration template\n- `storage/`: bind-mounted media storage (recordings, clips, snapshots)\n- `scripts/`: helper operational scripts\n\n## Prerequisites (Debian 12)\n\n1. Install Docker Engine from Docker's official repository:\n\n```bash\nsudo apt-get update\nsudo apt-get install -y ca-certificates curl gnupg\nsudo install -m 0755 -d /etc/apt/keyrings\ncurl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg\nsudo chmod a+r /etc/apt/keyrings/docker.gpg\n\necho \\\n  \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \\\n  $(. /etc/os-release \u0026\u0026 echo $VERSION_CODENAME) stable\" | \\\n  sudo tee /etc/apt/sources.list.d/docker.list \u003e /dev/null\n\nsudo apt-get update\nsudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\n```\n\n2. Add your user to required groups and re-login:\n\n```bash\nsudo usermod -aG docker \"$USER\"\nsudo usermod -aG video \"$USER\"\nsudo usermod -aG render \"$USER\"\n```\n\n3. Verify Intel render node exists:\n\n```bash\nls -l /dev/dri/renderD128\n```\n\nExpected result: device node exists and is accessible to `video`/`render` group members.\n\n4. (Optional but recommended) Verify VAAPI stack with `vainfo`:\n\n```bash\nsudo apt-get install -y vainfo intel-media-va-driver-non-free\nvainfo\n```\n\n`vainfo` should return supported Intel codecs and no fatal initialization errors.\n\n## Setup\n\n1. Clone/create this repo on the Debian host.\n2. Copy and edit environment variables:\n\n```bash\ncp .env.example .env\n```\n\nImportant: Frigate config environment substitution expects variables beginning with `FRIGATE_` (for example `FRIGATE_MQTT_HOST`).\n\n3. Update `config/config.template.yml`:\n- Set MQTT broker credentials to match the existing external Home Assistant MQTT broker.\n- Set `mqtt.port` if your broker is not on `1883`.\n- Replace the placeholder RTSP URL in `cameras.front_door.ffmpeg.inputs[0].path`, then set `enabled: true` when ready.\n- Set `go2rtc.homekit.\u003ccamera\u003e.pin` (or `FRIGATE_HOMEKIT_PIN` in `.env`) for Apple Home pairing.\n\nAt startup, `./scripts/start.sh` seeds `/srv/storage/frigate-config/config.yml` from this template\nonly if the runtime config does not already exist.\n\n4. Start Frigate:\n\n```bash\n./scripts/start.sh\n```\n\n5. Open Frigate UI:\n- `http://\u003chost-ip\u003e:5000`\n\n6. Open go2rtc UI for HomeKit pairing:\n- `http://\u003chost-ip\u003e:1984`\n\n## Operations\n\n- Start: `./scripts/start.sh`\n- Stop: `./scripts/stop.sh`\n- Logs: `./scripts/logs.sh`\n- Update to latest stable image: `./scripts/update.sh`\n\n## HomeKit Notes\n\n- Frigate is configured with `network_mode: host`, which is the recommended path for go2rtc HomeKit discovery and pairing.\n- Pair cameras from go2rtc UI (`http://\u003chost-ip\u003e:1984`) and add them in Apple Home using the PIN in your config.\n\n## Notes on Hardware Acceleration\n\n- Compose maps `/dev/dri/renderD128` into the container.\n- Frigate starter config uses `ffmpeg.hwaccel_args: preset-vaapi`.\n- If acceleration does not engage, verify host `vainfo`, group membership (`video`, `render`), and device availability (`/dev/dri/renderD128`).\n\n## Recommended Storage Strategy\n\nFor resilient home-lab production behavior:\n\n- Use NVMe for OS and Docker metadata/databases (fast metadata and low latency).\n- Use external SSD/HDD for Frigate recordings under `./storage` (capacity and endurance).\n- Keep enough free space for retention windows and review clips.\n\n## Security and Reliability Defaults\n\n- Uses `restart: unless-stopped`.\n- Uses bind mounts for transparent host-level backup and migration.\n- Uses read-only `/etc/localtime` mount for timestamp consistency.\n- Uses `tmpfs` cache mount to reduce disk churn for ephemeral cache data.\n- Sets `shm_size: 256mb` to satisfy Frigate shared-memory requirements.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaegey%2Ffrigate-townhaus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaegey%2Ffrigate-townhaus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaegey%2Ffrigate-townhaus/lists"}