Skip to main content

Projects

Table of Contents

GoCron
#

A powerful task scheduler and automation platform built with Go and Vue.js

Actively used

GoCron is actively used in production environments for automated backups, DevOps tasks, and system maintenance.

GoCron provides a modern web interface for managing recurring jobs, executing commands, and monitoring task execution in real-time. Define all your automation tasks in a simple YAML configuration file and let GoCron handle the rest.

Key Features
#

  • YAML-Based Configuration — Define jobs, schedules, and environment variables in maintainable YAML
  • Cron Scheduling — Full support for cron expressions for precise timing
  • Real-Time Monitoring — Beautiful Vue.js dashboard with live updates via Server-Sent Events
  • Job Management — Start, stop, enable/disable jobs individually or in bulk
  • Execution History — View detailed logs and execution history for every run
  • Terminal Interface — Built-in terminal for ad-hoc commands with history
  • Pre-installed Backup Tools — Ships with BorgBackup, Rclone, Restic, Rdiff-backup, and more
  • Environment Variables — Job-specific environment configuration
  • Healthcheck Integration — Support for external healthcheck services
  • REST API — Full-featured API with OpenAPI documentation
  • Live Reload — Configuration changes apply automatically without restart

Architecture
#

  • Backend: Go with Echo framework, SQLite for persistence
  • Frontend: Vue 3 with TypeScript, Vite, and Tailwind CSS (DaisyUI)
  • Scheduler: Robust cron library for reliable execution
  • Real-time: Server-Sent Events for instant UI updates

Use Cases
#

Perfect for automated backups, DevOps tasks, data processing, monitoring, and system housekeeping. Whether you need to schedule Docker container updates, run periodic data migrations, or automate log rotation — GoCron has you covered.

Source: https://github.com/flohoss/gocron

Mittagskarte
#

Intelligent web scraper and aggregator for restaurant lunch menus

Live in Production

Running at schniddzl.de, serving the Stuttgart region with automated menu updates.

Mittagskarte automatically fetches, processes, and displays restaurant lunch menus in a beautiful, mobile-friendly interface. It scrapes restaurant websites on a configurable schedule and presents everything in one convenient location.

Key Features
#

  • Automated Menu Fetching — Scrapes restaurant websites using Playwright browser automation
  • Multiple Extraction Methods:
    • Direct PDF downloads
    • Image extraction via CSS/XPath selectors
    • HTML content scraping
    • Dynamic date placeholders for weekly menus
  • Intelligent Processing:
    • Converts all menus to optimized WebP format
    • Automatically resizes images to 1920px width for faster loading
    • Handles both PDF and image formats seamlessly
    • Smart landscape/portrait detection
  • Manual Upload Support — API endpoint for restaurants to upload menus directly
  • Modern Web Interface:
    • Built with Go templates (templ) and HTMX
    • Responsive Tailwind CSS design
    • Favorites system with cookie persistence
    • Real-time loading indicators
    • Accessibility-focused with ARIA labels

How It Works
#

  1. Configuration — Define restaurants in YAML with scraping instructions
  2. Scheduled Execution — Cron jobs trigger menu fetching at specified times
  3. Web Scraping — Playwright navigates sites and extracts menu content
  4. Image Processing — ImageMagick converts and optimizes to WebP
  5. Serving — Fast Go/Echo web server with aggressive caching

Dynamic Date Placeholders
#

A unique feature for matching weekly menus:

locator: "//div[@class='calendar']//span[text()='{{date(format=02.01.2006, day=friday, offset=-1)}}']"

This matches elements containing dates like “last Friday” — perfect for restaurants with weekly schedules.

Website: https://schniddzl.de
Source: https://github.com/flohoss/mittagskarte

GoDash
#

A simple, customizable dashboard written in Go. It provides an overview of weather information, system status, and bookmarks with icons and links.

Source: https://github.com/flohoss/godash

Quiz
#

A modern, full-stack quiz platform built with Go (backend) and Vue 3 (frontend), designed for easy deployment via Docker.

Source: https://github.com/flohoss/quiz