bglug.it/README.md

2.2 KiB

bglug.it

BgLUG website

Development instructions

Clone repo with the command:

git clone --recurse-submodules ssh://git@git.libreschool.org:1022/bglug/bglug.it.git
cd bglug.it

If you did clone this repo in the usual way, you probably missed the theme's git submodule. To download the missing submodule:

cd bglug.it
git submodule update --init --recursive

Then start the hugo live server:

hugo server

or

docker run --rm -d --name hugo_ls -v "$PWD:/src" -p "1313:1313" git.libreschool.org/bglug/hugo-extended:latest serve -s /src --gc --minify --bind 0.0.0.0

You can produce the complete website with:

hugo

The complete website will be placed in the public directory.

Development misc notes

The imported posts are marked as "draft" and as such aren't rendered in the final output. If you want to render all the drafts, you can add the -D flag:

hugo server -D

Building the container image

This website can be used as a container image; to do so in docker:

docker build -t bglug-website .

Then you can run the image:

docker run -d -p 6080:80 bglug-website

With the above command, the website will be reachable via HTTP to port 6080.

It's also possible do bind mount the container's /logs directory, to expose nginx logs.

Using the container image

Plain docker invocation

docker run -d --name bglug_website -p 6080:80 git.libreschool.org/bglug/bglug.it:latest

Via docker compose

version: "3.9"
services:
  web:
    image: git.libreschool.org/libreschool/bglug.it:latest
    restart: always
    container_name: bglug_website
    volumes:
      - ./logs:/logs
    ports:
      - 6080:80

Configure log rotation

By default logs are stored in a volume mounted on /logs directory inside the container. The access log file is /logs/nginx.access.log and it is rotate daily with a configurable retention, 7 days by default.

version: "3.9"
services:
  web:
    image: git.libreschool.org/bglug/bglug.it:latest
    restart: always
    container_name: bglug_website
    volumes:
      - ./logs:/logs
    environment:
      LOG_DAYS: 14
    ports:
      - 6080:80