{ "name": "Frigate Devcontainer", "dockerComposeFile": "../docker-compose.yml", "service": "devcontainer", "workspaceFolder": "/workspace/frigate", "initializeCommand": ".devcontainer/initialize.sh", "postCreateCommand": ".devcontainer/post_create.sh", "overrideCommand": false, "remoteUser": "vscode", "features": { "ghcr.io/devcontainers/features/common-utils:1": {} }, "forwardPorts": [5000, 5001, 5173, 1935, 8554, 8555], "portsAttributes": { "5000": { "label": "NGINX", "onAutoForward": "silent" }, "5001": { "label": "Frigate API", "onAutoForward": "silent" }, "5173": { "label": "Vite Server", "onAutoForward": "silent" }, "1935": { "label": "RTMP", "onAutoForward": "silent" }, "8554": { "label": "gortc RTSP", "onAutoForward": "silent" }, "8555": { "label": "go2rtc WebRTC", "onAutoForward": "silent" } }, "customizations": { "vscode": { "extensions": [ "ms-python.python", "ms-python.vscode-pylance", "visualstudioexptteam.vscodeintellicode", "mhutchie.git-graph", "ms-azuretools.vscode-docker", "streetsidesoftware.code-spell-checker", "esbenp.prettier-vscode", "dbaeumer.vscode-eslint", "mikestead.dotenv", "csstools.postcss", "blanu.vscode-styled-jsx", "bradlc.vscode-tailwindcss", "charliermarsh.ruff" ], "settings": { "remote.autoForwardPorts": false, "python.formatting.provider": "none", "python.languageServer": "Pylance", "editor.formatOnPaste": false, "editor.formatOnSave": true, "editor.formatOnType": true, "python.testing.pytestEnabled": false, "python.testing.unittestEnabled": true, "python.testing.unittestArgs": ["-v", "-s", "./frigate/test"], "files.trimTrailingWhitespace": true, "eslint.workingDirectories": ["./web"], "isort.args": ["--settings-path=./pyproject.toml"], "[python]": { "editor.defaultFormatter": "charliermarsh.ruff", "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.fixAll": true, "source.organizeImports": true } }, "[json][jsonc]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[jsx][js][tsx][ts]": { "editor.codeActionsOnSave": [ "source.addMissingImports", "source.fixAll" ], "editor.tabSize": 2 }, "cSpell.ignoreWords": ["rtmp"], "cSpell.words": ["preact", "astype", "hwaccel", "mqtt"] } } } }