{"id":29029550,"url":"https://github.com/holofans/holoapi","last_synced_at":"2025-06-26T08:32:50.906Z","repository":{"id":40287685,"uuid":"254428368","full_name":"holofans/holoapi","owner":"holofans","description":"Platform to serve Hololive content to the community tools.","archived":false,"fork":false,"pushed_at":"2023-01-07T20:12:24.000Z","size":1263,"stargazers_count":166,"open_issues_count":25,"forks_count":20,"subscribers_count":10,"default_branch":"develop","last_synced_at":"2023-11-07T19:02:19.268Z","etag":null,"topics":["hololive","nodejs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/holofans.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}},"created_at":"2020-04-09T16:48:33.000Z","updated_at":"2023-10-19T05:42:56.000Z","dependencies_parsed_at":"2023-02-08T00:31:10.976Z","dependency_job_id":null,"html_url":"https://github.com/holofans/holoapi","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/holofans/holoapi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/holofans%2Fholoapi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/holofans%2Fholoapi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/holofans%2Fholoapi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/holofans%2Fholoapi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/holofans","download_url":"https://codeload.github.com/holofans/holoapi/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/holofans%2Fholoapi/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262030234,"owners_count":23247615,"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":["hololive","nodejs"],"created_at":"2025-06-26T08:32:45.290Z","updated_at":"2025-06-26T08:32:50.900Z","avatar_url":"https://github.com/holofans.png","language":"JavaScript","funding_links":[],"categories":["Search Engine"],"sub_categories":[],"readme":"# HoloFans API\n![Deploy to production](https://github.com/holofans/holoapi/workflows/Deploy%20to%20production/badge.svg)\n\nPlatform to serve Hololive information to community tools\n\n## Development\n* Requirements\n  * **Optional**, you can just run Postgres locally. `docker` and `docker-compose` to run Postgres and PGAdmin4.\n* Have a `gcp-key.json` on project root\n  * You may get this from your GCP Project, [under credentials](https://console.cloud.google.com/apis/credentials)\n    * Create **Service Account**\n    * Create **JSON key file**. Rename it to `gcp-key.json`. Store it safely since it cannot be re-downloaded.\n* Copy `.env.example` into `.env`\n  * Change values for your environment\n* Change values in `ecosystem.config.js` for your environment\n* Execute `docker-compose up` or `npm start` on root\n  * API is then accessible through `http://localhost:2434/`\n\n## Applications\n### Client API\n\n### Crawler: YouTube\n\nNote that cron format used here is:\n\n```\n *    *    *    *    *    *\n ┬    ┬    ┬    ┬    ┬    ┬\n │    │    │    │    │    │\n │    │    │    │    │    └ day of week (0 - 7) (0 or 7 is Sun)\n │    │    │    │    └───── month (1 - 12)\n │    │    │    └────────── day of month (1 - 31)\n │    │    └─────────────── hour (0 - 23)\n │    └──────────────────── minute (0 - 59)\n └───────────────────────── second (0 - 59, OPTIONAL)\n```\n\n### Crawler: BiliBili\n\n\n## Production Deployment\n\nSet up deployment of holotools-api by using the following deployment methods:\n\n- [HEROKU Automatic Deployment](https://devcenter.heroku.com/articles/github-integration#automatic-deploys) using a [Procfile](https://devcenter.heroku.com/articles/preparing-a-codebase-for-heroku-deployment#3-add-a-procfile)\n- [Digital Ocean Deployment](https://www.digitalocean.com/community/tutorials/how-to-set-up-automatic-deployment-with-git-with-a-vps)\n  - or if you'd rather not deploy from local, and would like it semi-automated, use a webhook: https://github.com/adnanh/webhook\n\n### Digital Ocean\n\nSetting up a dev user account\n```\n# Add user to run DB under\n$  adduser holotools\n$  usermod -aG sudo holotools\n\n# Have SSH keys synced\n$  rsync --archive --chown=holotools:holotools ~/.ssh /home/holotools\n```\n\nSetting up postgresql\n```\n$  sudo apt update \u0026\u0026 sudo apt install postgresql postgresql-contrib\n$  sudo -i -u postgres\n\n#  Create a new user in postgres with same username as the dev user (holotools):\n$  createuser --interactive\n\n#  Set it up with the holotools user.\n$  createdb holotools\n```\n\nNow you have `holotools` user which can modify `holotools` database without pg auth.\n\nFor testing connections from outside, modify the pg_hba.conf for your postgres install:\n```\nhost    all             all             127.0.0.1/32            trust\n```\nchange the pg_hba.conf for localhost (127.0.0.1/32) from `md5` to `trust` to give pg permissions. This allows SSH tunneling to log in to postgres.\n\nTo connect to postgres from external: set up SSH tunnel `-L 9999:localhost:5432` or, use SSH-tunnel connection option bundled with any db administration tools (tableplus, pgAdmin4). Then use `holotools` user to log in. No db password is needed in this setup, but don't open up the db to external or security issues may arise.\n\n\nInstalling Memcached: [Detailed Guide](https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-memcached-on-ubuntu-16-04)\n```\n$ sudo apt install memcached libmemcached-tools\n```\nThis sets up memcached service at localhost:11211, well, it's not daemonized.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fholofans%2Fholoapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fholofans%2Fholoapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fholofans%2Fholoapi/lists"}