{"id":15288752,"url":"https://github.com/plainsource/smartmachine","last_synced_at":"2025-05-07T04:45:52.082Z","repository":{"id":62558818,"uuid":"547798804","full_name":"plainsource/smartmachine","owner":"plainsource","description":"The one person toolkit for deployment to production.","archived":false,"fork":false,"pushed_at":"2025-01-27T11:48:24.000Z","size":406,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-05-07T04:45:46.625Z","etag":null,"topics":["deployment","docker","rails","ruby","server"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/plainsource.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","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-10-08T10:07:42.000Z","updated_at":"2025-01-27T11:48:29.000Z","dependencies_parsed_at":"2022-11-03T10:15:15.156Z","dependency_job_id":"b5746934-44f1-45e5-a2af-5539925936ee","html_url":"https://github.com/plainsource/smartmachine","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plainsource%2Fsmartmachine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plainsource%2Fsmartmachine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plainsource%2Fsmartmachine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plainsource%2Fsmartmachine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plainsource","download_url":"https://codeload.github.com/plainsource/smartmachine/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252816520,"owners_count":21808702,"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":["deployment","docker","rails","ruby","server"],"created_at":"2024-09-30T15:53:04.981Z","updated_at":"2025-05-07T04:45:52.062Z","avatar_url":"https://github.com/plainsource.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SmartMachine\n\nGit push should deploy.\n\nSmartMachine is a full-stack deployment framework for rails optimized for admin programmer happiness and peaceful administration. It encourages natural simplicity by favoring convention over configuration.\n\nBefore you begin, you should install ruby on your system.\n\nDeploy your Rails apps to your own server with - git push production main\n\n### How does it help?\n\nAfter you run the below commands, you get.\n1. Setup of basic best practices of setting up and securing a VPS server.\n2. Setup and installation of Docker.\n3. Setup and installation of docker based Mysql, Solr, Nginx, App Prereceiver.\n4. Deployment of your Rails apps to your own server with - git push production main\n\n### Prerequisites\n\nIf using SmartMachine on a server, perform the below steps before proceeding.\n\nEnsure that you have debian LTS installed on the server.\nRunning the below command should say some latest version of debian LTS.\n\n    $ cat /etc/issue\n\nThen complete, getting started with linode.\n\n    https://www.linode.com/docs/getting-started/\n\nAnd then secure your server.\n\n    https://www.linode.com/docs/security/securing-your-server/\n\n## Installation\n\nInstall SmartMachine at the command prompt:\n\n    $ gem install smartmachine\n\nThen create a new machine and move into it:\n\n    $ smartmachine new yourmachinename\n    $ cd yourmachinename\n\nhere \"yourmachinename\" is the machine name you can choose\n\nAdd your credentials using:\n\n    $ smartmachine credentials:edit\n\nAdd your config details with your favourite editor (here emacs is shown):\n\n    $ emacs ./config\n\nInstall docker, and add UFW rules for Docker if specified at the end of installation.\n\n    $ smartmachine docker install\n\nInstall the engine and buildpacker:\n\n    $ smartmachine engine install\n    $ smartmachine buildpacker install rails\n\n## Usage\n\n### Setup your Network\n\n    $ smartmachine machine network up\n    $ smartmachine machine network down\n\n### Choose Your Grids\n\nChoose only the grids you need. You can start or stop a grid at anytime using \u003cb\u003eup\u003c/b\u003e or \u003cb\u003edown\u003c/b\u003e commands respectively.\n\n#### 1. Nginx Grid\nLets you run a nginx web server fully equipped with https encryption using letsencrypt.\n    \n    $ smartmachine grid nginx up\n    $ smartmachine grid nginx down\n\n#### 2. Prereceiver Grid\nLets you push rails apps to your server without any additional configuration or downtime using \u003cb\u003egit push production main\u003c/b\u003e.\n\n    $ smartmachine grid prereceiver install\n    $ smartmachine grid prereceiver up\n    $ smartmachine grid prereceiver down\n    $ smartmachine grid prereceiver uninstall\n\n#### 3. Mysql Grid\nLets you run a mysql server instance with as many databases as you need.\n\n    $ smartmachine grid mysql up\n    $ smartmachine grid mysql down\n\n#### 4. Minio Grid\nLets you run minio server instance with file storage persistance.\n\n    $ smartmachine grid minio up\n    $ smartmachine grid minio down\n\n#### 5. Elasticsearch Grid\nLets you run elasticsearch server instance with data persistance.\n\n    $ smartmachine grid elasticsearch up\n    $ smartmachine grid elasticsearch down\n\n#### 4. Redis Grid\nLets you run redis server instance for cache storage and job queueing.\n\n    $ smartmachine grid redis up\n    $ smartmachine grid redis down\n\n### Setup Your Apps\n\nCreate your apps and manage them.\n\n#### 1. New App on the server\nLets you create a new bare app on the server.\n\n    $ smartmachine app create \u003cAPPNAME\u003e \u003cAPPDOMAIN\u003e \u003cUSERNAME\u003e\n\n## Development\n\nAfter checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.\n\nTo install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/plainsource/smartmachine. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/plainsource/smartmachine/blob/main/CODE_OF_CONDUCT.md).\n\n## License\n\nThe gem is available as open source under the terms of the [AGPL License](https://www.gnu.org/licenses/agpl-3.0.html).\n\n## Code of Conduct\n\nEveryone interacting in the SmartMachine project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/plainsource/smartmachine/blob/main/CODE_OF_CONDUCT.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplainsource%2Fsmartmachine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplainsource%2Fsmartmachine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplainsource%2Fsmartmachine/lists"}