Simple web app that renders minimalist CV with print-friendly layout.
Built with Next.js and shadcn/ui, deployed on Vercel.
- Setup only takes a few minutes single config file
- Built using Next.js 14, React, Typescript, Shadcn/ui, TailwindCss
- Auto generated Layout
- Responsive for different devices
- Optimized for Next.js and Vercel
-
Clone this repository to your local machine:
git clone https://github.com/BartoszJarocki/cv.git
-
Move to the cloned directory
cd cv -
Install dependencies:
yarn install
-
Start the local Server:
yarn dev
-
Open the Config file and make changes
Build the container
docker compose build
Run the container
docker compose up -d
Stop the Container
docker compose down
Production deployment is handled by GitHub Actions.
- A push on
maintriggers validation, Docker image build, publication to GHCR, and deployment to the VPS. - The workflow can also be started manually from the GitHub Actions tab.
- The published image is
ghcr.io/nathantesseyre/cv:latest. - The VPS uses
/opt/cv/docker-compose.prod.yaml. - The container listens only on
127.0.0.1:3000; Apache2 is already configured as the public reverse proxy. - The pipeline does not create, modify, reload, or deploy any Apache2 configuration.
Required GitHub secrets:
VPS_HOST
VPS_PORT
VPS_USER
VPS_SSH_KEY
VPS_KNOWN_HOSTS
After the first GHCR publication, make the ghcr.io/nathantesseyre/cv package public in GitHub if it is created as private. This lets the VPS run docker compose pull without an additional GitHub token.
