{"id":13561691,"url":"https://github.com/caddishouse/reader","last_synced_at":"2025-04-03T17:31:28.845Z","repository":{"id":60189245,"uuid":"532952913","full_name":"caddishouse/reader","owner":"caddishouse","description":"A web-based document reader.","archived":false,"fork":false,"pushed_at":"2024-11-01T04:20:41.000Z","size":1280,"stargazers_count":14,"open_issues_count":20,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-11-04T13:37:55.660Z","etag":null,"topics":["elixir","liveview","phoenix"],"latest_commit_sha":null,"homepage":"https://www.caddishouse.com","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/caddishouse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-09-05T15:13:08.000Z","updated_at":"2024-09-04T07:13:53.000Z","dependencies_parsed_at":"2023-12-19T06:08:11.896Z","dependency_job_id":"9afb20e9-3661-456f-b9de-981b81d75fef","html_url":"https://github.com/caddishouse/reader","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caddishouse%2Freader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caddishouse%2Freader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caddishouse%2Freader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caddishouse%2Freader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/caddishouse","download_url":"https://codeload.github.com/caddishouse/reader/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247046944,"owners_count":20874744,"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":["elixir","liveview","phoenix"],"created_at":"2024-08-01T13:01:00.015Z","updated_at":"2025-04-03T17:31:23.825Z","avatar_url":"https://github.com/caddishouse.png","language":"Elixir","funding_links":[],"categories":["Applications"],"sub_categories":[],"readme":"# Caddishouse\nCaddishouse is a web-based document reader. It connects to your cloud-based storage accounts and lets you import documents to read. You can use it by accessing https://www.caddishouse.com OR set it up locally.\n\nIt does the following:\n* Access your documents in any number of cloud-based storage accounts quickly.\n* Saves the current page you're on for each document.\n* Uses less bandwidth/CPU/memory than current readers (TBD, see issue: (TODO)) and loads faster.\n\nIn order to support this last requirement, it gives up the following features which many other document readers support (these may be implemented at a future point):\n* It is not possible to search a document\n* It is not possible to select/copy text\n* Annotations are not supported\n\nSee ROADMAP for planned features.\n\n## Screenshot\n![image](https://user-images.githubusercontent.com/17934/190648629-54172cb9-16b3-47be-a711-4b80025f834c.png)\n\n## Quick Start\n\n  * Install dependencies with `mix deps.get`\n  * Create and migrate your database with `mix ecto.setup`\n  * Start Phoenix endpoint with `mix phx.server` or inside IEx with `iex -S mix phx.server`\n  * Start your Minio server (see Set-up Minio), or configure an alternative (see Configuration).\n\nNow you can visit [`localhost:3333 `](http://localhost:3333) from your browser.\n\n## Configuration\n```\n# ENVARS\nMINIO_HOST=localhost\nMINIO_PORT=9001\nMINIO_ACCESS_KEY=\u003cmust be set\u003e\nMINIO_SECRET_KEY=\u003cmust be set\u003e\nASSET_URL=http://localhost:9001\n\nGOOGLE_OAUTH_CLIENT=\u003cno default, will not throw error if unset\u003e\nGOOGLE_OAUTH_SECRET=\u003cno default, will not throw error if unset\u003e\nGOOGLE_OAUTH_REDIRECT_URL=http://localhost:3333/auth/google/callback\n```\n\nIn addition, it's possible to add/implement your own storage solution. While using S3 intead of Minio is simply pointing the host/port/keys to your S3 set-up, you could use an alternative storage solution by implementing the `Caddishouse.Storage` behaviour found in `lib/caddishouse/storage/storage.ex`.\n\nYou must then add the following to the config:\n```elixir\nconfig :caddishouse,\n  storage_api: Your.Storage.Module\n```\n\n### Adding/removing providers (TODO)\nThis configuration has yet to be implemented.\n\n## Set-up Minio\n```sh\n# For MacOSX\n$ brew install --cask docker \n\n$ docker run \\\n           -p 9000:9000 \\\n           -p 9001:9001 \\\n           -e \"MINIO_ROOT_USER=admin\" \\\n           -e \"MINIO_ROOT_PASSWORD=admin\" \\\n           quay.io/minio/minio server /data --console-address \":9001\"\n```\n\nAccess http://localhost:9001/buckets, create a bucket called `uploads`.\nGo to http://localhost:9001/identity/account, create a service account.\n\nSee Configuration.\n\n## Gotchas\n### When committing, I get an error that there are dependencies that are out of sync.\nRun the following: `mix git_hooks.install`\n\n# Credits\nPrimarily developed by Alex Fraiha (Fraih001) and aef-.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaddishouse%2Freader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaddishouse%2Freader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaddishouse%2Freader/lists"}