{"id":17859864,"url":"https://github.com/passidel/thalia","last_synced_at":"2026-04-08T18:02:49.322Z","repository":{"id":259719001,"uuid":"878931773","full_name":"PassiDel/thalia","owner":"PassiDel","description":"Thalia book price tracker","archived":false,"fork":false,"pushed_at":"2025-01-12T12:16:37.000Z","size":786,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-30T04:00:56.383Z","etag":null,"topics":["books","bun","docker","nuxt","price","thalia","tracker","vue"],"latest_commit_sha":null,"homepage":"https://thalia.syma.dev/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PassiDel.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":"2024-10-26T14:03:01.000Z","updated_at":"2025-01-12T12:16:40.000Z","dependencies_parsed_at":"2024-10-27T15:21:45.121Z","dependency_job_id":"87331316-5c93-4e7d-804c-a23b26242777","html_url":"https://github.com/PassiDel/thalia","commit_stats":null,"previous_names":["passidel/thalia"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/PassiDel/thalia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PassiDel%2Fthalia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PassiDel%2Fthalia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PassiDel%2Fthalia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PassiDel%2Fthalia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PassiDel","download_url":"https://codeload.github.com/PassiDel/thalia/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PassiDel%2Fthalia/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31567227,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["books","bun","docker","nuxt","price","thalia","tracker","vue"],"created_at":"2024-10-28T07:03:42.590Z","updated_at":"2026-04-08T18:02:49.304Z","avatar_url":"https://github.com/PassiDel.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Thalia book price tracker\n\nTrack the pricing of books over time.\n\n## Tech\n\n### Infrastructure\n\n[Nuxt](https://nuxt.com/) is used as an integrated solution for the front and back end. The backend, based on Nitro\nendpoints, requests data\nfrom the Influx and Redis database and sends it to the frontend. If another book is to be tracked, a new schedule is\ninserted via [BullMQ](https://bullmq.io/). Both the Nuxt application and the worker run using [Bun](https://bun.sh/).\n\n![Infrastructure](assets/infra.drawio.png)\n\nThe web, worker and proxy container can be scaled as pleased, because of the included \"load balancing\" of docker network\nusing DNS.\n\n### Fetching price data - Sequence diagram\n\n![Sequence diagram](assets/sequence.drawio.png)\n\n## Setup\n\nMake sure to install dependencies:\n\n```bash\n# bun\ncp .env.example .env\n# now change the values\ndocker compose up -d\n\n\nbun install\n\ncd queue\nbun install\n```\n\n## Development Server\n\nStart the development server on `http://localhost:3000`:\n\n```bash\n# bun\nbun run dev\n\ncd queue\nbun run worker\n```\n\n## Production\n\nCopy both the `docker-compose.yml` and `.env.example`, change the parameters to your liking and then start the stack:\n\n```bash\ncp .env.example .env\n# now change the values\n\ndocker compose --profile prod pull\ndocker compose --profile prod up -d\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpassidel%2Fthalia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpassidel%2Fthalia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpassidel%2Fthalia/lists"}