diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000..10e075af --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,52 @@ +// 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 +{ + "containerEnv": { + "DATABASE_URL": "postgres://drop:drop@db:5432/drop", + "EXTERNAL_URL": "http://localhost:4000", + "NUXT_PORT": "4000" + }, + + // Configure tool-specific properties. + "customizations": { + "vscode": { + "extensions": [ + "lokalise.i18n-ally", + "esbenp.prettier-vscode", + "Prisma.prisma", + "bradlc.vscode-tailwindcss", + "Vue.volar", + "arktypeio.arkdark", + "EditorConfig.EditorConfig", + "dbaeumer.vscode-eslint" + ] + } + }, + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" + + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile + "dockerComposeFile": "docker-compose.yml", + // Features to add to the dev container. More info: https://containers.dev/features. + "features": { + "ghcr.io/devcontainers-extra/features/protoc:1": {}, + "ghcr.io/devcontainers/features/node:1": {}, + "ghcr.io/devcontainers/features/rust:1": { + "version": "nightly-2026-03-29" + } + }, + + "name": "Node.js", + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Use 'postCreateCommand' to run commands after the container is created. + "postCreateCommand": "git submodule update --init --recursive", + "postStartCommand": "pnpm install && pnpm prisma migrate deploy && cd torrential && cargo build --release && cd ..", + + "runServices": ["db", "app"], + "service": "app", + "shutdownAction": "stopCompose", + "workspaceFolder": "/workspaces/drop" +} diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml new file mode 100644 index 00000000..52598027 --- /dev/null +++ b/.devcontainer/docker-compose.yml @@ -0,0 +1,26 @@ +services: + app: + image: mcr.microsoft.com/devcontainers/base:noble + command: sleep infinity + volumes: + - ..:/workspaces/drop:cached + depends_on: + db: + condition: service_healthy + + db: + image: postgres:14-alpine + environment: + POSTGRES_USER: drop + POSTGRES_PASSWORD: drop + POSTGRES_DB: drop + volumes: + - pgdata:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U drop -d drop"] + interval: 5s + timeout: 5s + retries: 20 + +volumes: + pgdata: diff --git a/.gitignore b/.gitignore index 9cbcd222..1c3cf86b 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ dist # Node dependencies node_modules .yarn +.pnpm-store # Logs logs