Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

2,930 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Life

pre-commit

A personal productivity web application. It tracks tasks, habits, books, articles, events, countdowns and recipes, and exposes each of them through a REST API, a browser UI and a command-line client.

What runs

Service Framework Purpose
API FastAPI REST backend, Authelia ForwardAuth and OIDC auth
Vue Vue 3 + TypeScript Single-page frontend, every page
Scheduler APScheduler Daily jobs — autotasks, autofun

All three share one PostgreSQL database and a Redis cache. Docker Compose runs them behind Traefik, which terminates TLS and routes by host.

cli/ is a separate Go module building life, a REST client over the same API. ops/lifeops is the bash tool that drives local environments and deploys. It and the scripts it calls run on bash 3.2, the version macOS ships, so they use no bash-4 constructs such as mapfile or declare -A.

First run

Requires Docker, uv, Python 3.14 and Node 24.

./ops/lifeops dev start       # build and start every service, then migrate and add users
./ops/lifeops dev health      # confirm the containers are up

That serves the app at https://app.docker.localhost/, and the API with its Swagger docs at https://api.docker.localhost/.

./ops/lifeops dev db seed --scale 1 fills the database with sample data.

Tests

task test                    # every suite but e2e: Python, the CLI and the frontend
task lint                    # every read-only check; task format rewrites
./ops/lifeops test run        # Python suite, against its own Postgres and Redis
./ops/lifeops test e2e        # Playwright, inside this checkout's test stack
cd frontend && npm test      # TypeScript build check plus unit tests

Each pytest session starts and discards its own Postgres and Redis, unless TEST_DATABASE_URL or TEST_REDIS_URL names a server to use instead. The e2e suite runs inside a compose project named after the checkout, which publishes no ports. So two checkouts run either suite at once without touching each other or the dev stack.

Documentation

mkdocs serve builds the full documentation at http://127.0.0.1:8000. Start with Quick Start, then Testing and Blue/Green Deployment.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages