roadlog

roadlog

Docker app from stomko11's Repository

Overview

Roadlog is a self-hosted vehicle fuel and expense tracker. Track fill-ups, expenses, consumption stats, and costs per vehicle. Includes CSV import, backup/restore, and multi-user support.

πŸš— Roadlog

Docker Hub GitHub Container Registry GitHub release

A self-hosted vehicle expense tracking system. Track fuel fill-ups, other expenses, and monitor consumption across all your vehicles.

Screenshots

Dashboard Vehicle Detail Fill-up Form Vehicles

Features

  • Multi-vehicle support β€” petrol, diesel, LPG, CNG, electric, hybrid, plugin hybrid
  • Plugin Hybrid β€” choose fuel or electric per fill-up
  • EVCC integration β€” auto-import home charging sessions with solar %, actual cost from dynamic tariffs, and savings vs grid
  • Vehicle lifecycle β€” mark vehicles as inactive (won't appear in new entries) or hide from stats
  • Smart fill-up form β€” pre-fills last odometer, price, station (configurable)
  • Saved stations β€” per fuel type, with autocomplete suggestions
  • Other expenses β€” insurance, service, repair, tires, parking, tolls, etc.
  • Dashboard β€” monthly spending charts (per vehicle, color-coded), period filters, total distance driven
  • Per-vehicle charts β€” consumption trends, price trends
  • Multi-user β€” shared vehicles, user management
  • CSV import β€” with smart column mapping and auto-guess
  • CSV export & full backup/restore
  • Dark/light theme
  • Configurable units β€” currency (EUR, USD, GBP, CZK, PLN…), volume (L, gal), distance (km, mi)
  • Single container β€” Go backend + embedded frontend, SQLite database

EVCC Integration

Automatically import EV charging sessions from EVCC with full solar/cost data.

Setup:

  1. Go to your EV's edit page β†’ EVCC Integration section
  2. Enter your EVCC instance URL (e.g. http://192.168.x.x:7070)
  3. Click "Connect & Discover" β€” select vehicle and loadpoint
  4. Set a label (e.g. "Home"), sync-since date, and optionally enable daily auto-sync
  5. Set a fallback price for sessions without tariff data (estimates cost using solar %)

What gets imported:

  • Charged energy (kWh)
  • Actual cost (from dynamic tariffs, accounting for solar share)
  • Solar percentage per session
  • Odometer reading
  • Savings vs full grid price

Deduplication: Sessions are tagged with their EVCC session ID β€” re-syncing never creates duplicates.

Multiple sources: You can add multiple EVCC instances per vehicle (e.g. home + parents' house).

Automatic Backup

Roadlog can automatically back up your data to WebDAV (Nextcloud) or a local path on a configurable schedule.

Configure in Settings β†’ Automatic Backup.

Schedule Options

  • Daily β€” runs at a specific time (default 03:00)
  • Weekly β€” runs on a chosen day of the week at a specific time
  • Monthly β€” runs on a chosen day of the month (1–28) at a specific time

WebDAV (Nextcloud) Setup

  1. In Nextcloud, create a folder for backups (e.g. Backups/Roadlog)
  2. Go to Settings β†’ Security β†’ Devices & sessions
  3. Enter a name (e.g. "Roadlog") and click Create new app password
  4. Copy the generated token

In Roadlog settings:

  • Type: WebDAV (Nextcloud)
  • URL: https://your-cloud.com/remote.php/dav/files/YOUR_USERNAME/Backups/Roadlog/
  • Username: your Nextcloud username (found in Settings β†’ Personal info)
  • Password: the app password token from step 3

πŸ’‘ Use an app password instead of your main password β€” it bypasses 2FA and can be revoked independently.

Local Path

Set a directory path (e.g. /backups/roadlog). Mount a volume to that path in Docker:

volumes:
  - ./data:/data
  - /mnt/nas/backups/roadlog:/backups/roadlog

Roadlog will write timestamped JSON backups and auto-clean old ones based on your retention setting.

Options

Setting Description Default
Schedule Daily or weekly Daily
Retain Number of backups to keep 7

You can also click Run Now to trigger a backup manually.

Quick Start

Unraid

  1. In Unraid, go to Docker β†’ Template Repositories
  2. Add: https://github.com/stomko11/roadlog
  3. Click Add Container, select the Roadlog template
  4. Click Apply β€” done!

Data is stored in /mnt/user/appdata/roadlog by default.

Docker Compose

services:
  roadlog:
    image: stomko11/roadlog:latest
    container_name: roadlog
    ports:
      - "3000:3000"
    volumes:
      - ./data:/data
    restart: unless-stopped
docker compose up -d

Open http://localhost:3000

Default credentials: admin@roadlog.local / roadlog

⚠️ Change the default password after first login.

Alternative registries

  • Docker Hub: stomko11/roadlog:latest
  • GitHub Container Registry: ghcr.io/stomko11/roadlog:latest

Environment Variables

Name Description Default
JWT_SECRET Secret for signing auth tokens roadlog-change-me-in-production
PORT Server port 3000
DATA_DIR Directory for SQLite database /data

Build from Source

Requirements: Go 1.22+

cd backend
go mod tidy
go build -o roadlog .
DATA_DIR=. ./roadlog

Open http://localhost:3000

Tech Stack

  • Backend: Go, Gin, GORM, SQLite
  • Frontend: Vanilla JS (embedded single HTML file)
  • Container: Alpine Linux (~20MB)

Development

cd backend
DATA_DIR=. go run main.go

The frontend is embedded in backend/static/index.html. Changes require rebuilding the Go binary.

License

MIT

Install Roadlog on Unraid in a few clicks.

Find Roadlog in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Roadlog Review the template variables and paths Click Install

Download Statistics

178
Total Downloads

Related apps

Details

Repository
ghcr.io/stomko11/roadlog:latest
Last Updated2026-06-27
First Seen2026-06-29

Runtime arguments

Web UI
http://[IP]:[PORT:3000]
Network
bridge
Shell
sh
Privileged
false

Template configuration

WebUI PortPorttcp

Port for the Roadlog web interface.

Target
3000
Default
3000
DataPathrw

Persistent data storage (database).

Target
/data
Default
/mnt/user/appdata/roadlog