Skip to content

Latest commit

 

History

History
177 lines (137 loc) · 4.82 KB

README.md

File metadata and controls

177 lines (137 loc) · 4.82 KB

DerpyTools

GitHub commit activity (branch) GitHub top language GitHub GitHub repo size GitHub Repo stars

Elixir Phoenix LiveView Sqlite Tailwind CSS

Metadata Checker

Run Locally

  1. brew install go-task
  2. task install:tools
  3. task install:deps

  1. task generate:caddy_cert
  2. task setup:hosts

  1. task start:meilisearch
  2. task start:imgproxy
  3. task start:caddy
  4. task start:server

Visit localhost:4000 or https://derpytools.site

Architecture

graph TD

U(User) <---> |Proxy| C{Caddy}

subgraph VPS
  C{Caddy} <---> |Admin| LiveBook
  Phoenix <---> |Search| Meilisearch

  C{Caddy} <---> |Server| Phoenix
  Phoenix <---> |Database| Sqlite
  Sqlite <---> |Backup| Litestream

  C{Caddy} <---> |Cache| Varnish
  Varnish <---> |Image Transformer| Imgproxy

  C{Caddy} <---> |Monitoring| Netdata
end

Phoenix <---> |S3| S3((Object Store))
Imgproxy <---> |S3| S3((Object Store))
Litestream <---> |S3| S3((Object Store))
Loading

Meta Routes

  • /stats
  • /version
  • /health
  • /release

TODO (App)

Blog

Table of Contents

  • Reach feature parity with Ghost Blog
    • Routing
    • Table of Contents
    • Reading time estimation
    • Human readable dates & relative time
    • Footer Nav Button
    • Related Posts
    • Resizable Images using Imgproxy
    • Routing
    • HTTP/3, Brotli, AVIF like modern features achieved
    • Keyboard Shortcuts
    • Meilisearch for Command Palette
    • Command Palette
    • Proper code snippet embed
    • Code snippet copy button
    • Recent Posts
    • Blog main page
    • Tags page
    • Metadata
      • LD Json
      • Atom feed
      • Sitemap
    • Componetize all blog post elements
    • URL auto-embed, with auto image extraction
    • File uploader with cropping & compression
    • Lqip

  • Move blog posts
    • Taskfile
    • Multipass
    • Image Compression

  • Move misc pages from Ghost Blog
    • Privacy Policy
    • Terms & Conditions
    • About
    • Social Share
    • Cookie Consent
    • Contact Form

Tools

Command Palette Keyboard Shortcut

  • URL Beaver
    • Metadata Analyzer (WIP)
    • UTM Builder (WIP)
    • URL Shortener
    • Referral link manager
    • Wordle

Authentication & Authorization

Auth Flow

  • Authentication

    • Basic Auth
    • Google OAuth
    • GitHub OAuth
    • Designed Auth pages to look fabulous
  • Authorization

    • Add policies to restrict apps and routes to certain users
    • Add super user through an env variable

Misc

Derpy Tools

  • Heartbeat
  • Offline Indicator
  • Dark Mode
  • Content Security Policy
  • Permissions Policy
  • Source Code Inspect
  • Image lazy loading
  • Tailwind Custom Config
  • CSP Nonce added to Live Dashboard & Inline Styles/Scripts
  • Caddy Error Routes
  • Varnish cache to cache Images
  • Added meta routes
  • Moved to Bandit server
  • Env variables split into multiple files
  • 404 & 500 Pages added
  • UUID7
  • Local storage to persist user inputs
  • Build Server Side Analytics using Clickhouse

TODO (Local)

  • Litestream backup download to get a copy of production db for local testing
  • Setup live book & live documentation/playground

TODO (Stg / Prod)

  • Add commands to run in staging & production
  • Setup Varnish
  • Setup Imgproxy
  • Systemd encryption of env files
  • Reduce the number of bash scripts using variables