chore: import upstream snapshot with attribution
i18n - Build Validation / Validate i18n Builds (24) (push) Has been cancelled
CI - Node.js / Lint (24) (push) Has been cancelled
CI - Node.js / Build (24) (push) Has been cancelled
CI - Node.js / Test (24) (push) Has been cancelled
CI - Node.js / Test - Upcoming Changes (24) (push) Has been cancelled
CI - Node.js / Test - i18n (italian, 24) (push) Has been cancelled
CI - Node.js / Test - i18n (portuguese, 24) (push) Has been cancelled
CD - Docker - GHCR Images / Build and Push Images (push) Has been cancelled
i18n - Build Validation / Validate i18n Builds (24) (push) Has been cancelled
CI - Node.js / Lint (24) (push) Has been cancelled
CI - Node.js / Build (24) (push) Has been cancelled
CI - Node.js / Test (24) (push) Has been cancelled
CI - Node.js / Test - Upcoming Changes (24) (push) Has been cancelled
CI - Node.js / Test - i18n (italian, 24) (push) Has been cancelled
CI - Node.js / Test - i18n (portuguese, 24) (push) Has been cancelled
CD - Docker - GHCR Images / Build and Push Images (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# To start developing:
|
||||
|
||||
Wait for the container to build and start. You will see "Done. Press any key to close the terminal." in the terminal when it's ready.
|
||||
|
||||
Once it's running, you can start the development server:
|
||||
|
||||
**Option 1:** Press `Ctrl+Shift+P`, type "Run Task", select "Start Development"
|
||||
**Option 2:** Open a terminal and run:
|
||||
|
||||
```bash
|
||||
pnpm run develop
|
||||
```
|
||||
|
||||
## Optional setup
|
||||
|
||||
For E2E tests:
|
||||
|
||||
```bash
|
||||
npx playwright install chromium
|
||||
```
|
||||
|
||||
For curriculum tests:
|
||||
|
||||
```bash
|
||||
pnpm -F=curriculum install-puppeteer
|
||||
```
|
||||
|
||||
## More information
|
||||
|
||||
For detailed setup instructions and contribution guidelines, visit:
|
||||
https://contribute.freecodecamp.org/how-to-setup-freecodecamp-locally
|
||||
@@ -0,0 +1,83 @@
|
||||
{
|
||||
"name": "freeCodeCamp",
|
||||
"dockerComposeFile": "docker-compose.yml",
|
||||
"service": "devcontainer",
|
||||
"workspaceFolder": "/workspaces/freeCodeCamp",
|
||||
"mounts": [
|
||||
"source=fcc-node-modules,target=${containerWorkspaceFolder}/node_modules,type=volume"
|
||||
],
|
||||
"forwardPorts": [3000, 8000],
|
||||
"portsAttributes": {
|
||||
"3000": {
|
||||
"label": "API",
|
||||
"onAutoForward": "silent"
|
||||
},
|
||||
"8000": {
|
||||
"label": "Client",
|
||||
"onAutoForward": "notify"
|
||||
}
|
||||
},
|
||||
"otherPortsAttributes": {
|
||||
"onAutoForward": "silent"
|
||||
},
|
||||
"onCreateCommand": "sudo chown node:node node_modules && ([ ! -f .env ] && cp sample.env .env || true)",
|
||||
"updateContentCommand": "pnpm install --prefer-offline",
|
||||
"postCreateCommand": "rsync -a --include='*/' --include='.turbo/***' --exclude='*' /home/node/.cache/fcc/ ./ && set -a && . ./.env && set +a && until mongosh --eval 'rs.status().ok' 2>/dev/null; do sleep 1; done && pnpm seed",
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"extensions": [
|
||||
"dbaeumer.vscode-eslint",
|
||||
"esbenp.prettier-vscode"
|
||||
],
|
||||
"settings": {
|
||||
"task.allowAutomaticTasks": "on",
|
||||
"tasks": {
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "Start API Server",
|
||||
"type": "shell",
|
||||
"command": "pnpm run develop:api",
|
||||
"isBackground": true,
|
||||
"problemMatcher": [],
|
||||
"presentation": {
|
||||
"reveal": "always",
|
||||
"panel": "dedicated",
|
||||
"group": "develop"
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "Start Client Server",
|
||||
"type": "shell",
|
||||
"command": "pnpm run develop:client",
|
||||
"isBackground": true,
|
||||
"problemMatcher": [],
|
||||
"presentation": {
|
||||
"reveal": "always",
|
||||
"panel": "dedicated",
|
||||
"group": "develop"
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "Start Development",
|
||||
"dependsOn": ["Start API Server", "Start Client Server"],
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Open README",
|
||||
"type": "shell",
|
||||
"command": "code .devcontainer/README.md",
|
||||
"presentation": {
|
||||
"reveal": "silent",
|
||||
"close": true
|
||||
},
|
||||
"runOptions": {
|
||||
"runOn": "folderOpen"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
services:
|
||||
devcontainer:
|
||||
image: ghcr.io/freecodecamp/devcontainer:latest
|
||||
depends_on:
|
||||
- db
|
||||
- setup
|
||||
volumes:
|
||||
- ..:/workspaces/freeCodeCamp:cached
|
||||
network_mode: service:db
|
||||
command: sleep infinity
|
||||
|
||||
db:
|
||||
image: mongo:8.2
|
||||
command: mongod --replSet rs0
|
||||
restart: unless-stopped
|
||||
hostname: mongodb
|
||||
volumes:
|
||||
- db-data:/data/db
|
||||
healthcheck:
|
||||
test: ['CMD', 'mongosh', '--eval', "db.adminCommand('ping')"]
|
||||
interval: 2s
|
||||
retries: 5
|
||||
start_period: 10s
|
||||
|
||||
setup:
|
||||
image: mongo:8.2
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
restart: on-failure:5
|
||||
command: >
|
||||
mongosh --host mongodb:27017 --eval '
|
||||
rs.initiate({
|
||||
_id: "rs0",
|
||||
members: [{ _id: 0, host: "mongodb:27017" }]
|
||||
}).ok || rs.status().ok
|
||||
'
|
||||
|
||||
volumes:
|
||||
db-data:
|
||||
driver: local
|
||||
Reference in New Issue
Block a user