// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/javascript-node
{
	"name": "Dashy",
	// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
	"image": "mcr.microsoft.com/devcontainers/javascript-node:1-24-bookworm",

	"customizations": {
		"vscode": {
			"extensions": [
				"Vue.volar",
				"dbaeumer.vscode-eslint",
				"ms-azuretools.vscode-containers",
				"EditorConfig.EditorConfig",
				"vitest.explorer",
				"redhat.vscode-yaml"
			],
			"settings": {
				"editor.formatOnSave": false,
				"editor.codeActionsOnSave": {
					"source.fixAll.eslint": "explicit"
				},
				"eslint.validate": ["javascript", "vue"],
				"files.eol": "\n"
			}
		}
	},

	// Features to add to the dev container. More info: https://containers.dev/features.
	"features": {
		"ghcr.io/devcontainers/features/github-cli:1": {}
	},

	// Ports to forward to the host (Codespaces / Dev Containers will surface these).
	"forwardPorts": [8080, 4000, 4001],
	"portsAttributes": {
		"8080": {
			"label": "Vite Dev Server",
			"onAutoForward": "openPreview"
		},
		"4000": {
			"label": "Dashy (Production)",
			"onAutoForward": "notify"
		},
		"4001": {
			"label": "Dashy (SSL)",
			"onAutoForward": "silent"
		}
	},

	// Runs once after the container is created, then VS Code attaches.
	"postCreateCommand": "yarn install --network-timeout 600000"

	// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
	// "remoteUser": "root"
}
