superhosting 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (248) hide show
  1. checksums.yaml +8 -8
  2. data/.gitignore +1 -0
  3. data/.travis.yml +13 -0
  4. data/Gemfile.lock +43 -7
  5. data/LICENSE.txt +4 -1
  6. data/Vagrantfile +6 -3
  7. data/bin/sx +6 -2
  8. data/bootstrap/etc/sx/default_model +1 -0
  9. data/bootstrap/etc/sx/models/base/container/docker/command +1 -0
  10. data/bootstrap/etc/sx/models/base/container/docker/user.erb +1 -0
  11. data/bootstrap/etc/sx/models/base/container/docker/volume.erb +2 -0
  12. data/bootstrap/etc/sx/models/bitrix_l/inherit +3 -0
  13. data/bootstrap/etc/sx/models/bitrix_m/inherit +3 -0
  14. data/bootstrap/etc/sx/models/bitrix_xl/inherit +3 -0
  15. data/bootstrap/etc/sx/models/common_bitrix/abstract +1 -0
  16. data/bootstrap/etc/sx/models/common_bitrix/container/mux +1 -0
  17. data/bootstrap/etc/sx/models/common_bitrix/inherit +1 -0
  18. data/bootstrap/etc/sx/models/common_bitrix/site/php/admin_value +2 -0
  19. data/bootstrap/etc/sx/models/common_bitrix/site/php/flag +1 -0
  20. data/bootstrap/etc/sx/models/common_bitrix/site/php/value +6 -0
  21. data/bootstrap/etc/sx/models/common_fcgi/abstract +1 -0
  22. data/bootstrap/etc/sx/models/common_fcgi/container/config.rb +6 -0
  23. data/bootstrap/etc/sx/models/common_fcgi/container/config_templates/supervisord.conf.erb +16 -0
  24. data/bootstrap/etc/sx/models/common_fcgi/container/docker/image +1 -0
  25. data/bootstrap/etc/sx/models/common_fcgi/container/docker/user.erb +1 -0
  26. data/bootstrap/etc/sx/models/common_fcgi/container/system_users +1 -0
  27. data/bootstrap/etc/sx/models/common_fcgi/site/config.rb +4 -0
  28. data/bootstrap/etc/sx/models/common_fcgi/site/config_templates/nginx_vhost.erb +21 -0
  29. data/bootstrap/etc/sx/models/common_joomla/abstract +1 -0
  30. data/bootstrap/etc/sx/models/common_joomla/site/php/flag +1 -0
  31. data/bootstrap/etc/sx/models/common_joomla/site/php/value +2 -0
  32. data/bootstrap/etc/sx/models/common_joomla_v2/abstract +1 -0
  33. data/bootstrap/etc/sx/models/common_joomla_v2/container/mux +1 -0
  34. data/bootstrap/etc/sx/models/common_joomla_v2/inherit +2 -0
  35. data/bootstrap/etc/sx/models/common_joomla_v3/abstract +1 -0
  36. data/bootstrap/etc/sx/models/common_joomla_v3/container/mux +1 -0
  37. data/bootstrap/etc/sx/models/common_joomla_v3/inherit +2 -0
  38. data/bootstrap/etc/sx/models/common_l/abstract +1 -0
  39. data/bootstrap/etc/sx/models/common_l/container/docker/blkio_weight +1 -0
  40. data/bootstrap/etc/sx/models/common_l/container/docker/cpu_period +1 -0
  41. data/bootstrap/etc/sx/models/common_l/container/docker/cpu_quota +1 -0
  42. data/bootstrap/etc/sx/models/common_l/container/docker/cpu_shares +1 -0
  43. data/bootstrap/etc/sx/models/common_l/container/docker/memory +1 -0
  44. data/bootstrap/etc/sx/models/common_l/container/docker/memory_swap +1 -0
  45. data/bootstrap/etc/sx/models/common_m/abstract +1 -0
  46. data/bootstrap/etc/sx/models/common_m/container/docker/blkio_weight +1 -0
  47. data/bootstrap/etc/sx/models/common_m/container/docker/cpu_period +1 -0
  48. data/bootstrap/etc/sx/models/common_m/container/docker/cpu_quota +1 -0
  49. data/bootstrap/etc/sx/models/common_m/container/docker/cpu_shares +1 -0
  50. data/bootstrap/etc/sx/models/common_m/container/docker/memory +1 -0
  51. data/bootstrap/etc/sx/models/common_m/container/docker/memory_swap +1 -0
  52. data/bootstrap/etc/sx/models/common_mail/abstract +1 -0
  53. data/bootstrap/etc/sx/models/common_mail/container/config.rb +12 -0
  54. data/bootstrap/etc/sx/models/common_mail/container/config_templates/postfwd_rules.erb +12 -0
  55. data/bootstrap/etc/sx/models/common_mail/container/config_templates/ssmtp.conf.erb +6 -0
  56. data/bootstrap/etc/sx/models/common_mail/container/mail/daily_limit +1 -0
  57. data/bootstrap/etc/sx/models/common_mail/container/mail/enabled +1 -0
  58. data/bootstrap/etc/sx/models/common_mail/container/mail/hourly_limit +1 -0
  59. data/bootstrap/etc/sx/models/common_php_l/abstract +1 -0
  60. data/bootstrap/etc/sx/models/common_php_l/container/mail/daily_limit +1 -0
  61. data/bootstrap/etc/sx/models/common_php_l/container/mail/hourly_limit +1 -0
  62. data/bootstrap/etc/sx/models/common_php_l/inherit +1 -0
  63. data/bootstrap/etc/sx/models/common_php_l/site/php/pm +1 -0
  64. data/bootstrap/etc/sx/models/common_php_l/site/php/pm_max_children +1 -0
  65. data/bootstrap/etc/sx/models/common_php_l/site/php/pm_max_spare_servers +1 -0
  66. data/bootstrap/etc/sx/models/common_php_l/site/php/pm_min_spare_servers +1 -0
  67. data/bootstrap/etc/sx/models/common_php_l/site/php/pm_start_servers +1 -0
  68. data/bootstrap/etc/sx/models/common_php_m/abstract +1 -0
  69. data/bootstrap/etc/sx/models/common_php_m/inherit +1 -0
  70. data/bootstrap/etc/sx/models/common_php_m/site/php/pm_max_children +1 -0
  71. data/bootstrap/etc/sx/models/common_php_s/abstract +1 -0
  72. data/bootstrap/etc/sx/models/common_php_s/inherit +1 -0
  73. data/bootstrap/etc/sx/models/common_php_xl/abstract +1 -0
  74. data/bootstrap/etc/sx/models/common_php_xl/container/mail/daily_limit +1 -0
  75. data/bootstrap/etc/sx/models/common_php_xl/container/mail/hourly_limit +1 -0
  76. data/bootstrap/etc/sx/models/common_php_xl/inherit +1 -0
  77. data/bootstrap/etc/sx/models/common_php_xl/site/php/pm +1 -0
  78. data/bootstrap/etc/sx/models/common_php_xl/site/php/pm_max_children +1 -0
  79. data/bootstrap/etc/sx/models/common_php_xl/site/php/pm_max_spare_servers +1 -0
  80. data/bootstrap/etc/sx/models/common_php_xl/site/php/pm_min_spare_servers +1 -0
  81. data/bootstrap/etc/sx/models/common_php_xl/site/php/pm_start_servers +1 -0
  82. data/bootstrap/etc/sx/models/common_php_xs/abstract +1 -0
  83. data/bootstrap/etc/sx/models/common_php_xs/container/mail/daily_limit +1 -0
  84. data/bootstrap/etc/sx/models/common_php_xs/container/mail/hourly_limit +1 -0
  85. data/bootstrap/etc/sx/models/common_php_xs/inherit +1 -0
  86. data/bootstrap/etc/sx/models/common_php_xs/site/php/pm_max_children +1 -0
  87. data/bootstrap/etc/sx/models/common_s/abstract +1 -0
  88. data/bootstrap/etc/sx/models/common_s/container/docker/blkio_weight +1 -0
  89. data/bootstrap/etc/sx/models/common_s/container/docker/cpu_period +1 -0
  90. data/bootstrap/etc/sx/models/common_s/container/docker/cpu_quota +1 -0
  91. data/bootstrap/etc/sx/models/common_s/container/docker/cpu_shares +1 -0
  92. data/bootstrap/etc/sx/models/common_s/container/docker/memory +1 -0
  93. data/bootstrap/etc/sx/models/common_s/container/docker/memory_swap +1 -0
  94. data/bootstrap/etc/sx/models/common_symfony/abstract +1 -0
  95. data/bootstrap/etc/sx/models/common_symfony/container/mux +1 -0
  96. data/bootstrap/etc/sx/models/common_symfony/container/system_users +1 -0
  97. data/bootstrap/etc/sx/models/common_symfony/inherit +1 -0
  98. data/bootstrap/etc/sx/models/common_symfony/site/php/flag +3 -0
  99. data/bootstrap/etc/sx/models/common_symfony/site/php/user +1 -0
  100. data/bootstrap/etc/sx/models/common_symfony/site/use_apache +1 -0
  101. data/bootstrap/etc/sx/models/common_xl/abstract +1 -0
  102. data/bootstrap/etc/sx/models/common_xl/container/docker/blkio_weight +1 -0
  103. data/bootstrap/etc/sx/models/common_xl/container/docker/cpu_shares +1 -0
  104. data/bootstrap/etc/sx/models/common_xl/container/docker/memory +1 -0
  105. data/bootstrap/etc/sx/models/common_xl/container/docker/memory_swap +1 -0
  106. data/bootstrap/etc/sx/models/common_xs/abstract +1 -0
  107. data/bootstrap/etc/sx/models/common_xs/container/docker/blkio_weight +1 -0
  108. data/bootstrap/etc/sx/models/common_xs/container/docker/cpu_period +1 -0
  109. data/bootstrap/etc/sx/models/common_xs/container/docker/cpu_quota +1 -0
  110. data/bootstrap/etc/sx/models/common_xs/container/docker/cpu_shares +1 -0
  111. data/bootstrap/etc/sx/models/common_xs/container/docker/memory +1 -0
  112. data/bootstrap/etc/sx/models/common_xs/container/docker/memory_swap +1 -0
  113. data/bootstrap/etc/sx/models/fcgi_l/inherit +3 -0
  114. data/bootstrap/etc/sx/models/fcgi_m/inherit +3 -0
  115. data/bootstrap/etc/sx/models/fcgi_s/inherit +3 -0
  116. data/bootstrap/etc/sx/models/fcgi_xl/inherit +3 -0
  117. data/bootstrap/etc/sx/models/joomla_v2_l/inherit +3 -0
  118. data/bootstrap/etc/sx/models/joomla_v2_m/inherit +3 -0
  119. data/bootstrap/etc/sx/models/joomla_v2_s/inherit +3 -0
  120. data/bootstrap/etc/sx/models/joomla_v2_xs/inherit +3 -0
  121. data/bootstrap/etc/sx/models/joomla_v3_l/inherit +3 -0
  122. data/bootstrap/etc/sx/models/joomla_v3_m/inherit +3 -0
  123. data/bootstrap/etc/sx/models/joomla_v3_s/inherit +3 -0
  124. data/bootstrap/etc/sx/models/joomla_v3_xs/inherit +3 -0
  125. data/bootstrap/etc/sx/models/symfony_l/inherit +3 -0
  126. data/bootstrap/etc/sx/models/symfony_m/inherit +3 -0
  127. data/bootstrap/etc/sx/models/symfony_xl/inherit +3 -0
  128. data/bootstrap/etc/sx/models/test/container/config.rb +4 -0
  129. data/bootstrap/etc/sx/models/test/container/config_templates/supervisord.conf.erb +16 -0
  130. data/bootstrap/etc/sx/models/test/container/docker/blkio_weight +1 -0
  131. data/bootstrap/etc/sx/models/test/container/docker/command +1 -0
  132. data/bootstrap/etc/sx/models/test/container/docker/cpu_period +1 -0
  133. data/bootstrap/etc/sx/models/test/container/docker/cpu_quota +1 -0
  134. data/bootstrap/etc/sx/models/test/container/docker/cpu_shares +1 -0
  135. data/bootstrap/etc/sx/models/test/container/docker/image +1 -0
  136. data/bootstrap/etc/sx/models/test/container/docker/memory +1 -0
  137. data/bootstrap/etc/sx/models/test/container/docker/memory_swap +1 -0
  138. data/bootstrap/etc/sx/models/test/container/docker/user.erb +1 -0
  139. data/bootstrap/etc/sx/models/test/container/docker/volume.erb +2 -0
  140. data/bootstrap/etc/sx/models/test/container/system_users +1 -0
  141. data/bootstrap/etc/sx/models/test/site/config.rb +4 -0
  142. data/bootstrap/etc/sx/models/test/site/config_templates/nginx_vhost.erb +21 -0
  143. data/bootstrap/etc/sx/models/test_with_mux/container/mux +1 -0
  144. data/bootstrap/etc/sx/models/test_with_mux/inherit +1 -0
  145. data/bootstrap/etc/sx/muxs/base/docker/command +1 -0
  146. data/bootstrap/etc/sx/muxs/php-5.3/container/docker/image +1 -0
  147. data/bootstrap/etc/sx/muxs/php-5.3/docker/image +1 -0
  148. data/bootstrap/etc/sx/muxs/php-5.3/inherit +2 -0
  149. data/bootstrap/etc/sx/muxs/php-5.5/container/docker/image +1 -0
  150. data/bootstrap/etc/sx/muxs/php-5.5/docker/image +1 -0
  151. data/bootstrap/etc/sx/muxs/php-5.5/inherit +2 -0
  152. data/bootstrap/etc/sx/muxs/php-5.6/container/docker/image +1 -0
  153. data/bootstrap/etc/sx/muxs/php-5.6/docker/image +1 -0
  154. data/bootstrap/etc/sx/muxs/php-5.6/inherit +2 -0
  155. data/bootstrap/etc/sx/muxs/php/abstract +1 -0
  156. data/bootstrap/etc/sx/muxs/php/docker/pid +1 -0
  157. data/bootstrap/etc/sx/muxs/php/docker/privileged +1 -0
  158. data/bootstrap/etc/sx/muxs/php/docker/volume +3 -0
  159. data/bootstrap/etc/sx/muxs/php/site/config.rb +10 -0
  160. data/bootstrap/etc/sx/muxs/php/site/config_templates/apache_vhost.erb +26 -0
  161. data/bootstrap/etc/sx/muxs/php/site/config_templates/nginx_vhost.erb +39 -0
  162. data/bootstrap/etc/sx/muxs/php/site/config_templates/php_fpm_pool.erb +22 -0
  163. data/bootstrap/etc/sx/muxs/php/site/php/pm +1 -0
  164. data/bootstrap/etc/sx/muxs/php/site/php/pm_max_children +1 -0
  165. data/bootstrap/etc/sx/muxs/php/site/use_apache +1 -0
  166. data/bootstrap/etc/sx/muxs/test/container/docker/image +1 -0
  167. data/bootstrap/etc/sx/muxs/test/docker/command +1 -0
  168. data/bootstrap/etc/sx/muxs/test/docker/image +1 -0
  169. data/bootstrap/etc/sx/muxs/test/inherit +1 -0
  170. data/bootstrap/etc/sx/password_strength +1 -0
  171. data/bootstrap/etc/sx/smtp_hostname +1 -0
  172. data/dockerfile/almost_base +19 -0
  173. data/dockerfile/base +18 -0
  174. data/dockerfile/mux +6 -0
  175. data/lib/superhosting.rb +39 -5
  176. data/lib/superhosting/base.rb +15 -21
  177. data/lib/superhosting/cli/base.rb +56 -40
  178. data/lib/superhosting/cli/cmd/admin_add.rb +5 -0
  179. data/lib/superhosting/cli/cmd/admin_container_list.rb +4 -0
  180. data/lib/superhosting/cli/cmd/admin_list.rb +11 -0
  181. data/lib/superhosting/cli/cmd/admin_passwd.rb +4 -0
  182. data/lib/superhosting/cli/cmd/container_admin_list.rb +4 -0
  183. data/lib/superhosting/cli/cmd/container_inspect.rb +11 -0
  184. data/lib/superhosting/cli/cmd/container_list.rb +18 -0
  185. data/lib/superhosting/cli/cmd/container_reconfigure.rb +11 -0
  186. data/lib/superhosting/cli/cmd/container_rename.rb +16 -0
  187. data/lib/superhosting/cli/cmd/model_list.rb +11 -0
  188. data/lib/superhosting/cli/cmd/{container_reconfig.rb → model_reconfigure.rb} +1 -1
  189. data/lib/superhosting/cli/cmd/model_tree.rb +30 -0
  190. data/lib/superhosting/cli/cmd/model_update.rb +11 -0
  191. data/lib/superhosting/cli/cmd/mux_reconfigure.rb +11 -0
  192. data/lib/superhosting/cli/cmd/repair.rb +8 -0
  193. data/lib/superhosting/cli/cmd/site_container.rb +15 -0
  194. data/lib/superhosting/cli/cmd/site_inspect.rb +11 -0
  195. data/lib/superhosting/cli/cmd/site_list.rb +35 -0
  196. data/lib/superhosting/cli/cmd/site_name.rb +15 -0
  197. data/lib/superhosting/cli/cmd/site_reconfigure.rb +11 -0
  198. data/lib/superhosting/cli/cmd/site_rename.rb +4 -0
  199. data/lib/superhosting/cli/cmd/user_add.rb +11 -5
  200. data/lib/superhosting/cli/cmd/user_change.rb +12 -6
  201. data/lib/superhosting/cli/cmd/user_list.rb +7 -0
  202. data/lib/superhosting/cli/cmd/user_passwd.rb +9 -0
  203. data/lib/superhosting/composite_mapper.rb +12 -0
  204. data/lib/superhosting/composite_mapper/base.rb +17 -0
  205. data/lib/superhosting/composite_mapper/container.rb +9 -0
  206. data/lib/superhosting/composite_mapper/site.rb +13 -0
  207. data/lib/superhosting/config/net_status.yml +122 -0
  208. data/lib/superhosting/config_executor.rb +12 -0
  209. data/lib/superhosting/{script_executor → config_executor}/base.rb +6 -5
  210. data/lib/superhosting/config_executor/container.rb +69 -0
  211. data/lib/superhosting/config_executor/site.rb +18 -0
  212. data/lib/superhosting/controller/admin.rb +84 -4
  213. data/lib/superhosting/controller/admin/container.rb +62 -2
  214. data/lib/superhosting/controller/base.rb +18 -0
  215. data/lib/superhosting/controller/container.rb +185 -122
  216. data/lib/superhosting/controller/container/admin.rb +25 -3
  217. data/lib/superhosting/controller/container/states.rb +296 -0
  218. data/lib/superhosting/controller/model.rb +62 -0
  219. data/lib/superhosting/controller/mux.rb +88 -0
  220. data/lib/superhosting/controller/mysql.rb +2 -2
  221. data/lib/superhosting/controller/site.rb +217 -72
  222. data/lib/superhosting/controller/site/alias.rb +32 -6
  223. data/lib/superhosting/controller/site/states.rb +41 -0
  224. data/lib/superhosting/controller/user.rb +233 -4
  225. data/lib/superhosting/docker_api.rb +170 -6
  226. data/lib/superhosting/helper/cmd.rb +40 -0
  227. data/lib/superhosting/helper/config.rb +80 -0
  228. data/lib/superhosting/helper/file.rb +56 -0
  229. data/lib/superhosting/helper/i18n.rb +13 -0
  230. data/lib/superhosting/helper/logger.rb +136 -0
  231. data/lib/superhosting/helper/states.rb +69 -0
  232. data/lib/superhosting/helpers.rb +5 -21
  233. data/lib/superhosting/mapper_inheritance/base.rb +16 -0
  234. data/lib/superhosting/mapper_inheritance/model.rb +96 -0
  235. data/lib/superhosting/mapper_inheritance/mux.rb +49 -0
  236. data/lib/superhosting/patches/path_mapper/dir_node.rb +23 -0
  237. data/lib/superhosting/patches/path_mapper/file_node.rb +47 -0
  238. data/lib/superhosting/patches/path_mapper/null_node.rb +35 -0
  239. data/lib/superhosting/patches/string/punycode.rb +21 -0
  240. data/lib/superhosting/version.rb +1 -1
  241. data/provision/bootstrap.sh +11 -0
  242. data/provision/docker.sh +25 -0
  243. data/provision/pam_docker.sh +5 -0
  244. data/{bootstrap.sh → provision/vagrant.sh} +5 -8
  245. data/superhosting.gemspec +14 -3
  246. metadata +368 -12
  247. data/lib/superhosting/script_executor/container.rb +0 -36
  248. data/lib/superhosting/script_executor/site.rb +0 -13
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- N2ZhNTc2Yjg3MjdlM2M5ZTgzYzNiYWYwMmMyNDA5MTZjMDQ4NzQzZA==
4
+ ZGMyNGQ5ODc3NTdhMGFjMGM4MzFjYjA2YjJiNGRmZjFlODg0NzBiNg==
5
5
  data.tar.gz: !binary |-
6
- ZDMwZmM4ZTQ1NzhiMWRmNTM2Y2I3MGQ5NjZjNWJkZjM0Yjk3OTA1NA==
6
+ ZjQwNDM5NzRjOWQzMTY2OGJiNGE2MWVkODI5NzlhOTJjMGYyYzg2OA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MGUxMWE4ODlkMjJkZDFmNjU3YmVmZjJmZWJkMzNhZmU1MTNhYTY3ZDY0ZDdj
10
- MjEyNmM1ZTgxOGNmYWZhMzY3YzkxODlkMTkzYjVjMDUzZWExMjUyZTdiYzI5
11
- MTdjOTY0NzIwMGY0MzNiZDE2OTY3ZDA5MmM3OTBlMmE5ZjQ2ZjU=
9
+ MWM1NGU5N2NlNWViNzEyZmNkZTQ0YTNlNDA2YTg4MTkxNGYwZDFlNTcxYWUy
10
+ NDI5NjIzODIzNDI1ODFmMGZiOGQxYTUxZGIwNGJkYzc0MjY5Y2YwZjRiNDMw
11
+ MjU1YzI2NWM4MTJhZDFjODQxYTQ1MDExYjg2NGQ3Mzk3MzA2NDM=
12
12
  data.tar.gz: !binary |-
13
- MTdmNDg1NDNiY2RjYjYwOTQzNjQ2N2FiNDk5YzE2OTUyN2NmYmE2MGM1NGNm
14
- ZWJlNzNlODAwNjM2YTQxN2UxYmUwZWZjYTE3N2M1N2E4OTY5YzA0ZjhhMWYy
15
- N2ZlNmM2ODM5ZGNiNzRjMWFhNTliZjZjNGM3YzAzYjc5OTNlNjU=
13
+ YWVlZGVlODE1ZjZjNjZkNjNkYTA2MTAxYTFkOTE0ZDk3Y2MyY2M5YjlkNzcy
14
+ NDA2Nzk1MzJiMzQ4OTMzZmZkZjljNDk0ZTgwN2Y0ZWQwY2Y0OTY1ZWZmZGMy
15
+ NDgyYTAxYjg4NGQ5NjczNTEwYjg4ZGQxMjdhNjQ5ZjE4ZTljZGQ=
data/.gitignore CHANGED
@@ -8,3 +8,4 @@
8
8
  /tmp/
9
9
  .idea
10
10
  /.vagrant
11
+ .tags
@@ -1,6 +1,19 @@
1
+ dist: trusty
2
+ sudo: required
3
+ cache: apt
1
4
  language: ruby
2
5
  rvm:
3
6
  - 2.2.1
7
+ services:
8
+ - docker
9
+
10
+ before_script:
11
+ - sudo -s source provision/docker.sh
12
+ - sudo -s source provision/pam_docker.sh
13
+ - sudo -s source provision/bootstrap.sh
14
+ script:
15
+ - sudo -E su --preserve-environment -lc 'bundle exec rake spec'
16
+
4
17
  deploy:
5
18
  provider: rubygems
6
19
  api_key:
@@ -1,38 +1,58 @@
1
1
  GIT
2
2
  remote: https://github.com/flant/net_status.git
3
- revision: 50e9cceac16a288f9ffa396c070b2bbfe5f9d01d
3
+ revision: 5a91caf2daaa74985699ede3bc5a9f8ac60a71d8
4
4
  specs:
5
5
  net_status (0.0.2)
6
+ i18n (~> 0.7)
6
7
 
7
8
  GIT
8
9
  remote: https://github.com/flant/path_mapper.git
9
- revision: 03d57883e9db7eeb46ef361b3c54002f86b78cd6
10
+ revision: c307e19264f814041d6f00b0732c51d11708791a
10
11
  specs:
11
12
  path_mapper (0.0.2)
13
+ diffy (~> 3.1)
12
14
 
13
15
  PATH
14
16
  remote: .
15
17
  specs:
16
- superhosting (0.0.1)
18
+ superhosting (0.0.2)
19
+ activesupport (~> 4.2, >= 4.2.5.2)
20
+ highline (~> 1.7, >= 1.7.8)
21
+ i18n (~> 0.7)
17
22
  mixlib-cli (>= 1.5.0, < 2.0)
18
23
  mixlib-shellout (>= 2.2.6, < 3.0)
19
24
  net_status (>= 0.0.1, < 1.0)
20
25
  path_mapper (>= 0.0.1, < 1.0)
26
+ polling (~> 0.1.5)
27
+ punycode4r (~> 0.2)
28
+ strong_password (~> 0.0.5)
29
+ unicode (~> 0.4)
30
+ unix-crypt (~> 1.3)
21
31
 
22
32
  GEM
23
33
  remote: https://rubygems.org/
24
34
  specs:
35
+ activesupport (4.2.6)
36
+ i18n (~> 0.7)
37
+ json (~> 1.7, >= 1.7.7)
38
+ minitest (~> 5.1)
39
+ thread_safe (~> 0.3, >= 0.3.4)
40
+ tzinfo (~> 1.1)
25
41
  addressable (2.4.0)
26
42
  backports (3.6.8)
27
43
  binding_of_caller (0.7.2)
28
44
  debug_inspector (>= 0.0.1)
29
- byebug (8.2.2)
45
+ byebug (8.2.4)
46
+ codeclimate-test-reporter (0.5.0)
47
+ simplecov (>= 0.7.1, < 1.0.0)
30
48
  coderay (1.1.1)
31
49
  debug_inspector (0.0.2)
32
50
  diff-lcs (1.2.5)
51
+ diffy (3.1.0)
52
+ docile (1.1.5)
33
53
  ethon (0.8.1)
34
54
  ffi (>= 1.3.0)
35
- excon (0.47.0)
55
+ excon (0.49.0)
36
56
  faraday (0.9.2)
37
57
  multipart-post (>= 1.2, < 3)
38
58
  faraday_middleware (0.10.0)
@@ -46,16 +66,19 @@ GEM
46
66
  net-http-persistent (>= 2.7)
47
67
  net-http-pipeline
48
68
  highline (1.7.8)
69
+ i18n (0.7.0)
49
70
  json (1.8.3)
50
71
  launchy (2.4.3)
51
72
  addressable (~> 2.3)
52
73
  method_source (0.8.2)
74
+ minitest (5.8.4)
53
75
  mixlib-cli (1.5.0)
54
76
  mixlib-shellout (2.2.6)
55
77
  multi_json (1.11.2)
56
78
  multipart-post (2.0.0)
57
79
  net-http-persistent (2.9.4)
58
80
  net-http-pipeline (1.0.1)
81
+ polling (0.1.5)
59
82
  pry (0.10.3)
60
83
  coderay (~> 1.1.0)
61
84
  method_source (~> 0.8.1)
@@ -66,6 +89,7 @@ GEM
66
89
  pry-stack_explorer (0.4.9.2)
67
90
  binding_of_caller (>= 0.7)
68
91
  pry (>= 0.9.11)
92
+ punycode4r (0.2.0)
69
93
  pusher-client (0.6.2)
70
94
  json
71
95
  websocket (~> 1.0)
@@ -74,7 +98,7 @@ GEM
74
98
  rspec-core (~> 3.4.0)
75
99
  rspec-expectations (~> 3.4.0)
76
100
  rspec-mocks (~> 3.4.0)
77
- rspec-core (3.4.3)
101
+ rspec-core (3.4.4)
78
102
  rspec-support (~> 3.4.0)
79
103
  rspec-expectations (3.4.0)
80
104
  diff-lcs (>= 1.2.0, < 2.0)
@@ -83,7 +107,14 @@ GEM
83
107
  diff-lcs (>= 1.2.0, < 2.0)
84
108
  rspec-support (~> 3.4.0)
85
109
  rspec-support (3.4.1)
110
+ simplecov (0.11.2)
111
+ docile (~> 1.1.0)
112
+ json (~> 1.8)
113
+ simplecov-html (~> 0.10.0)
114
+ simplecov-html (0.10.0)
86
115
  slop (3.6.0)
116
+ strong_password (0.0.5)
117
+ thread_safe (0.3.5)
87
118
  travis (1.8.2)
88
119
  backports
89
120
  faraday (~> 0.9)
@@ -95,13 +126,18 @@ GEM
95
126
  typhoeus (~> 0.6, >= 0.6.8)
96
127
  typhoeus (0.8.0)
97
128
  ethon (>= 0.8.0)
98
- websocket (1.2.2)
129
+ tzinfo (1.2.2)
130
+ thread_safe (~> 0.1)
131
+ unicode (0.4.4.2)
132
+ unix-crypt (1.3.0)
133
+ websocket (1.2.3)
99
134
 
100
135
  PLATFORMS
101
136
  ruby
102
137
 
103
138
  DEPENDENCIES
104
139
  bundler (~> 1.7)
140
+ codeclimate-test-reporter (>= 0.5.0, < 1.0)
105
141
  excon (>= 0.45.4, < 1.0)
106
142
  net_status!
107
143
  path_mapper!
@@ -1,4 +1,7 @@
1
- Copyright (c) 2016 Alexey Igrychev
1
+ Copyright (c) 2016 Dmitry Stolyarov <dmitry.stolyarov@flant.com>
2
+ Copyright (c) 2016 Alexey Igrychev <alexey.igrychev@flant.com>
3
+ Copyright (c) 2016 Timofey Kirillov <timofey.kirillov@flant.com>
4
+ Copyright (c) 2016 Flant CJSC
2
5
 
3
6
  MIT License
4
7
 
@@ -2,9 +2,12 @@
2
2
  # vi: set ft=ruby :
3
3
  # vi: set sts=2 ts=2 sw=2 :
4
4
 
5
- VAGRANTFILE_API_VERSION = "2"
5
+ VAGRANTFILE_API_VERSION = '2'
6
6
 
7
7
  Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
8
- config.vm.box = "ubuntu/trusty64"
9
- config.vm.provision :shell, path: "bootstrap.sh"
8
+ config.vm.box = 'ubuntu/trusty64'
9
+ config.vm.provision :shell, path: 'provision/vagrant.sh'
10
+ config.vm.provision :shell, path: 'provision/docker.sh', args: '/vagrant'
11
+ config.vm.provision :shell, path: 'provision/pam_docker.sh'
12
+ config.vm.provision :shell, path: 'provision/bootstrap.sh', args: '/vagrant'
10
13
  end
data/bin/sx CHANGED
@@ -4,7 +4,11 @@ require 'superhosting'
4
4
 
5
5
  begin
6
6
  Superhosting::Cli::Base.start(ARGV)
7
- rescue Superhosting::Cli::Error::Base => e
8
- $stderr.puts([e.net_status[:error], e.net_status[:message]].compact.join(': '))
7
+ rescue NetStatus::Exception => e
8
+ net_status = e.net_status.net_status_normalize
9
+ $stderr.puts(net_status[:message] || [net_status[:error], net_status[:code]].compact.join(": "))
10
+ exit 1
11
+ rescue Interrupt => e
12
+ $stderr.puts('Interrupted')
9
13
  exit 1
10
14
  end
@@ -0,0 +1 @@
1
+ fcgi_m
@@ -0,0 +1 @@
1
+ /bin/bash -lec 'while true ; do date ; sleep 1; done'
@@ -0,0 +1 @@
1
+ <%= container.name %>:<%= container.name %>
@@ -0,0 +1,2 @@
1
+ <%= container.config.path %>/:/.config:ro
2
+ <%= container.lib.web.path %>:<%= container.web.path %>
@@ -0,0 +1,3 @@
1
+ base
2
+ common_bitrix
3
+ common_php_l
@@ -0,0 +1,3 @@
1
+ base
2
+ common_bitrix
3
+ common_php_m
@@ -0,0 +1,3 @@
1
+ base
2
+ common_bitrix
3
+ common_php_xl
@@ -0,0 +1,2 @@
1
+ mbstring.func_overload = 2
2
+ realpath_cache_size = 4096k
@@ -0,0 +1 @@
1
+ display_errors = On
@@ -0,0 +1,6 @@
1
+ mbstring.internal_encoding = UTF-8
2
+ post_max_size = 256M
3
+ upload_max_filesize = 256M
4
+ max_file_uploads = 30
5
+ default_socket_timeout = 120
6
+ date.timezone = Europe/Moscow
@@ -0,0 +1,6 @@
1
+ config "#{container.config.path}/supervisor/supervisord.conf"
2
+
3
+ mkdir "#{container.web.path}/supervisor"
4
+ mkdir "#{container.web.path}/logs/supervisor"
5
+
6
+ on_reconfig :container_restart
@@ -0,0 +1,16 @@
1
+ [unix_http_server]
2
+ file=/web/<%= container.name %>/supervisor.sock
3
+ chmod=0770
4
+
5
+ [supervisord]
6
+ logfile=/web/<%= container.name %>/logs/supervisord.log
7
+ childlogdir=/web/<%= container.name %>/supervisor
8
+
9
+ [rpcinterface:supervisor]
10
+ supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
11
+
12
+ [supervisorctl]
13
+ serverurl=unix:///web/<%= container.name %>/supervisor.sock
14
+
15
+ [include]
16
+ files = /etc/supervisor/conf.d/*.conf /web/<%= container.name %>/supervisor/*.conf
@@ -0,0 +1 @@
1
+ <%= container.name %>_fcgi
@@ -0,0 +1,4 @@
1
+ conf_name = "#{container.name}-#{site.name}.conf"
2
+
3
+ config "/etc/nginx/sites/#{conf_name}", source: "nginx_vhost"
4
+ on_reconfig "nginx -t && service nginx reload"
@@ -0,0 +1,21 @@
1
+ server {
2
+ listen 0.0.0.0:80;
3
+
4
+ server_name <%= ([site.name] + site.aliases).compact.map(&:punycode).join ' ' %>;
5
+ set $sx_container "<%= container.name %>";
6
+ access_log /web/<%= container.name %>/logs/<%= site.name %>_access_nginx.log main;
7
+ error_log /web/<%= container.name %>/logs/<%= site.name %>_error_nginx.log error;
8
+
9
+ location ~* ^\/.+\.(jpg|jpeg|gif|png|svg|ico|css|zip|tgz|gz|rar|bz2|pdf|txt|tar|wav|bmp|rtf|js|flv|swf|html|htm|ttf|eot|woff)$ {
10
+ root <%= site.web.path.join(site.document_root) %>/;
11
+ try_files $uri @backend;
12
+ }
13
+
14
+ location / {
15
+ fastcgi_pass unix:<%= site.web.path %>.sock;
16
+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
17
+ include fastcgi_params;
18
+ }
19
+
20
+ include /etc/nginx/server.conf.d/*.conf;
21
+ }
@@ -0,0 +1 @@
1
+ display_errors = On
@@ -0,0 +1,2 @@
1
+ post_max_size = 16M
2
+ upload_max_filesize = 16M
@@ -0,0 +1,2 @@
1
+ common_joomla
2
+ common_mail
@@ -0,0 +1,2 @@
1
+ common_joomla
2
+ common_mail
@@ -0,0 +1,12 @@
1
+ if container.mail.enabled?
2
+ container.mail.password.safe_put!(['a'..'z', 'A'..'Z', 0..9].map(&:to_a).flatten.sample(30).join)
3
+
4
+ config "#{container.config.path}/ssmtp/ssmtp.conf"
5
+ config "/etc/postfix/postfwd.cf.d/#{container.name}.cf", source: 'postfwd_rules'
6
+
7
+ on_reconfig "echo '#{container.mail.password}' | /usr/sbin/saslpasswd2 -u #{etc.smtp_hostname} -a smtpauth #{container.name} -p"
8
+ else
9
+ on_reconfig "/usr/sbin/saslpasswd2 -u #{etc.smtp_hostname} -a smtpauth #{container.name} -d"
10
+ end
11
+
12
+ # TODO: on_reconfig 'cat $(ls -1 /etc/postfix/postfwd.cf.d/ | sort) > /etc/postfix/postfwd.cf && service postfwd reload'
@@ -0,0 +1,12 @@
1
+ id=<%= %>_0001
2
+ sasl_username=<%= "#{container.name}@#{etc.smtp_hostname}" %>
3
+ action=rate(sasl_username/<%= container.mail.limit_hourly %>/3600/REJECT only <%= container.mail.limit_hourly %> messages per hour for $$sasl_username)
4
+ id=<%= %>_0002
5
+ sasl_username=<%= "#{container.name}@#{etc.smtp_hostname}" %>
6
+ action=rcpt(sasl_username/<%= container.mail.limit_hourly %>/3600/REJECT only <%= container.mail.limit_hourly %> recipients per hour for $$sasl_username)
7
+ id=<%= %>_0003
8
+ sasl_username=<%= "#{container.name}@#{etc.smtp_hostname}" %>
9
+ action=rate(sasl_username/<%= container.mail.limit_daily %>/86400/REJECT only <%= container.mail.limit_daily %> messages per day for $$sasl_username)
10
+ id=<%= %>_0004
11
+ sasl_username=<%= "#{container.name}@#{etc.smtp_hostname}" %>
12
+ action=rcpt(sasl_username/<%= container.mail.limit_daily %>/86400/REJECT only <%= container.mail.limit_daily %> recipients per day for $$sasl_username)