Skip to content
This repository was archived by the owner on Apr 4, 2026. It is now read-only.

Commit 9eccc90

Browse files
committed
feat: add @astrojs/node to dashboard for SSR, add start:dev & dev containers
1 parent 9085c5d commit 9eccc90

6 files changed

Lines changed: 136 additions & 2 deletions

File tree

.devcontainer/Dockerfile

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
FROM node:22
2+
3+
# Install system dependencies
4+
RUN apt-get update && apt-get install -y \
5+
# Git for version control
6+
git \
7+
# Python for node-gyp and other build tools
8+
python3 \
9+
python3-pip \
10+
build-essential \
11+
# Curl for downloading tools
12+
curl \
13+
wget \
14+
unzip \
15+
# Tools for Chrome extension development
16+
chromium \
17+
# Firefox for extension testing
18+
firefox-esr \
19+
# Additional utilities
20+
jq \
21+
vim \
22+
nano \
23+
&& rm -rf /var/lib/apt/lists/*
24+
25+
# Set up Chrome extension development environment
26+
RUN mkdir -p /opt/chrome-extensions
27+
ENV CHROME_BIN=/usr/bin/chromium
28+
ENV DISPLAY=:99
29+
30+
# Install Chrome extension development tools
31+
RUN pnpm install -g chrome-webstore-upload-cli
32+
33+
# Set working directory
34+
WORKDIR /workspace
35+
36+
# Install root dependencies
37+
RUN pnpm install
38+
39+
# Set up Firefox profile for extension development
40+
RUN mkdir -p /tmp/firefox-profile
41+
ENV MOZ_DISABLE_CONTENT_SANDBOX=1
42+
43+
# Create development scripts directory
44+
RUN mkdir -p /workspace/.devcontainer/scripts
45+
46+
# Expose development ports
47+
EXPOSE 4321 3000
48+
49+
# Set environment variables
50+
ENV NODE_ENV=development
51+
ENV CHOKIDAR_USEPOLLING=true
52+
53+
# Create a non-root user for VS Code
54+
ARG USERNAME=vscode
55+
ARG USER_UID=1000
56+
ARG USER_GID=$USER_UID
57+
58+
RUN groupadd --gid $USER_GID $USERNAME \
59+
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
60+
&& apt-get update \
61+
&& apt-get install -y sudo \
62+
&& echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
63+
&& chmod 0440 /etc/sudoers.d/$USERNAME
64+
65+
# Give the vscode user ownership of the workspace
66+
RUN chown -R $USERNAME:$USERNAME /workspace
67+
68+
USER $USERNAME
69+
70+
# Set the default command
71+
CMD ["bash"]

.devcontainer/devcontainer.json

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{
2+
"name": "StopMalwareContent Monorepo",
3+
"build": {
4+
"dockerfile": "Dockerfile"
5+
},
6+
"customizations": {
7+
"codespaces": {
8+
"openFiles": ["README.md", "CONTRIBUTING.md"]
9+
},
10+
"vscode": {
11+
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
12+
}
13+
},
14+
"postCreateCommand": "pnpm install",
15+
"postStartCommand": "pnpm start:dev",
16+
"postAttachCommand": "pnpm audit",
17+
"appPort": [4321, 3000],
18+
"forwardPorts": [4321, 3000],
19+
"portsAttributes": {
20+
"4321": {
21+
"label": "Dashboard",
22+
"onAutoForward": "openPreview"
23+
},
24+
"3000": {
25+
"label": "API",
26+
"onAutoForward": "notify"
27+
}
28+
}
29+
}

apps/dashboard/astro.config.mjs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
// @ts-check
22
import { defineConfig } from "astro/config"
33

4+
import node from "@astrojs/node";
5+
46
// https://astro.build/config
5-
export default defineConfig({})
7+
export default defineConfig({
8+
server: {
9+
port: 5000
10+
},
11+
12+
adapter: node({
13+
mode: "standalone"
14+
})
15+
})

apps/dashboard/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
"prepare": "astro sync"
1313
},
1414
"dependencies": {
15+
"@astrojs/node": "^9.4.4",
1516
"astro": "~5.14.1"
1617
}
1718
}

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
"docs": "pnpm run doc",
1111
"ext": "pnpm --filter=smc-extension",
1212
"prettier:check": "prettier --check .",
13-
"prettier:fix": "prettier --write ."
13+
"prettier:fix": "prettier --write .",
14+
"start:dev": "pnpm -r run dev"
1415
},
1516
"license": "AGPL-3.0-only",
1617
"packageManager": "pnpm@10.17.1",

pnpm-lock.yaml

Lines changed: 22 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)