Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
node_modules
npm-debug.log
Dockerfile
.dockerignore
docker-compose.yml
.git
.gitignore
.next
out
15 changes: 15 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Build Next.js app and run in production mode
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
RUN npm prune --omit=dev

FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app .
EXPOSE 3000
CMD ["npm", "start"]
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,16 @@ npm run dev

Open [http://localhost:3000](http://localhost:3000) to see the app.

### Docker

Build and run the app in a container:

```bash
docker compose up --build
```

Visit <http://localhost:3000> once the server starts.

## Deployment

✅ **Currently deployed on Cloudflare Pages** at [semver.agenticinsights.com](https://semver.agenticinsights.com)
Expand Down
16 changes: 11 additions & 5 deletions app/IDELayout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,19 @@ export default function IDELayout({ children }: IDELayoutProps) {

const [terminalOpen, setTerminalOpen] = useState(false);
const [sidebarOpen, setSidebarOpen] = useState(false);
const [currentTime, setCurrentTime] = useState(new Date());
const [currentTime, setCurrentTime] = useState<string>("");

useEffect(() => {
const timer = setInterval(() => {
setCurrentTime(new Date());
}, 1000);
const updateTime = () =>
setCurrentTime(
new Date().toLocaleTimeString("en-US", {
hour: "2-digit",
minute: "2-digit",
})
);

updateTime();
const timer = setInterval(updateTime, 1000);
return () => clearInterval(timer);
}, []);

Expand Down Expand Up @@ -216,7 +222,7 @@ export default function IDELayout({ children }: IDELayoutProps) {
main
</span>
<span className="text-emerald-400">● Port 30020</span>
<span className="text-gray-500">{currentTime.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit' })}</span>
<span className="text-gray-500">{currentTime || '--:--'}</span>
</div>
</div>
)}
Expand Down
Loading