{"id":25940884,"url":"https://github.com/d-ashesss/mah-moneh","last_synced_at":"2026-05-09T13:48:23.761Z","repository":{"id":62865896,"uuid":"553847626","full_name":"d-ashesss/mah-moneh","owner":"d-ashesss","description":"Personal finance management API","archived":false,"fork":false,"pushed_at":"2023-10-08T20:03:20.000Z","size":238,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-06-20T10:06:16.106Z","etag":null,"topics":["budgeting","finance","golang","postgresql","restful"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/d-ashesss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-18T21:42:28.000Z","updated_at":"2023-08-28T22:19:35.000Z","dependencies_parsed_at":"2023-01-29T21:46:41.391Z","dependency_job_id":"9387b682-1353-40b1-aca7-c7fd7ff6da64","html_url":"https://github.com/d-ashesss/mah-moneh","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-ashesss%2Fmah-moneh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-ashesss%2Fmah-moneh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-ashesss%2Fmah-moneh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-ashesss%2Fmah-moneh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/d-ashesss","download_url":"https://codeload.github.com/d-ashesss/mah-moneh/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241788096,"owners_count":20020196,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["budgeting","finance","golang","postgresql","restful"],"created_at":"2025-03-04T05:19:39.245Z","updated_at":"2026-05-09T13:48:18.716Z","avatar_url":"https://github.com/d-ashesss.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mah Moneh\n\n[![test status](https://github.com/d-ashesss/mah-moneh/workflows/test/badge.svg?branch=main)](https://github.com/d-ashesss/mah-moneh/actions)\n[![Go Report Card](https://goreportcard.com/badge/github.com/d-ashesss/mah-moneh)](https://goreportcard.com/report/github.com/d-ashesss/mah-moneh)\n[![Go version](https://img.shields.io/github/go-mod/go-version/d-ashesss/mah-moneh)](https://github.com/d-ashesss/mah-moneh/blob/main/go.mod)\n[![latest tag](https://img.shields.io/github/v/tag/d-ashesss/mah-moneh?include_prereleases\u0026sort=semver)](https://github.com/d-ashesss/mah-moneh/tags)\n[![MIT license](https://img.shields.io/github/license/d-ashesss/mah-moneh?color=blue)](https://opensource.org/licenses/MIT)\n[![feline reference](https://img.shields.io/badge/may%20contain%20cat%20fur-%F0%9F%90%88-blueviolet)](https://github.com/d-ashesss/mah-moneh)\n\nPersonal finance management API.\n\n## Running the app\n\nThe easiest way to run the app is to run it in Docker (provide environment variables as needed):\n\n```bash\ndocker run -p 8080:8080 \\\n  -e 'DB_HOST=postgres' \\\n  -e 'DB_PASSWORD=postgres-password' \\\n  -e 'AUTH_OPENID_CONFIGURATION_URL=https://accounts.google.com/.well-known/openid-configuration' \\\n  ashesss/mah-moneh:latest\n```\n\nOr even with docker compose, where you can configure the environment in `docker-compose.override.yml` (see [example](https://github.com/d-ashesss/mah-moneh/wiki/example-docker%E2%80%90compose.override.yml)), then simply run:\n```bash\ndocker-compose up\n```\n\n## Configuration\n\nThe configuration is done via environment variables.\n\n* `PORT` - the port to run the web server on, default: 8080\n\n### Authentication\n\nThe API handles authentication using JWT tokens. The token is passed in the `Authorization` header as a bearer token. It is possible to use OIDC service like [Auth0](https://auth0.com) to obtain the token and then use it with this API. It is required to provide the app with the URL to the OIDC discovery documents in the `AUTH_OPENID_CONFIGURATION_URL` environment variable.\n\n### Database\n\nThe API uses PostgreSQL database. The connection must be with following environment variables:\n\n* `DB_HOST` - the hostname of the database server, default: localhost\n* `DB_PORT` - the port of the database server, default: 5432\n* `DB_NAME` - the name of the database, default: postgres\n* `DB_USER` - database user, default: postgres\n* `DB_PASSWORD` - database user's password, required\n* `DB_DEBUG` - whether to use the database in debug mode\n\n### CORS\n\nTo configure CORS to allow access from a specific domain, set the `CORS_ALLOWED_ORIGINS` environment variable to semicolon-separated list of allowed URLs,\nfor example `CORS_ALLOWED_ORIGINS=http://localhost:5000;http://example.com`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd-ashesss%2Fmah-moneh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fd-ashesss%2Fmah-moneh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd-ashesss%2Fmah-moneh/lists"}