ProgCode.Ru

Structure:

  • web/ — Next.js application.
  • web/data/articles.json — article data used by the site.
  • web/public/assets/illustrations/ — SVG illustrations and article covers.
  • web/public/assets/media/ — raster images used by the site.
  • web/scripts/buildDatabase.mjs — refreshes article data and generated assets from local source files.

Useful commands:

cd ~/tmp/progcode/web
npm install
node scripts/buildDatabase.mjs
npm run dev -- --port 3000
npm run build

Docker static deploy:

docker build -t progcode:static .
docker run --rm -p 8080:8080 progcode:static

Swarm example:

DOMAIN=progcode.example.com IMAGE=registry.example.com/progcode:static \
  docker stack deploy -c deploy/stack.example.yml progcode

Gitea Actions variables:

  • DOMAIN — public host routed by Traefik.
  • IMAGE — full image tag to build and deploy, for example registry.example.com/progcode:latest.
  • IMAGE_REPO — optional alternative to IMAGE; the workflow will tag images as ${IMAGE_REPO}:${short_sha}.
  • REGISTRY — registry host for docker login.
  • STACK_NAME — optional, defaults to progcode.
  • TRAEFIK_NETWORK — optional, defaults to traefik-public.
  • TRAEFIK_ENTRYPOINT — optional, defaults to websecure.
  • PUSH_LATEST — optional, set to true to also push ${IMAGE_REPO}:latest.

Gitea Actions secrets:

  • REGISTRY_USER
  • REGISTRY_PASSWORD
  • DEPLOY_SSH_KEY — only when deploying to a remote Swarm manager over SSH.

Remote Swarm deploy variables:

  • DEPLOY_HOST
  • DEPLOY_USER
  • DEPLOY_PORT — optional, defaults to 22.
S
Description
No description provided
Readme
14 MiB
Languages
JavaScript 99.8%
CSS 0.1%