Portfolio v2 https://altaiar.dev
  • TypeScript 98.3%
  • Dockerfile 1.1%
  • JavaScript 0.5%
Find a file
ahmed 84ea4edad1
All checks were successful
Publish Docker Image / Publish Docker Image (push) Successful in 19s
New social: Codeberg
2026-06-30 23:39:35 -04:00
.forgejo/workflows Will this work? 2026-06-06 20:11:11 -04:00
public Fix deprecated LinkedIn SI icon & update to patched Next.js version regarding CVE-2025-66478 2025-12-10 12:30:51 -05:00
src New social: Codeberg 2026-06-30 23:39:35 -04:00
.dockerignore docker 2025-04-30 21:40:06 -04:00
.gitignore docker 2025-04-30 21:40:06 -04:00
.yarnrc.yml Portfolio 2025-04-30 20:25:26 -04:00
docker-compose.yml Documentation 2025-05-07 12:47:08 -04:00
Dockerfile Fix EACCES on /app/package.json in Docker 2025-12-10 12:46:29 -05:00
eslint.config.mjs Initial commit from Create Next App 2025-04-16 19:40:10 -04:00
next.config.ts Embed version and fps 2025-05-02 13:29:34 -04:00
package.json Fix deprecated LinkedIn SI icon & update to patched Next.js version regarding CVE-2025-66478 2025-12-10 12:30:51 -05:00
postcss.config.mjs Initial commit from Create Next App 2025-04-16 19:40:10 -04:00
README.md Documentation 2025-05-07 12:47:08 -04:00
tsconfig.json Fix deprecated LinkedIn SI icon & update to patched Next.js version regarding CVE-2025-66478 2025-12-10 12:30:51 -05:00
yarn.lock Fix deprecated LinkedIn SI icon & update to patched Next.js version regarding CVE-2025-66478 2025-12-10 12:30:51 -05:00

Portfolio Website v2

Setup

Domain Records

  • Create one A record

Reverse Proxy

  • It doesn't matter what reverse proxy you use (Nginx, Apache, Traefik, Caddy, etc)
  • Point the record to the web port (default: 3000)

Docker Compose

services:
  portfolio:
    container_name: portfolio
    image: git.altaiar.dev/ahmed/portfolio-2:latest
    network_mode: bridge
    restart: unless-stopped
    volumes:
      - config:/app/public/config
      - images:/app/public/images
    ports:
      - 3000:3000

volumes:
  config: # Place config.json and resume.pdf here
  images: # Place images here

(Optional) Replace volumes with bind mounts according to your setup

Configuration

  • The only required field is name, a two string array for first and last
  • See instrumentation.ts or config.d.ts for possible values
  • Validation is performed on container start, and will exit if anything is invalid