smartmachine 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.rdoc +0 -0
- data/README.rdoc +87 -0
- data/bin/buildpacker +8 -0
- data/bin/prereceiver +8 -0
- data/bin/smartmachine +81 -0
- data/bin/smartrunner +28 -0
- data/lib/smart_machine.rb +24 -0
- data/lib/smart_machine/apps.rb +14 -0
- data/lib/smart_machine/apps/app.rb +182 -0
- data/lib/smart_machine/apps/rails.rb +250 -0
- data/lib/smart_machine/base.rb +11 -0
- data/lib/smart_machine/boot.rb +31 -0
- data/lib/smart_machine/buildpacker.rb +106 -0
- data/lib/smart_machine/credentials.rb +126 -0
- data/lib/smart_machine/docker.rb +144 -0
- data/lib/smart_machine/engine.rb +82 -0
- data/lib/smart_machine/engine/Dockerfile +27 -0
- data/lib/smart_machine/engine/buildpacks/rails/Dockerfile +21 -0
- data/lib/smart_machine/gem_version.rb +17 -0
- data/lib/smart_machine/grids.rb +15 -0
- data/lib/smart_machine/grids/elasticsearch.rb +97 -0
- data/lib/smart_machine/grids/elasticsearch/.keep +0 -0
- data/lib/smart_machine/grids/minio.rb +77 -0
- data/lib/smart_machine/grids/minio/.keep +0 -0
- data/lib/smart_machine/grids/mysql.rb +66 -0
- data/lib/smart_machine/grids/mysql/docker-entrypoint-initdb.d/.keep +0 -0
- data/lib/smart_machine/grids/nginx.rb +137 -0
- data/lib/smart_machine/grids/nginx/.keep +0 -0
- data/lib/smart_machine/grids/prereceiver.rb +170 -0
- data/lib/smart_machine/grids/prereceiver/Dockerfile +20 -0
- data/lib/smart_machine/grids/prereceiver/fcgiwrap/APKBUILD +49 -0
- data/lib/smart_machine/grids/prereceiver/fcgiwrap/fcgiwrap.confd +6 -0
- data/lib/smart_machine/grids/prereceiver/fcgiwrap/fcgiwrap.initd +43 -0
- data/lib/smart_machine/grids/prereceiver/fcgiwrap/fcgiwrap.pre-install +7 -0
- data/lib/smart_machine/grids/prereceiver/fcgiwrap/packages/main/x86_64/APKINDEX.tar.gz +0 -0
- data/lib/smart_machine/grids/prereceiver/fcgiwrap/packages/main/x86_64/fcgiwrap-1.1.1-r4.apk +0 -0
- data/lib/smart_machine/grids/prereceiver/fcgiwrap/packages/main/x86_64/fcgiwrap-doc-1.1.1-r4.apk +0 -0
- data/lib/smart_machine/grids/prereceiver/fcgiwrap/packages/main/x86_64/fcgiwrap-openrc-1.1.1-r4.apk +0 -0
- data/lib/smart_machine/grids/redis.rb +58 -0
- data/lib/smart_machine/grids/redis/.keep +0 -0
- data/lib/smart_machine/grids/solr.rb +99 -0
- data/lib/smart_machine/grids/solr/config/.keep +0 -0
- data/lib/smart_machine/grids/solr/config/README.txt +77 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/contractions_ca.txt +8 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/contractions_fr.txt +15 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/contractions_ga.txt +5 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/contractions_it.txt +23 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/hyphenations_ga.txt +5 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stemdict_nl.txt +6 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stoptags_ja.txt +420 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_ar.txt +125 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_bg.txt +193 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_ca.txt +220 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_cz.txt +172 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_da.txt +110 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_de.txt +294 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_el.txt +78 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_en.txt +54 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_es.txt +356 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_eu.txt +99 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_fa.txt +313 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_fi.txt +97 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_fr.txt +186 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_ga.txt +110 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_gl.txt +161 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_hi.txt +235 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_hu.txt +211 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_hy.txt +46 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_id.txt +359 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_it.txt +303 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_ja.txt +127 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_lv.txt +172 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_nl.txt +119 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_no.txt +194 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_pt.txt +253 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_ro.txt +233 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_ru.txt +243 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_sv.txt +133 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_th.txt +119 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/stopwords_tr.txt +212 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/lang/userdict_ja.txt +29 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/managed-schema +1007 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/params.json +20 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/protwords.txt +21 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/solrconfig.xml +1355 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/stopwords.txt +14 -0
- data/lib/smart_machine/grids/solr/config/configsets/_default/conf/synonyms.txt +29 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/_rest_managed.json +1 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/_schema_analysis_stopwords_english.json +38 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/_schema_analysis_synonyms_english.json +11 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/clustering/carrot2/README.txt +11 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/clustering/carrot2/kmeans-attributes.xml +19 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/clustering/carrot2/lingo-attributes.xml +24 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/clustering/carrot2/stc-attributes.xml +19 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/currency.xml +67 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/elevate.xml +42 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/contractions_ca.txt +8 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/contractions_fr.txt +15 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/contractions_ga.txt +5 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/contractions_it.txt +23 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/hyphenations_ga.txt +5 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stemdict_nl.txt +6 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stoptags_ja.txt +420 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_ar.txt +125 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_bg.txt +193 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_ca.txt +220 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_ckb.txt +136 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_cz.txt +172 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_da.txt +110 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_de.txt +294 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_el.txt +78 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_en.txt +54 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_es.txt +356 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_eu.txt +99 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_fa.txt +313 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_fi.txt +97 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_fr.txt +186 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_ga.txt +110 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_gl.txt +161 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_hi.txt +235 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_hu.txt +211 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_hy.txt +46 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_id.txt +359 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_it.txt +303 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_ja.txt +127 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_lv.txt +172 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_nl.txt +119 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_no.txt +194 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_pt.txt +253 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_ro.txt +233 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_ru.txt +243 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_sv.txt +133 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_th.txt +119 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/stopwords_tr.txt +212 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/lang/userdict_ja.txt +29 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/managed-schema +1187 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/mapping-FoldToASCII.txt +3813 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/mapping-ISOLatin1Accent.txt +246 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/params.json +11 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/protwords.txt +21 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/solrconfig.xml +1616 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/spellings.txt +2 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/stopwords.txt +14 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/synonyms.txt +29 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/update-script.js +53 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/README.txt +101 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/VM_global_library.vm +186 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/browse.vm +33 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/cluster.vm +19 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/cluster_results.vm +31 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/debug.vm +28 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/did_you_mean.vm +11 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/error.vm +11 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/facet_fields.vm +24 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/facet_pivot.vm +12 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/facet_queries.vm +12 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/facet_ranges.vm +23 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/facets.vm +10 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/footer.vm +43 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/head.vm +37 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/header.vm +7 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/hit.vm +25 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/hit_grouped.vm +43 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/hit_plain.vm +25 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/join_doc.vm +20 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.css +48 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.js +763 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/layout.vm +24 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/main.css +231 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/mime_type_lists.vm +68 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/pagination_bottom.vm +22 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/pagination_top.vm +29 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/product_doc.vm +32 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/query.vm +42 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/query_form.vm +64 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/query_group.vm +43 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/query_spatial.vm +75 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/results_list.vm +22 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/richtext_doc.vm +153 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/suggest.vm +8 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/velocity/tabs.vm +50 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/xslt/example.xsl +132 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/xslt/example_atom.xsl +67 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/xslt/example_rss.xsl +66 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/xslt/luke.xsl +337 -0
- data/lib/smart_machine/grids/solr/config/configsets/sample_techproducts_configs/conf/xslt/updateXml.xsl +70 -0
- data/lib/smart_machine/grids/solr/config/configsets/sunspot/conf/_rest_managed.json +1 -0
- data/lib/smart_machine/grids/solr/config/configsets/sunspot/conf/admin-extra.html +31 -0
- data/lib/smart_machine/grids/solr/config/configsets/sunspot/conf/currency.xml +67 -0
- data/lib/smart_machine/grids/solr/config/configsets/sunspot/conf/elevate.xml +36 -0
- data/lib/smart_machine/grids/solr/config/configsets/sunspot/conf/lang/stopwords_en.txt +54 -0
- data/lib/smart_machine/grids/solr/config/configsets/sunspot/conf/mapping-ISOLatin1Accent.txt +246 -0
- data/lib/smart_machine/grids/solr/config/configsets/sunspot/conf/protwords.txt +21 -0
- data/lib/smart_machine/grids/solr/config/configsets/sunspot/conf/schema.xml +278 -0
- data/lib/smart_machine/grids/solr/config/configsets/sunspot/conf/scripts.conf +24 -0
- data/lib/smart_machine/grids/solr/config/configsets/sunspot/conf/solrconfig.xml +632 -0
- data/lib/smart_machine/grids/solr/config/configsets/sunspot/conf/spellings.txt +2 -0
- data/lib/smart_machine/grids/solr/config/configsets/sunspot/conf/synonyms.txt +29 -0
- data/lib/smart_machine/grids/solr/config/lib/.keep +0 -0
- data/lib/smart_machine/grids/solr/config/solr.xml +53 -0
- data/lib/smart_machine/grids/solr/config/zoo.cfg +31 -0
- data/lib/smart_machine/grids/solr/docker-entrypoint-initdb.d/.keep +0 -0
- data/lib/smart_machine/grids/solr/sunspot/conf/schema.xml +278 -0
- data/lib/smart_machine/grids/solr/sunspot/conf/solrconfig.xml +632 -0
- data/lib/smart_machine/logger.rb +35 -0
- data/lib/smart_machine/machine.rb +192 -0
- data/lib/smart_machine/ssh.rb +43 -0
- data/lib/smart_machine/sync.rb +108 -0
- data/lib/smart_machine/templates/dotsmartmachine/apps/containers/.keep +0 -0
- data/lib/smart_machine/templates/dotsmartmachine/apps/repositories/.keep +0 -0
- data/lib/smart_machine/templates/dotsmartmachine/config/environment.rb +18 -0
- data/lib/smart_machine/templates/dotsmartmachine/config/users.yml +4 -0
- data/lib/smart_machine/templates/dotsmartmachine/grids/elasticsearch/data/.keep +0 -0
- data/lib/smart_machine/templates/dotsmartmachine/grids/elasticsearch/logs/.keep +0 -0
- data/lib/smart_machine/templates/dotsmartmachine/grids/minio/data/.keep +0 -0
- data/lib/smart_machine/templates/dotsmartmachine/grids/mysql/data/.keep +0 -0
- data/lib/smart_machine/templates/dotsmartmachine/grids/nginx/certificates/.keep +0 -0
- data/lib/smart_machine/templates/dotsmartmachine/grids/nginx/fastcgi.conf +11 -0
- data/lib/smart_machine/templates/dotsmartmachine/grids/nginx/htpasswd/.keep +0 -0
- data/lib/smart_machine/templates/dotsmartmachine/grids/nginx/nginx.tmpl +373 -0
- data/lib/smart_machine/templates/dotsmartmachine/grids/prereceiver/pre-receive +17 -0
- data/lib/smart_machine/templates/dotsmartmachine/grids/redis/data/.keep +0 -0
- data/lib/smart_machine/templates/dotsmartmachine/grids/solr/solr/.keep +0 -0
- data/lib/smart_machine/templates/dotsmartmachine/tmp/.keep +0 -0
- data/lib/smart_machine/user.rb +38 -0
- data/lib/smart_machine/version.rb +10 -0
- metadata +297 -12
- data/README.md +0 -9
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# The main SmartMachine Docker driver
|
|
2
|
+
module SmartMachine
|
|
3
|
+
class Docker < SmartMachine::Base
|
|
4
|
+
def initialize
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
# Installing Docker!
|
|
8
|
+
#
|
|
9
|
+
# Example:
|
|
10
|
+
# => Installation Complete
|
|
11
|
+
#
|
|
12
|
+
# Arguments:
|
|
13
|
+
# none
|
|
14
|
+
def install
|
|
15
|
+
puts "-----> Installing Docker"
|
|
16
|
+
|
|
17
|
+
ssh = SmartMachine::SSH.new
|
|
18
|
+
|
|
19
|
+
print "-----> Installing Docker Engine ... "
|
|
20
|
+
commands = [
|
|
21
|
+
"sudo apt-get -y update",
|
|
22
|
+
"sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common",
|
|
23
|
+
"curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -",
|
|
24
|
+
"sudo apt-key fingerprint 0EBFCD88",
|
|
25
|
+
"sudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable\"",
|
|
26
|
+
"sudo apt-get -y update",
|
|
27
|
+
"sudo apt-get -y install docker-ce",
|
|
28
|
+
"sudo usermod -aG docker $USER",
|
|
29
|
+
"docker run --rm hello-world",
|
|
30
|
+
"docker rmi hello-world"
|
|
31
|
+
]
|
|
32
|
+
ssh.run commands
|
|
33
|
+
puts "done"
|
|
34
|
+
|
|
35
|
+
print "-----> Installing Docker Compose ... "
|
|
36
|
+
commands = [
|
|
37
|
+
"sudo curl -L --fail https://github.com/docker/compose/releases/download/1.24.0/run.sh -o /usr/local/bin/docker-compose",
|
|
38
|
+
"sudo chmod +x /usr/local/bin/docker-compose",
|
|
39
|
+
"docker-compose --version",
|
|
40
|
+
"sudo curl -L https://raw.githubusercontent.com/docker/compose/1.24.0/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose"
|
|
41
|
+
]
|
|
42
|
+
ssh.run commands
|
|
43
|
+
puts "done"
|
|
44
|
+
|
|
45
|
+
self.add_ufw_rules
|
|
46
|
+
|
|
47
|
+
puts "-----> Docker Installation Complete"
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Uninstalling Docker!
|
|
51
|
+
#
|
|
52
|
+
# Example:
|
|
53
|
+
# => Uninstallation Complete
|
|
54
|
+
#
|
|
55
|
+
# Arguments:
|
|
56
|
+
# none
|
|
57
|
+
def uninstall
|
|
58
|
+
puts "-----> Uninstalling Docker"
|
|
59
|
+
|
|
60
|
+
ssh = SmartMachine::SSH.new
|
|
61
|
+
|
|
62
|
+
print "-----> Uninstalling Docker Compose ... "
|
|
63
|
+
commands = ["sudo rm /usr/local/bin/docker-compose"]
|
|
64
|
+
ssh.run commands
|
|
65
|
+
puts "done"
|
|
66
|
+
|
|
67
|
+
print "-----> Uninstalling Docker Engine ... "
|
|
68
|
+
commands = ["sudo apt-get purge docker-ce", "sudo rm -rf /var/lib/docker"]
|
|
69
|
+
ssh.run commands
|
|
70
|
+
puts "done"
|
|
71
|
+
|
|
72
|
+
self.remove_ufw_rules
|
|
73
|
+
|
|
74
|
+
puts "-----> You must delete any edited configuration files manually."
|
|
75
|
+
|
|
76
|
+
puts "-----> Docker Uninstallation Complete"
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def update
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def add_ufw_rules
|
|
83
|
+
puts '-----> Add the following rules to the end of the file /etc/ufw/after.rules and reload ufw using - sudo ufw reload'
|
|
84
|
+
puts '# BEGIN UFW AND DOCKER
|
|
85
|
+
*filter
|
|
86
|
+
:ufw-user-forward - [0:0]
|
|
87
|
+
:DOCKER-USER - [0:0]
|
|
88
|
+
-A DOCKER-USER -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
|
|
89
|
+
-A DOCKER-USER -m conntrack --ctstate INVALID -j DROP
|
|
90
|
+
-A DOCKER-USER -i eth0 -j ufw-user-forward
|
|
91
|
+
-A DOCKER-USER -i eth0 -j DROP
|
|
92
|
+
COMMIT
|
|
93
|
+
# END UFW AND DOCKER'
|
|
94
|
+
|
|
95
|
+
# puts "-----> Adding UFW rules for Docker"
|
|
96
|
+
# interface_name = system("ip route show | sed -e 's/^default via [0-9.]* dev \(\w\+\).*/\1/'")
|
|
97
|
+
# puts interface_name
|
|
98
|
+
|
|
99
|
+
# system("sed '/^# BEGIN UFW AND DOCKER/,/^# END UFW AND DOCKER/d' '/etc/ufw/after.rules'")
|
|
100
|
+
# system("sudo tee -a '/etc/ufw/after.rules' > /dev/null <<EOT
|
|
101
|
+
# # BEGIN UFW AND DOCKER
|
|
102
|
+
# *filter
|
|
103
|
+
# :ufw-user-forward - [0:0]
|
|
104
|
+
# :DOCKER-USER - [0:0]
|
|
105
|
+
# -A DOCKER-USER -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
|
|
106
|
+
# -A DOCKER-USER -m conntrack --ctstate INVALID -j DROP
|
|
107
|
+
# -A DOCKER-USER -i eth0 -j ufw-user-forward
|
|
108
|
+
# -A DOCKER-USER -i eth0 -j DROP
|
|
109
|
+
# COMMIT
|
|
110
|
+
# # END UFW AND DOCKER
|
|
111
|
+
# EOT")
|
|
112
|
+
# system("sudo ufw reload")
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
def remove_ufw_rules
|
|
116
|
+
puts '-----> Remove the following rules at the end of the file /etc/ufw/after.rules and reload ufw using - sudo ufw reload'
|
|
117
|
+
puts '# BEGIN UFW AND DOCKER
|
|
118
|
+
*filter
|
|
119
|
+
:ufw-user-forward - [0:0]
|
|
120
|
+
:DOCKER-USER - [0:0]
|
|
121
|
+
-A DOCKER-USER -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
|
|
122
|
+
-A DOCKER-USER -m conntrack --ctstate INVALID -j DROP
|
|
123
|
+
-A DOCKER-USER -i eth0 -j ufw-user-forward
|
|
124
|
+
-A DOCKER-USER -i eth0 -j DROP
|
|
125
|
+
COMMIT
|
|
126
|
+
# END UFW AND DOCKER'
|
|
127
|
+
|
|
128
|
+
# puts "-----> Removing UFW rules for Docker"
|
|
129
|
+
# system("sed '/^# BEGIN UFW AND DOCKER/,/^# END UFW AND DOCKER/d' '/etc/ufw/after.rules'")
|
|
130
|
+
# system("sudo ufw reload")
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
# Below methods are non ssh methods and should be executed on the server only.
|
|
134
|
+
|
|
135
|
+
def self.running?
|
|
136
|
+
if system("docker info", [:out, :err] => File::NULL)
|
|
137
|
+
true
|
|
138
|
+
else
|
|
139
|
+
puts "Error: Docker daemon is not running. Have you installed docker? Please ensure docker daemon is running and try again."
|
|
140
|
+
false
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
end
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# The main SmartMachine Engine driver
|
|
2
|
+
module SmartMachine
|
|
3
|
+
class Engine < SmartMachine::Base
|
|
4
|
+
def initialize
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def install
|
|
8
|
+
puts "-----> Installing SmartMachine Engine"
|
|
9
|
+
|
|
10
|
+
SmartMachine::User.create_htpasswd_files
|
|
11
|
+
|
|
12
|
+
ssh = SmartMachine::SSH.new
|
|
13
|
+
machine = SmartMachine::Machine.new
|
|
14
|
+
sync = SmartMachine::Sync.new
|
|
15
|
+
|
|
16
|
+
system("mkdir -p ./tmp/engine")
|
|
17
|
+
system("cp #{SmartMachine.config.root_path}/lib/smart_machine/engine/Dockerfile ./tmp/engine/Dockerfile")
|
|
18
|
+
|
|
19
|
+
gem_file_path = File.expand_path("../../cache/smartmachine-#{SmartMachine.version}.gem", SmartMachine.config.root_path)
|
|
20
|
+
system("cp #{gem_file_path} ./tmp/engine/smartmachine-#{SmartMachine.version}.gem")
|
|
21
|
+
|
|
22
|
+
sync.run only: :push
|
|
23
|
+
|
|
24
|
+
print "-----> Creating image for SmartMachine ... "
|
|
25
|
+
ssh.run "docker image build --quiet --tag #{engine_image_name} \
|
|
26
|
+
--build-arg SMARTMACHINE_MASTER_KEY=#{SmartMachine::Credentials.new.read_key} \
|
|
27
|
+
--build-arg SMARTMACHINE_VERSION=#{SmartMachine.version} \
|
|
28
|
+
--build-arg USER_NAME=`id -un` \
|
|
29
|
+
--build-arg USER_UID=`id -u` \
|
|
30
|
+
--build-arg DOCKER_GID=`getent group docker | cut -d: -f3` \
|
|
31
|
+
~/.smartmachine/tmp/engine"
|
|
32
|
+
puts "done"
|
|
33
|
+
|
|
34
|
+
print "-----> Adding SmartMachine to PATH ... "
|
|
35
|
+
ssh.run "mkdir -p ~/.smartmachine/bin && touch ~/.smartmachine/bin/smartmachine.sh"
|
|
36
|
+
ssh.run "echo '#{smartmachine_binary_template}' > ~/.smartmachine/bin/smartmachine.sh"
|
|
37
|
+
ssh.run "chmod +x ~/.smartmachine/bin/smartmachine.sh && sudo ln -sf ~/.smartmachine/bin/smartmachine.sh /usr/local/bin/smartmachine"
|
|
38
|
+
puts "done"
|
|
39
|
+
|
|
40
|
+
system("rm ./tmp/engine/Dockerfile")
|
|
41
|
+
system("rm ./tmp/engine/smartmachine-#{SmartMachine.version}.gem")
|
|
42
|
+
|
|
43
|
+
sync.run
|
|
44
|
+
|
|
45
|
+
puts "-----> SmartMachine Engine Installation Complete"
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def uninstall
|
|
49
|
+
puts "-----> Uninstalling SmartMachine Engine"
|
|
50
|
+
|
|
51
|
+
ssh = SmartMachine::SSH.new
|
|
52
|
+
|
|
53
|
+
ssh.run "sudo rm /usr/local/bin/smartmachine"
|
|
54
|
+
ssh.run "docker rmi $(docker images -q smartmachine)"
|
|
55
|
+
|
|
56
|
+
puts "-----> SmartMachine Engine Uninstallation Complete"
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def update
|
|
60
|
+
self.uninstall
|
|
61
|
+
self.install
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def smartmachine_binary_template
|
|
65
|
+
<<~BASH
|
|
66
|
+
#!/bin/bash
|
|
67
|
+
|
|
68
|
+
docker run -it --rm \
|
|
69
|
+
-v "/home/$(whoami)/.smartmachine:/home/$(whoami)/.smartmachine" \
|
|
70
|
+
-v "/var/run/docker.sock:/var/run/docker.sock" \
|
|
71
|
+
-w "/home/$(whoami)/.smartmachine" \
|
|
72
|
+
-u `id -u` \
|
|
73
|
+
--entrypoint "smartmachine" \
|
|
74
|
+
#{engine_image_name} "$@"
|
|
75
|
+
BASH
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def engine_image_name
|
|
79
|
+
"smartmachine:#{SmartMachine.version}"
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
FROM ruby:2.7.0-alpine3.11
|
|
2
|
+
LABEL maintainer="Timeboard <hello@timeboard.me>"
|
|
3
|
+
|
|
4
|
+
# User
|
|
5
|
+
# --- Fix to change gid of 999 to 99 so that addgroup is free to create a group with 999 as gid
|
|
6
|
+
ARG USER_NAME
|
|
7
|
+
ARG USER_UID
|
|
8
|
+
ARG DOCKER_GID
|
|
9
|
+
RUN sed -i "s/999/99/" /etc/group && \
|
|
10
|
+
adduser --disabled-password --gecos "" --uid "$USER_UID" "$USER_NAME" && \
|
|
11
|
+
addgroup --gid "$DOCKER_GID" "docker" && adduser "$USER_NAME" "docker"
|
|
12
|
+
|
|
13
|
+
# Essentials
|
|
14
|
+
RUN apk add --update build-base && \
|
|
15
|
+
apk add --update docker && \
|
|
16
|
+
apk add --update git && \
|
|
17
|
+
rm -rf /var/cache/apk/*
|
|
18
|
+
|
|
19
|
+
# smartmachine gem
|
|
20
|
+
ARG SMARTMACHINE_VERSION
|
|
21
|
+
COPY ./smartmachine-$SMARTMACHINE_VERSION.gem ./smartmachine-$SMARTMACHINE_VERSION.gem
|
|
22
|
+
RUN gem install --no-document smartmachine-$SMARTMACHINE_VERSION.gem && \
|
|
23
|
+
rm ./smartmachine-$SMARTMACHINE_VERSION.gem
|
|
24
|
+
|
|
25
|
+
# smartmachine master key
|
|
26
|
+
ARG SMARTMACHINE_MASTER_KEY
|
|
27
|
+
ENV SMARTMACHINE_MASTER_KEY=$SMARTMACHINE_MASTER_KEY
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
ARG SMARTMACHINE_VERSION
|
|
2
|
+
|
|
3
|
+
FROM smartmachine:$SMARTMACHINE_VERSION
|
|
4
|
+
LABEL maintainer="Timeboard <hello@timeboard.me>"
|
|
5
|
+
|
|
6
|
+
# Ruby on Rails Essentials
|
|
7
|
+
RUN apk add --update build-base && \
|
|
8
|
+
apk add --update tzdata && \
|
|
9
|
+
apk add --update nodejs && \
|
|
10
|
+
apk add --update yarn && \
|
|
11
|
+
apk add --update mariadb-dev && \
|
|
12
|
+
apk add --update imagemagick && \
|
|
13
|
+
apk add --update ffmpeg && \
|
|
14
|
+
apk add --update mupdf && \
|
|
15
|
+
apk add --update mupdf-tools && \
|
|
16
|
+
rm -rf /var/cache/apk/*
|
|
17
|
+
|
|
18
|
+
# Gems
|
|
19
|
+
RUN gem install bundler -v 2.1.4
|
|
20
|
+
|
|
21
|
+
CMD ["buildpacker", "pack"]
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module SmartMachine
|
|
4
|
+
# Returns the version of the currently loaded SmartMachine as a <tt>Gem::Version</tt>.
|
|
5
|
+
def self.gem_version
|
|
6
|
+
Gem::Version.new VERSION::STRING
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
module VERSION
|
|
10
|
+
MAJOR = 0
|
|
11
|
+
MINOR = 7
|
|
12
|
+
TINY = 0
|
|
13
|
+
PRE = nil
|
|
14
|
+
|
|
15
|
+
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# The main SmartMachine Grids
|
|
2
|
+
module SmartMachine
|
|
3
|
+
class Grids < SmartMachine::Base
|
|
4
|
+
def run(*args)
|
|
5
|
+
args.flatten!
|
|
6
|
+
|
|
7
|
+
grid_name = args.shift
|
|
8
|
+
action = args.shift
|
|
9
|
+
|
|
10
|
+
raise "invalid action on the grid" unless ['up', 'down'].include? action
|
|
11
|
+
|
|
12
|
+
Object.const_get("SmartMachine::Grids::#{grid_name.capitalize}").new.public_send(action, *args)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# The main SmartMachine Grids Elasticsearch driver
|
|
2
|
+
module SmartMachine
|
|
3
|
+
class Grids
|
|
4
|
+
class Elasticsearch < SmartMachine::Base
|
|
5
|
+
def initialize
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def install
|
|
9
|
+
puts "-----> Installing Elasticsearch"
|
|
10
|
+
|
|
11
|
+
print "-----> Creating settings for elasticsearch ... "
|
|
12
|
+
ssh = SmartMachine::SSH.new
|
|
13
|
+
ssh.run "echo 'vm.max_map_count=262144' | sudo tee /etc/sysctl.d/60-smartmachine-elasticsearch.conf && sudo sysctl --system"
|
|
14
|
+
puts "done"
|
|
15
|
+
|
|
16
|
+
puts "-----> Elasticsearch Installation Complete"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def uninstall
|
|
20
|
+
puts "-----> Uninstalling Elasticsearch"
|
|
21
|
+
|
|
22
|
+
print "-----> Removing settings for elasticsearch ... "
|
|
23
|
+
ssh = SmartMachine::SSH.new
|
|
24
|
+
# NOTE: sysctl does not reset this setting until restart of system even after sudo sysctl --system is run.
|
|
25
|
+
ssh.run "test -f /etc/sysctl.d/60-smartmachine-elasticsearch.conf && sudo rm /etc/sysctl.d/60-smartmachine-elasticsearch.conf && sudo sysctl --system"
|
|
26
|
+
puts "done"
|
|
27
|
+
|
|
28
|
+
puts "-----> Elasticsearch Uninstallation Complete"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def update
|
|
32
|
+
self.uninstall
|
|
33
|
+
self.install
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def up(*args)
|
|
37
|
+
args.flatten!
|
|
38
|
+
exposed = args.empty? ? '' : args.shift
|
|
39
|
+
|
|
40
|
+
if SmartMachine::Docker.running?
|
|
41
|
+
# Creating networks
|
|
42
|
+
unless system("docker network inspect elasticsearch-network", [:out, :err] => File::NULL)
|
|
43
|
+
print "-----> Creating network elasticsearch-network ... "
|
|
44
|
+
if system("docker network create elasticsearch-network", out: File::NULL)
|
|
45
|
+
puts "done"
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Creating & Starting containers
|
|
50
|
+
print "-----> Creating container elasticsearch ... "
|
|
51
|
+
if system("docker create \
|
|
52
|
+
--name='elasticsearch' \
|
|
53
|
+
--env discovery.type=single-node \
|
|
54
|
+
--env cluster.name=elasticsearch-cluster \
|
|
55
|
+
--env 'ES_JAVA_OPTS=-Xms512m -Xmx512m -Des.enforce.bootstrap.checks=true' \
|
|
56
|
+
--env bootstrap.memory_lock=true \
|
|
57
|
+
--ulimit memlock=-1:-1 \
|
|
58
|
+
--ulimit nofile=65535:65535 \
|
|
59
|
+
--user `id -u`:`id -g` \
|
|
60
|
+
#{"--publish='#{SmartMachine.credentials.elasticsearch[:port]}:#{SmartMachine.credentials.elasticsearch[:port]}'" if exposed == '--exposed'} \
|
|
61
|
+
--volume='#{SmartMachine.config.user_home_path}/.smartmachine/grids/elasticsearch/data:/usr/share/elasticsearch/data' \
|
|
62
|
+
--volume='#{SmartMachine.config.user_home_path}/.smartmachine/grids/elasticsearch/logs:/usr/share/elasticsearch/logs' \
|
|
63
|
+
--restart='always' \
|
|
64
|
+
--network='elasticsearch-network' \
|
|
65
|
+
elasticsearch:7.4.1", out: File::NULL)
|
|
66
|
+
|
|
67
|
+
puts "done"
|
|
68
|
+
print "-----> Starting container elasticsearch ... "
|
|
69
|
+
if system("docker start elasticsearch", out: File::NULL)
|
|
70
|
+
puts "done"
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def down
|
|
77
|
+
if SmartMachine::Docker.running?
|
|
78
|
+
# Stopping & Removing containers - in reverse order
|
|
79
|
+
print "-----> Stopping container elasticsearch ... "
|
|
80
|
+
if system("docker stop 'elasticsearch'", out: File::NULL)
|
|
81
|
+
puts "done"
|
|
82
|
+
print "-----> Removing container elasticsearch ... "
|
|
83
|
+
if system("docker rm 'elasticsearch'", out: File::NULL)
|
|
84
|
+
puts "done"
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# Removing networks
|
|
89
|
+
print "-----> Removing network elasticsearch-network ... "
|
|
90
|
+
if system("docker network rm elasticsearch-network", out: File::NULL)
|
|
91
|
+
puts "done"
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
File without changes
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# The main SmartMachine Grids Minio driver
|
|
2
|
+
module SmartMachine
|
|
3
|
+
class Grids
|
|
4
|
+
class Minio < SmartMachine::Base
|
|
5
|
+
def initialize
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def up(*args)
|
|
9
|
+
args.flatten!
|
|
10
|
+
exposed = args.empty? ? '' : args.shift
|
|
11
|
+
|
|
12
|
+
if SmartMachine::Docker.running?
|
|
13
|
+
# Creating networks
|
|
14
|
+
unless system("docker network inspect minio-network", [:out, :err] => File::NULL)
|
|
15
|
+
print "-----> Creating network minio-network ... "
|
|
16
|
+
if system("docker network create minio-network", out: File::NULL)
|
|
17
|
+
puts "done"
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Creating & Starting containers
|
|
22
|
+
print "-----> Creating container minio ... "
|
|
23
|
+
if system("docker create \
|
|
24
|
+
--name='minio' \
|
|
25
|
+
--env VIRTUAL_HOST=#{SmartMachine.credentials.minio[:name]}.#{SmartMachine.config.apps_domain} \
|
|
26
|
+
--env LETSENCRYPT_HOST=#{SmartMachine.credentials.minio[:name]}.#{SmartMachine.config.apps_domain} \
|
|
27
|
+
--env LETSENCRYPT_EMAIL=#{SmartMachine.config.sysadmin_email} \
|
|
28
|
+
--env LETSENCRYPT_TEST=false \
|
|
29
|
+
--env MINIO_ACCESS_KEY=#{SmartMachine.credentials.minio[:access_key]} \
|
|
30
|
+
--env MINIO_SECRET_KEY=#{SmartMachine.credentials.minio[:secret_key]} \
|
|
31
|
+
--env MINIO_BROWSER=#{SmartMachine.credentials.minio[:browser]} \
|
|
32
|
+
--env MINIO_WORM=#{SmartMachine.credentials.minio[:worm]} \
|
|
33
|
+
--user `id -u`:`id -g` \
|
|
34
|
+
--volume='#{SmartMachine.config.user_home_path}/.smartmachine/grids/minio/data:/data' \
|
|
35
|
+
--restart='always' \
|
|
36
|
+
--network='minio-network' \
|
|
37
|
+
minio/minio:RELEASE.2020-02-27T00-23-05Z server /data", out: File::NULL)
|
|
38
|
+
|
|
39
|
+
# The alias is necessary to support internal network requests directed to minio container using public url
|
|
40
|
+
system("docker network connect --alias #{SmartMachine.credentials.minio[:name]}.#{SmartMachine.config.apps_domain} minio-network nginx")
|
|
41
|
+
system("docker network connect nginx-network minio")
|
|
42
|
+
|
|
43
|
+
puts "done"
|
|
44
|
+
print "-----> Starting container minio ... "
|
|
45
|
+
if system("docker start minio", out: File::NULL)
|
|
46
|
+
puts "done"
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def down
|
|
53
|
+
if SmartMachine::Docker.running?
|
|
54
|
+
# Disconnecting networks
|
|
55
|
+
system("docker network disconnect nginx-network minio")
|
|
56
|
+
system("docker network disconnect minio-network nginx")
|
|
57
|
+
|
|
58
|
+
# Stopping & Removing containers - in reverse order
|
|
59
|
+
print "-----> Stopping container minio ... "
|
|
60
|
+
if system("docker stop 'minio'", out: File::NULL)
|
|
61
|
+
puts "done"
|
|
62
|
+
print "-----> Removing container minio ... "
|
|
63
|
+
if system("docker rm 'minio'", out: File::NULL)
|
|
64
|
+
puts "done"
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# Removing networks
|
|
69
|
+
print "-----> Removing network minio-network ... "
|
|
70
|
+
if system("docker network rm minio-network", out: File::NULL)
|
|
71
|
+
puts "done"
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|