{"id":19752210,"url":"https://github.com/ipatch/chrisrjones_web","last_synced_at":"2026-05-16T07:12:24.858Z","repository":{"id":19708102,"uuid":"22963348","full_name":"ipatch/chrisrjones_web","owner":"ipatch","description":"📖 A simple CMS using rails and friends 🚀","archived":false,"fork":false,"pushed_at":"2023-09-18T16:25:44.000Z","size":1634,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2026-04-21T11:41:50.196Z","etag":null,"topics":["api","api-restful","attachment","content-management","rails","rails-cms","ruby","rvm"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/ipatch.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":"2014-08-14T17:58:33.000Z","updated_at":"2023-08-08T19:07:22.000Z","dependencies_parsed_at":"2025-01-10T21:43:59.202Z","dependency_job_id":"05960887-a7dc-45be-9b55-da1f4b1aa988","html_url":"https://github.com/ipatch/chrisrjones_web","commit_stats":null,"previous_names":["ipatch/chrisrjones_web"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/ipatch/chrisrjones_web","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipatch%2Fchrisrjones_web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipatch%2Fchrisrjones_web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipatch%2Fchrisrjones_web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipatch%2Fchrisrjones_web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ipatch","download_url":"https://codeload.github.com/ipatch/chrisrjones_web/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipatch%2Fchrisrjones_web/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33093774,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"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":["api","api-restful","attachment","content-management","rails","rails-cms","ruby","rvm"],"created_at":"2024-11-12T02:48:24.289Z","updated_at":"2026-05-16T07:12:24.840Z","avatar_url":"https://github.com/ipatch.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e The code repository maintaining [chrisrjones.com](http://www.chrisrjones.com)\n\n\u003cdiv align=\"center\"\u003e\n\n## Contents\n\n\u003ca name=\"contents\"\u003e\u003c/a\u003e\n\n• [Usage](#usage) • [Deployment](#deployment) • [Deployment Use Case](#deployment-use-case) • [Security](#security) • [TODOs](#todos) •\n\n\u003c/div\u003e\n\n## Usage\n\n\u003ca name=\"usage\"\u003e\u003c/a\u003e\n\nWhen working with attachments using this CMS visit `http://tld.com/attachments` to manage attachments stored in the Postgres DB for this app.\n\n\u003e ⚠️ Must be logged in to manage attachments.\n\n\n### Usage / Manually Testing API endpoints\n\n\u003ca id=\"usage-testing-api-endpoints\"\u003e\u003c/a\u003e\n\n[httpie](https://httpie.org) is a useful utility for accessing endpoints, and even those exposed through an API.  That said, I half ass setup SSL a while back, and test certain API endpoints on the remote box, ie. chrisrjones.com, pass the `--verify=no` flag to **http** to manually access / test an endpoint.\n\n\u003cstrong\u003eEx\u003c/strong\u003e\n\n```shell\nhttp --verbose --verify=no http://localhost:3000/api/hello\nhttp --verbose --verify=no https://chrisrjones.com/api/hello\n```\n\nThe above command is an exposed API endpoint that does not require an auth token to access, and should return a **200** HTTP status code.\n\n\u003e The URL **must** be http**s** and NOT _http_ or else a **302** response will be returned from the server.\n\n## Deployment\n\n\u003ca id=\"deployment\"\u003e\u003c/a\u003e\n\nThis app will bind to the local port of `7777` on the deployed server using puma and nginx.  See `deploy.rb` for more details.\n\n### Deployment Use Case\n\n\u003ca id=\"deployment-use-case\"\u003e\u003c/a\u003e\n\nFor my particular use case, I manage many different Rubies on my system using various different tools such as asdf, homebrew, and RVM, that said, I chose to use RVM to manage the bundled gems used within this app because RVM integrates with Capistrano less painful then other Ruby managers, ie. asdf.  One caveat with using fish shell with RVM is that by default I use asdf Rubies on the daily, and need to switch to RVM when I want to manage gems contained with this app, and also need to start and ssh-agent when deploying this app using fish shell with RVM.\n\n```shell\necho \"rvm use [RUBY_VERSION_DEFINED_FOR_THIS APP]\"\necho \"as of March 4, 2020 👇\"\nrvm ues 2.7.0\nssh-agent\nssh-add ~/.ssh/id_rsa\ncap production deploy\n```\n\n## Security\n\n\u003ca id=\"security\"\u003e\u003c/a\u003e\n\nTo update a vulnerable gem bundled within the app\n\n```shell\nbundle update [mr-fancy-vulnerable-gem]\necho \"Example\"\nbundle update loofah\n```\n\n\u003e The above command is useful for updating gems bundled in the gemset but aren't defined within the `Gemfile`.\n\n## Maintenance\n\n\u003ca id=\"maintenance\"\u003e\u003c/a\u003e\n\n### maintenance / march 2023\n\n\u003e it appears a rails 5.x app will not work with ruby 3.x so use ruby 2.7.x to work with rails 5.x\n\n1. install rvm for local `$USER`\n2. install latest ruby 2.7.x\n\n  2a. if using archlinux, install openssl 1.x via rvm\n\n  ```shell\n  rvm pkg install openssl\n  ```\n\n  2b. reinstall ruby 2.7.x via rvm, use rvm defined openssl\n\n  ```\n  rvm install 2.7.7 --with-openssl-dir=$HOME/.rvm/usr\n  echo \"install ruby with local openssl and jemalloc\"\n  rvm reinstall 2.7.8 --with-openssl-dir=\"$HOME/.rvm/usr\" --with-jemalloc\n  ```\n\n3. if using fish shell, setup `rvm.fish` from dotfiles repo\n4. if working locally with a arch linux box, install postgres\n\n  4a. post postgres setup steps\n\n  ```\n  sudo -iu postgres\n  initdb -D /var/lib/postgres/data\n  createuser --interactive\n  ```\n\n5. then run rails tasks\n\n  ```\n  rails db:create\n  rails db:migrate\n  ```\n\nTo update gems listed within a **Gemfile**\n\n```shell\nbundle update --all\n```\n\n❗️ The are sub commands for performing different levels of updates ie.\n\n- major\n- minor\n- patch\n\nto name a few.  For more info on granular updating of gems [see](https://bundler.io/v2.0/man/bundle-update.1.html)\n\n## TODO\n\n\u003ca id=\"todo\"\u003e\u003c/a\u003e\n\n- [ ] if using app as an API only how can i authenticate with the app using a frontend framework such as react\n- [x] fix the user registration process, ie. when i register an account the app throws and error as seen below\n    ```\n    SocketError in UsersController#create\n\n    getaddrinfo: Name or service not known\n\n    Rails.root: /opt/code/git/github/chrisrjones_rails\n    Application Trace | Framework Trace | Full Trace\n\n    app/models/user.rb:36:in `send_confirmation'\n    app/controllers/users_controller.rb:28:in `create'\n    ```\n- [ ] work on figuring out how i can setup an intializer to experiment with the bun \u0026 deno javascript runtimes\n- [x] updating my `boot.rb` file to use next avail port broke accessing my app on my LAN, should be easy fix\n- [ ] fix contact form time permitting\n- [ ] make certain that only the **owner** of an attachment can delete an attachment, ie. don't allow other peeps to delete other peeps attachments.\n- [ ] figure out why _seed_ data isn't properly inserting into the test database\n- [ ] experiment with versioning API, ie. create a V1 \u0026 V2\n- [ ] update string formatting with those defined in the Rubocop style guidelines for Ruby\n- [x] ~~figure out why app isn't running in dev environment ¯\\\\_(ツ)_/¯~~\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipatch%2Fchrisrjones_web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fipatch%2Fchrisrjones_web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipatch%2Fchrisrjones_web/lists"}