selfhosted-apps-docker/lubelog
2024-03-29 00:29:18 +01:00
..
readme.md update 2024-03-29 00:29:18 +01:00

LubeLog in docker

guide-by-example

logo

Purpose & Overview

Vehicle service records and maintainence tracker.

LubeLogger is a new open source vehicle info dump place.

Written in javascript with LiteDB file based database.

Files and directory structure

/home/
└── ~/
    └── docker/
        └── LubeLog/
            ├── 🗁 lubelog_config/
            ├── 🗁 lubelog_data/
            ├── 🗁 lubelog_documents/
            ├── 🗁 lubelog_images/
            ├── 🗁 lubelog_keys/
            ├── 🗁 lubelog_log/
            ├── 🗁 lubelog_temp/
            ├── 🗁 lubelog_translations/
            ├── 🗋 .env
            └── 🗋 docker-compose.yml
  • lubelog directories - with data
  • .env - a file containing environment variables for docker compose
  • docker-compose.yml - a docker compose file, telling docker how to run the containers

Only the two files are required. The directories are created on the first run.

docker-compose

Dockercompose from the github page used as a template.

docker-compose.yml

services:
  lubelog:
    image: ghcr.io/hargata/lubelogger:latest
    container_name: lubelog
    hostname: lubelog
    restart: unless-stopped
    env_file: .env
    volumes:
      - ./lubelog_config:/App/config
      - ./lubelog_data:/App/data
      - ./lubelog_translations:/App/wwwroot/translations
      - ./lubelog_documents:/App/wwwroot/documents
      - ./lubelog_images:/App/wwwroot/images
      - ./lubelog_temp:/App/wwwroot/temp
      - ./lubelog_log:/App/log
      - ./lubelog_keys:/root/.aspnet/DataProtection-Keys
    ports:
      - 8080:8080

networks:
  default:
    name: $DOCKER_MY_NETWORK
    external: true

.env

# GENERAL
DOCKER_MY_NETWORK=caddy_net
TZ=Europe/Bratislava

#LUBELOG
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
MailConfig__EmailServer=smtp-relay.brevo.com
MailConfig__EmailFrom=lubelog@example.com
MailConfig__UseSSL=True
MailConfig__Port=587
MailConfig__Username=<registration-email@gmail.com>
MailConfig__Password=<brevo-smtp-key-goes-here>
LOGGING__LOGLEVEL__DEFAULT=Error

All containers must be on the same network.
Which is named in the .env file.
If one does not exist yet: docker network create caddy_net

Reverse proxy

Caddy v2 is used, details here.

Caddyfile

auto.{$MY_DOMAIN} {
    reverse_proxy lubelog:80
}

First run


Trouble shooting

Update

Manual image update:

  • docker-compose pull
  • docker-compose up -d
  • docker image prune

It is strongly recommended to now add current tags to the images in the compose.
Tags will allow you to easily return to a working state if an update goes wrong.

Backup and restore

Backup

Restore

Backup of just user data

Backup script

Cronjob - scheduled backup

Restore the user data