mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-12-23 19:11:14 +01:00
1133202cbd
* reload the window on 401 * backend apis for auth * add login page * re-enable web linter * fix login page routing * bypass csrf for internal auth endpoint * disable healthcheck in devcontainer target * include login page in vite build * redirect to login page on 401 * implement config for users and settings * implement JWT actual secret * add brute force protection on login * add support for redirecting from auth failures on api calls * return location for redirect * default cookie name should pass regex test * set hash iterations to current OWASP recommendation * move users to database instead of config * config option to reset admin password on startup * user management UI * check for deleted user on refresh * validate username and fixes * remove password constraint * cleanup * fix user check on refresh * web fixes * implement auth via new external port * use x-forwarded-for to rate limit login attempts by ip * implement logout and profile * fixes * lint fixes * add support for user passthru from upstream proxies * add support for specifying a logout url * add documentation * Update docs/docs/configuration/authentication.md Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com> * Update docs/docs/configuration/authentication.md Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com> --------- Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
94 lines
2.7 KiB
JSON
94 lines
2.7 KiB
JSON
{
|
|
"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": [8080, 5000, 5001, 5173, 8554, 8555],
|
|
"portsAttributes": {
|
|
"8080": {
|
|
"label": "External NGINX",
|
|
"onAutoForward": "silent"
|
|
},
|
|
"5000": {
|
|
"label": "Internal NGINX",
|
|
"onAutoForward": "silent"
|
|
},
|
|
"5001": {
|
|
"label": "Frigate API",
|
|
"onAutoForward": "silent"
|
|
},
|
|
"5173": {
|
|
"label": "Vite Server",
|
|
"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"]
|
|
}
|
|
}
|
|
}
|
|
}
|