The fastest way to run Life Cost is with Docker Compose. The includedDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/akevalion/life_cost/llms.txt
Use this file to discover all available pages before exploring further.
docker-compose.yml spins up three containers — the Life Cost app, a MySQL 8.0 database, and phpMyAdmin — so you can have a fully working personal finance tracker running on your machine in minutes.
Prerequisites
Before you begin, make sure you have the following:- Docker 20.10 or later — Install Docker
- Docker Compose v2 (
docker compose) or the standalonedocker-composev1 — bundled with Docker Desktop - A Google Cloud project with OAuth 2.0 credentials (Client ID and Client Secret). See Google OAuth Configuration for step-by-step setup instructions.
Setup Steps
Set up Google OAuth credentials
Life Cost requires a Google OAuth 2.0 Client ID and Client Secret to authenticate users. Create these in the Google Cloud Console under your project.Add
http://localhost:5000/login/google/authorized as an Authorised redirect URI for your OAuth client.For full instructions, see the Google OAuth Configuration guide.Configure environment variables
The app reads three required environment variables at startup. The simplest approach is to set them directly inside
docker-compose.yml (see the file contents below), or export them from a .env file before running Compose:| Variable | Description |
|---|---|
DATABASE_URL | SQLAlchemy connection string for your MySQL database. |
GOOGLE_CLIENT_ID | OAuth 2.0 Client ID from Google Cloud Console. |
GOOGLE_CLIENT_SECRET | OAuth 2.0 Client Secret from Google Cloud Console. |
Start the stack with Docker Compose
From the project root, bring up all three services in detached mode:Docker will pull the
akevalion/life:0.0.9.Release image (if not already cached) and start the app, mysql, and phpmyadmin containers.The included docker-compose.yml looks like this:On first startup, Life Cost automatically runs
db.create_all() via Flask-SQLAlchemy, which creates all required database tables (user, wallet, category, money_transfer, tag, user_wallet) in the configured MySQL database. No manual migration step is needed.Open the app and sign in
Once the containers are running, open your browser and navigate to:You will be redirected to Google’s OAuth consent screen. Sign in with your Google account — Life Cost will provision your user profile automatically and associate it with any existing wallets. You are now ready to create wallets and start logging transactions.phpMyAdmin is also available at
http://localhost:8080 for direct database inspection during development.Next Steps
Self-Hosting
Deploy Life Cost on your own server or VPS for a permanent installation.
Environment Variables
See the full list of supported environment variables and configuration options.
API Overview
Explore the REST API endpoints for wallets, transactions, tags, and analytics.