{"id":18765960,"url":"https://github.com/zjleblanc/dog-years","last_synced_at":"2026-04-09T21:58:50.858Z","repository":{"id":78527695,"uuid":"350120952","full_name":"zjleblanc/dog-years","owner":"zjleblanc","description":"What's my (dog's) age again?","archived":false,"fork":false,"pushed_at":"2021-03-29T18:52:23.000Z","size":4220,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-20T21:21:22.542Z","etag":null,"topics":["ansible","apache2","firebase","raspberry-pi"],"latest_commit_sha":null,"homepage":"","language":"HTML","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/zjleblanc.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":"2021-03-21T21:14:35.000Z","updated_at":"2021-03-29T18:52:25.000Z","dependencies_parsed_at":"2023-05-21T10:15:26.608Z","dependency_job_id":null,"html_url":"https://github.com/zjleblanc/dog-years","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zjleblanc/dog-years","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zjleblanc%2Fdog-years","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zjleblanc%2Fdog-years/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zjleblanc%2Fdog-years/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zjleblanc%2Fdog-years/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zjleblanc","download_url":"https://codeload.github.com/zjleblanc/dog-years/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zjleblanc%2Fdog-years/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267490972,"owners_count":24096086,"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","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["ansible","apache2","firebase","raspberry-pi"],"created_at":"2024-11-07T18:37:32.505Z","updated_at":"2026-04-09T21:58:45.817Z","avatar_url":"https://github.com/zjleblanc.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dog-years\n\nI created this simple web app because I recently got a puppy and constantly get asked how old he is... but never actually know the right answer. Using the playbooks in this repo, you can easily spin up a progressive web app that can be pinned to the home screen on your phone!\n\n## Hosting Support\n\nCurrently, hosting options are limited, but I hope to add more in the future. Feel free to fork or merge additional support for new platforms.\n\nSupported:\n- Apache2 (tested on Raspbian)\n- Firebase\n- AWS (S3)\n\nRoadmap:\n- Azure (Blob)\n\n## Simple Setup\n\n1. Clone this repository\n2. Populate [dog_info.yml](dog_info.yml) with your dog's information\n3. [Install Ansible](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html) on your control machine\n4. Install other python reqs `pip install -r requirements.txt`\n5. Install role reqs `ansible-galaxy install -r roles/requirements.yml`\n6. Choose hosting platform\n\n#### Apache2\n\n- Copy [inventory.example](inventory.example) to inventory and populate the placeholder variables to tell Ansible where to deploy the site\n- Complete [SSH setup](https://www.bogotobogo.com/DevOps/Ansible/Ansible-SSH-Connection-Setup-Run-Command.php) so that Ansible can use privilege escalation for tasks when needed\n\n#### Firebase\n\n- Create a Firebase account\n- Create a new project (remember the name for later!)\n- [Install](https://firebase.google.com/docs/cli) the Firebase CLI\n- [Generate](https://firebase.google.com/docs/cli#cli-ci-systems) a token for your automated deployment\n    - `firebase login:ci`\n- Export the token \n    - `export FIREBASE_TOKEN=\u003ctoken\u003e`\n\n#### AWS\n\n- [Create](https://aws.amazon.com/console/) an AWS account\n- [Generate](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys) an access key ID and secret key\n- Configure the CLI `aws configure`\n- Confirm configuration succeeded `aws configure list`\n\n## Deploying the Site\n\nIncluded in the repo are a few Ansible playbooks used to deploy the site to a specified host service. To take advantage of Ansible Automation, run one of the following commands:\n\n- Apache2: `ansible-playbook site.yml -e host_service=apache`\n- Firebase `ansible-playbook site.yml -e host_service=firebase -e project_name=\u003cproject-name\u003e [-e firebase_token=\u003ctoken\u003e]`\n- AWS: `ansible-playbook site.yml -e host_service=aws -e project_name=\u003cproject-name\u003e`\n\n## Testing the Site\n\nA simple smoke test playbook is included in the repo as well. To run, use the following command:\n\n- `ansible-playbook smoke-test.yml -e host_service=\u003cchosen-service\u003e [-e project_name=\u003cproject-name]`","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzjleblanc%2Fdog-years","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzjleblanc%2Fdog-years","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzjleblanc%2Fdog-years/lists"}