rmails 0.1.1

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.
Files changed (332) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +20 -0
  3. data/Gemfile +24 -0
  4. data/Gemfile.lock +167 -0
  5. data/LICENSE.txt +20 -0
  6. data/README.markdown +9 -0
  7. data/Rakefile +31 -0
  8. data/Rakefile1 +9 -0
  9. data/Vagrantfile +51 -0
  10. data/app/assets/images/arrow_bottom.gif +0 -0
  11. data/app/assets/images/arrow_right.gif +0 -0
  12. data/app/assets/images/at-sign.png +0 -0
  13. data/app/assets/images/checkerboard.gif +0 -0
  14. data/app/assets/images/glyphicons-halflings-white.png +0 -0
  15. data/app/assets/images/glyphicons-halflings.png +0 -0
  16. data/app/assets/images/icon_draft.gif +0 -0
  17. data/app/assets/images/icon_layout.gif +0 -0
  18. data/app/assets/images/icon_move.gif +0 -0
  19. data/app/assets/images/icon_regular.gif +0 -0
  20. data/app/assets/images/icon_snippet.gif +0 -0
  21. data/app/assets/images/nav_arrow.png +0 -0
  22. data/app/assets/images/x.png +0 -0
  23. data/app/assets/javascripts/application.coffee.erb +27 -0
  24. data/app/assets/javascripts/canjs/can.construct.proxy.js +60 -0
  25. data/app/assets/javascripts/canjs/can.construct.super.js +44 -0
  26. data/app/assets/javascripts/canjs/can.control.plugin.js +245 -0
  27. data/app/assets/javascripts/canjs/can.control.view.js +88 -0
  28. data/app/assets/javascripts/canjs/can.dojo.js +3669 -0
  29. data/app/assets/javascripts/canjs/can.dojo.min.js +66 -0
  30. data/app/assets/javascripts/canjs/can.fixture.js +1020 -0
  31. data/app/assets/javascripts/canjs/can.jquery.js +2995 -0
  32. data/app/assets/javascripts/canjs/can.jquery.min.js +52 -0
  33. data/app/assets/javascripts/canjs/can.mootools.js +3462 -0
  34. data/app/assets/javascripts/canjs/can.mootools.min.js +63 -0
  35. data/app/assets/javascripts/canjs/can.observe.attributes.js +293 -0
  36. data/app/assets/javascripts/canjs/can.observe.backup.js +368 -0
  37. data/app/assets/javascripts/canjs/can.observe.delegate.js +359 -0
  38. data/app/assets/javascripts/canjs/can.observe.setter.js +58 -0
  39. data/app/assets/javascripts/canjs/can.observe.validations.js +374 -0
  40. data/app/assets/javascripts/canjs/can.view.modifiers.js +292 -0
  41. data/app/assets/javascripts/canjs/can.yui.js +3530 -0
  42. data/app/assets/javascripts/canjs/can.yui.min.js +65 -0
  43. data/app/assets/javascripts/canjs/can.zepto.js +3426 -0
  44. data/app/assets/javascripts/canjs/can.zepto.min.js +62 -0
  45. data/app/assets/javascripts/controls/admins.coffee.erb +105 -0
  46. data/app/assets/javascripts/controls/aliases.coffee.erb +91 -0
  47. data/app/assets/javascripts/controls/domains.coffee.erb +115 -0
  48. data/app/assets/javascripts/controls/settings.coffee.erb +47 -0
  49. data/app/assets/javascripts/controls/users.coffee.erb +94 -0
  50. data/app/assets/javascripts/lib/facebox.js +311 -0
  51. data/app/assets/javascripts/lib/html5.js +2 -0
  52. data/app/assets/javascripts/lib/jquery.js +9301 -0
  53. data/app/assets/javascripts/lib/jquery_formparams.js +108 -0
  54. data/app/assets/javascripts/lib/jquery_input_hint.js +20 -0
  55. data/app/assets/javascripts/lib/jquery_paginate.js +120 -0
  56. data/app/assets/javascripts/lib/jquery_ui_custom.js +6 -0
  57. data/app/assets/javascripts/lib/json2.js +487 -0
  58. data/app/assets/javascripts/lib/utils.coffee.erb +48 -0
  59. data/app/assets/javascripts/models/admin.coffee.erb +42 -0
  60. data/app/assets/javascripts/models/alias.coffee.erb +28 -0
  61. data/app/assets/javascripts/models/domain.coffee.erb +39 -0
  62. data/app/assets/javascripts/models/property.coffee.erb +18 -0
  63. data/app/assets/javascripts/models/user.coffee.erb +29 -0
  64. data/app/assets/stylesheets/application.sass +156 -0
  65. data/app/assets/stylesheets/base.css.sass +243 -0
  66. data/app/assets/stylesheets/facebox.css +80 -0
  67. data/app/assets/stylesheets/lib/bootstrap.css +9 -0
  68. data/app/assets/stylesheets/twitter/bootstrap-responsive.scss +1 -0
  69. data/app/assets/stylesheets/twitter/bootstrap.scss +63 -0
  70. data/app/assets/stylesheets/twitter/bootstrap/_accordion.scss +34 -0
  71. data/app/assets/stylesheets/twitter/bootstrap/_alerts.scss +79 -0
  72. data/app/assets/stylesheets/twitter/bootstrap/_breadcrumbs.scss +24 -0
  73. data/app/assets/stylesheets/twitter/bootstrap/_button-groups.scss +229 -0
  74. data/app/assets/stylesheets/twitter/bootstrap/_buttons.scss +228 -0
  75. data/app/assets/stylesheets/twitter/bootstrap/_carousel.scss +158 -0
  76. data/app/assets/stylesheets/twitter/bootstrap/_close.scss +32 -0
  77. data/app/assets/stylesheets/twitter/bootstrap/_code.scss +61 -0
  78. data/app/assets/stylesheets/twitter/bootstrap/_component-animations.scss +22 -0
  79. data/app/assets/stylesheets/twitter/bootstrap/_dropdowns.scss +237 -0
  80. data/app/assets/stylesheets/twitter/bootstrap/_forms.scss +689 -0
  81. data/app/assets/stylesheets/twitter/bootstrap/_grid.scss +21 -0
  82. data/app/assets/stylesheets/twitter/bootstrap/_hero-unit.scss +25 -0
  83. data/app/assets/stylesheets/twitter/bootstrap/_labels-badges.scss +83 -0
  84. data/app/assets/stylesheets/twitter/bootstrap/_layouts.scss +16 -0
  85. data/app/assets/stylesheets/twitter/bootstrap/_media.scss +55 -0
  86. data/app/assets/stylesheets/twitter/bootstrap/_mixins.scss +690 -0
  87. data/app/assets/stylesheets/twitter/bootstrap/_modals.scss +95 -0
  88. data/app/assets/stylesheets/twitter/bootstrap/_navbar.scss +497 -0
  89. data/app/assets/stylesheets/twitter/bootstrap/_navs.scss +409 -0
  90. data/app/assets/stylesheets/twitter/bootstrap/_pager.scss +43 -0
  91. data/app/assets/stylesheets/twitter/bootstrap/_pagination.scss +123 -0
  92. data/app/assets/stylesheets/twitter/bootstrap/_popovers.scss +133 -0
  93. data/app/assets/stylesheets/twitter/bootstrap/_progress-bars.scss +122 -0
  94. data/app/assets/stylesheets/twitter/bootstrap/_reset.scss +216 -0
  95. data/app/assets/stylesheets/twitter/bootstrap/_responsive-1200px-min.scss +28 -0
  96. data/app/assets/stylesheets/twitter/bootstrap/_responsive-767px-max.scss +193 -0
  97. data/app/assets/stylesheets/twitter/bootstrap/_responsive-768px-979px.scss +19 -0
  98. data/app/assets/stylesheets/twitter/bootstrap/_responsive-navbar.scss +189 -0
  99. data/app/assets/stylesheets/twitter/bootstrap/_responsive-utilities.scss +74 -0
  100. data/app/assets/stylesheets/twitter/bootstrap/_scaffolding.scss +53 -0
  101. data/app/assets/stylesheets/twitter/bootstrap/_sprites.scss +197 -0
  102. data/app/assets/stylesheets/twitter/bootstrap/_tables.scss +235 -0
  103. data/app/assets/stylesheets/twitter/bootstrap/_thumbnails.scss +53 -0
  104. data/app/assets/stylesheets/twitter/bootstrap/_tooltip.scss +70 -0
  105. data/app/assets/stylesheets/twitter/bootstrap/_type.scss +247 -0
  106. data/app/assets/stylesheets/twitter/bootstrap/_utilities.scss +45 -0
  107. data/app/assets/stylesheets/twitter/bootstrap/_variables.scss +301 -0
  108. data/app/assets/stylesheets/twitter/bootstrap/_wells.scss +29 -0
  109. data/app/assets/stylesheets/twitter/bootstrap/responsive.scss +48 -0
  110. data/app/controllers/admin_users_controller.rb +62 -0
  111. data/app/controllers/aliases_controller.rb +35 -0
  112. data/app/controllers/application_controller.rb +20 -0
  113. data/app/controllers/domains_controller.rb +48 -0
  114. data/app/controllers/server_controller.rb +28 -0
  115. data/app/controllers/users_controller.rb +35 -0
  116. data/app/helpers/admin_users_helper.rb +11 -0
  117. data/app/helpers/application_helper.rb +2 -0
  118. data/app/helpers/domains_helper.rb +25 -0
  119. data/app/helpers/server_helper.rb +30 -0
  120. data/app/mailers/.gitkeep +0 -0
  121. data/app/models/.gitkeep +0 -0
  122. data/app/models/admin_user.rb +54 -0
  123. data/app/models/certificate_manager.rb +46 -0
  124. data/app/models/property.rb +103 -0
  125. data/app/models/property/awstats.rb +15 -0
  126. data/app/models/property/dovecot.rb +61 -0
  127. data/app/models/property/dspam.rb +45 -0
  128. data/app/models/property/nginx.rb +47 -0
  129. data/app/models/property/postfix.rb +64 -0
  130. data/app/models/property_value_validator.rb +41 -0
  131. data/app/models/system_manager.rb +88 -0
  132. data/app/models/virtual_alias.rb +13 -0
  133. data/app/models/virtual_domain.rb +15 -0
  134. data/app/models/virtual_user.rb +51 -0
  135. data/app/views/admin_users/_form.html.haml +21 -0
  136. data/app/views/admin_users/first.html.haml +12 -0
  137. data/app/views/admin_users/index.html.haml +61 -0
  138. data/app/views/aliases/_form.html.haml +11 -0
  139. data/app/views/aliases/_list.html.haml +0 -0
  140. data/app/views/devise/confirmations/new.html.haml +9 -0
  141. data/app/views/devise/mailer/confirmation_instructions.html.haml +4 -0
  142. data/app/views/devise/mailer/reset_password_instructions.html.haml +6 -0
  143. data/app/views/devise/mailer/unlock_instructions.html.haml +5 -0
  144. data/app/views/devise/passwords/edit.html.haml +14 -0
  145. data/app/views/devise/passwords/new.html.haml +12 -0
  146. data/app/views/devise/registrations/edit.html.haml +18 -0
  147. data/app/views/devise/registrations/new.html.haml +10 -0
  148. data/app/views/devise/sessions/new.html.haml +16 -0
  149. data/app/views/devise/shared/_links.haml +17 -0
  150. data/app/views/devise/unlocks/new.html.haml +11 -0
  151. data/app/views/domains/_fields.html.haml +0 -0
  152. data/app/views/domains/_form.html.haml +7 -0
  153. data/app/views/domains/index.html.haml +133 -0
  154. data/app/views/domains/show.html.haml +1 -0
  155. data/app/views/layouts/_nav.html.haml +3 -0
  156. data/app/views/layouts/application.html.haml +29 -0
  157. data/app/views/server/_certificates.html.haml +10 -0
  158. data/app/views/server/_dovecot.html.haml +27 -0
  159. data/app/views/server/_dspam.html.haml +9 -0
  160. data/app/views/server/_postfix_info.html.haml +5 -0
  161. data/app/views/server/_postfix_test.html.haml +5 -0
  162. data/app/views/server/_status.html.haml +11 -0
  163. data/app/views/server/index.html.haml +36 -0
  164. data/app/views/users/_form.html.haml +11 -0
  165. data/app/views/users/_list.html.haml +0 -0
  166. data/bin/rmails +43 -0
  167. data/config.ru +4 -0
  168. data/config/application.rb +62 -0
  169. data/config/boot.rb +6 -0
  170. data/config/environment.rb +5 -0
  171. data/config/environments/development.rb +37 -0
  172. data/config/environments/production.rb +67 -0
  173. data/config/environments/test.rb +37 -0
  174. data/config/initializers/backtrace_silencers.rb +7 -0
  175. data/config/initializers/devise.rb +240 -0
  176. data/config/initializers/devise_encryptable.rb +37 -0
  177. data/config/initializers/devise_models.rb +86 -0
  178. data/config/initializers/inflections.rb +15 -0
  179. data/config/initializers/mime_types.rb +5 -0
  180. data/config/initializers/secret_token.rb +7 -0
  181. data/config/initializers/session_store.rb +8 -0
  182. data/config/initializers/simple_form.rb +142 -0
  183. data/config/initializers/simple_form_bootstrap.rb +45 -0
  184. data/config/initializers/wrap_parameters.rb +14 -0
  185. data/config/locales/cz.yml +45 -0
  186. data/config/locales/devise.cz.yml +47 -0
  187. data/config/locales/devise.en.yml +60 -0
  188. data/config/locales/en.yml +5 -0
  189. data/config/locales/server/cz.yml +14 -0
  190. data/config/locales/server/en.yml +7 -0
  191. data/config/locales/server/help/dovecot/cz.yml +21 -0
  192. data/config/locales/server/help/dovecot/en.yml +18 -0
  193. data/config/locales/server/help/dspam/cz.yml +10 -0
  194. data/config/locales/server/help/dspam/en.yml +4 -0
  195. data/config/locales/server/key/dovecot/cz.yml +23 -0
  196. data/config/locales/server/key/dovecot/en.yml +20 -0
  197. data/config/locales/server/key/dspam/cz.yml +10 -0
  198. data/config/locales/server/key/dspam/en.yml +4 -0
  199. data/config/locales/simple_form.en.yml +26 -0
  200. data/config/locales/views/admin_users/cz.yml +25 -0
  201. data/config/locales/views/admin_users/en.yml +5 -0
  202. data/config/locales/views/aliases/cz.yml +17 -0
  203. data/config/locales/views/aliases/en.yml +1 -0
  204. data/config/locales/views/devise/cz.yml +26 -0
  205. data/config/locales/views/devise/en.yml +13 -0
  206. data/config/locales/views/domains/cz.yml +15 -0
  207. data/config/locales/views/domains/en.yml +15 -0
  208. data/config/locales/views/server/cz.yml +19 -0
  209. data/config/locales/views/server/en.yml +3 -0
  210. data/config/locales/views/users/cz.yml +18 -0
  211. data/config/locales/views/users/en.yml +1 -0
  212. data/config/routes.rb +80 -0
  213. data/db/migrate/20121112201233_virtual_domain.rb +11 -0
  214. data/db/migrate/20121112201247_virtual_alias.rb +10 -0
  215. data/db/migrate/20121112201341_virtual_user.rb +34 -0
  216. data/db/migrate/20121112201359_create_admin_user.rb +30 -0
  217. data/db/migrate/20121112201411_server_configuration.rb +13 -0
  218. data/db/migrate/20130304083938_join_domains_users.rb +12 -0
  219. data/db/migrate/20130311214040_create_versions.rb +18 -0
  220. data/db/seeds.rb +45 -0
  221. data/lib/devise-encryptable.rb +1 -0
  222. data/lib/rmails.rb +5 -0
  223. data/lib/rmails/installer.rb +37 -0
  224. data/lib/rmails/version.rb +3 -0
  225. data/lib/tasks/.gitkeep +0 -0
  226. data/lib/templates/haml/scaffold/_form.html.haml +10 -0
  227. data/locals +0 -0
  228. data/log/.gitkeep +0 -0
  229. data/public/404.html +26 -0
  230. data/public/422.html +26 -0
  231. data/public/500.html +25 -0
  232. data/public/favicon.ico +0 -0
  233. data/public/fonts/London.eot +0 -0
  234. data/public/fonts/London.otf +0 -0
  235. data/public/fonts/London.woff +0 -0
  236. data/public/fonts/LondonBold.otf +0 -0
  237. data/public/robots.txt +5 -0
  238. data/rmails.gemspec +35 -0
  239. data/script/prepflog.pl +576 -0
  240. data/script/rails +6 -0
  241. data/system/config/automateit_env.rb +16 -0
  242. data/system/config/fields.yml +48 -0
  243. data/system/config/tags.yml +39 -0
  244. data/system/dist/README_AutomateIt_dist.txt +20 -0
  245. data/system/dist/amavis/spamassassin.cf.erb +85 -0
  246. data/system/dist/amavis/user.erb +33 -0
  247. data/system/dist/awstats/awstats.mail.conf.erb +41 -0
  248. data/system/dist/awstats/prepflog.pl +576 -0
  249. data/system/dist/dovecot/dovecot-sql.conf.ext.erb +14 -0
  250. data/system/dist/dovecot/dovecot.conf.erb +297 -0
  251. data/system/dist/dovecot/old_dovecot.conf.erb +63 -0
  252. data/system/dist/dspam/conf.erb +96 -0
  253. data/system/dist/dspam/pgsql.conf +33 -0
  254. data/system/dist/nginx/awstats.erb +17 -0
  255. data/system/dist/nginx/rmails.erb +40 -0
  256. data/system/dist/postfix/email2email.cf.erb +5 -0
  257. data/system/dist/postfix/main.cf.erb +118 -0
  258. data/system/dist/postfix/master.cf.erb +74 -0
  259. data/system/dist/postfix/sasl.conf.erb +3 -0
  260. data/system/dist/postfix/sender_login_maps.cf.erb +5 -0
  261. data/system/dist/postfix/virtual_alias_maps.cf.erb +5 -0
  262. data/system/dist/postfix/virtual_mailbox_domains.cf.erb +5 -0
  263. data/system/dist/postfix/virtual_mailbox_maps.cf.erb +5 -0
  264. data/system/dist/postgresql/postgresql.conf.erb +54 -0
  265. data/system/dist/rmails/Gemfile.1 +8 -0
  266. data/system/dist/rmails/Gemfile.2 +24 -0
  267. data/system/dist/rmails/database.yml.erb +15 -0
  268. data/system/dist/sudoers +37 -0
  269. data/system/lib/README_AutomateIt_lib.txt +22 -0
  270. data/system/lib/dkim_key.rb +9 -0
  271. data/system/lib/smtpd_key.rb +39 -0
  272. data/system/lib/ssl.rb +23 -0
  273. data/system/recipes/01_prepare_server.rb +84 -0
  274. data/system/recipes/02_setup_database.rb +65 -0
  275. data/system/recipes/03_setup_postfix.rb +124 -0
  276. data/system/recipes/04_setup_dovecot.rb +78 -0
  277. data/system/recipes/05_setup_nginx.rb +29 -0
  278. data/system/recipes/06_setup_dspam.rb +24 -0
  279. data/system/recipes/07_setup_amavis.rb +16 -0
  280. data/system/recipes/08_setup_spamassassin.rb +22 -0
  281. data/system/recipes/09_setup_awstats.rb +49 -0
  282. data/system/recipes/XX_start_services.rb +5 -0
  283. data/test/fixtures/.gitkeep +0 -0
  284. data/test/functional/.gitkeep +0 -0
  285. data/test/functional/aliases_controller_test.rb +7 -0
  286. data/test/functional/domains_controller_test.rb +7 -0
  287. data/test/functional/users_controller_test.rb +7 -0
  288. data/test/integration/.gitkeep +0 -0
  289. data/test/performance/browsing_test.rb +12 -0
  290. data/test/test_helper.rb +13 -0
  291. data/test/unit/.gitkeep +0 -0
  292. data/test/unit/helpers/aliases_helper_test.rb +4 -0
  293. data/test/unit/helpers/domains_helper_test.rb +4 -0
  294. data/test/unit/helpers/users_helper_test.rb +4 -0
  295. data/vendor/assets/javascripts/.gitkeep +0 -0
  296. data/vendor/assets/javascripts/canjs/can.construct.proxy.js +60 -0
  297. data/vendor/assets/javascripts/canjs/can.construct.super.js +44 -0
  298. data/vendor/assets/javascripts/canjs/can.control.plugin.js +245 -0
  299. data/vendor/assets/javascripts/canjs/can.control.view.js +88 -0
  300. data/vendor/assets/javascripts/canjs/can.dojo.js +3669 -0
  301. data/vendor/assets/javascripts/canjs/can.dojo.min.js +66 -0
  302. data/vendor/assets/javascripts/canjs/can.fixture.js +1020 -0
  303. data/vendor/assets/javascripts/canjs/can.jquery.js +2995 -0
  304. data/vendor/assets/javascripts/canjs/can.jquery.min.js +52 -0
  305. data/vendor/assets/javascripts/canjs/can.mootools.js +3462 -0
  306. data/vendor/assets/javascripts/canjs/can.mootools.min.js +63 -0
  307. data/vendor/assets/javascripts/canjs/can.observe.attributes.js +293 -0
  308. data/vendor/assets/javascripts/canjs/can.observe.backup.js +368 -0
  309. data/vendor/assets/javascripts/canjs/can.observe.delegate.js +359 -0
  310. data/vendor/assets/javascripts/canjs/can.observe.setter.js +58 -0
  311. data/vendor/assets/javascripts/canjs/can.observe.validations.js +374 -0
  312. data/vendor/assets/javascripts/canjs/can.view.modifiers.js +292 -0
  313. data/vendor/assets/javascripts/canjs/can.yui.js +3530 -0
  314. data/vendor/assets/javascripts/canjs/can.yui.min.js +65 -0
  315. data/vendor/assets/javascripts/canjs/can.zepto.js +3426 -0
  316. data/vendor/assets/javascripts/canjs/can.zepto.min.js +62 -0
  317. data/vendor/assets/javascripts/twitter/bootstrap-affix.js +104 -0
  318. data/vendor/assets/javascripts/twitter/bootstrap-alert.js +90 -0
  319. data/vendor/assets/javascripts/twitter/bootstrap-button.js +96 -0
  320. data/vendor/assets/javascripts/twitter/bootstrap-carousel.js +176 -0
  321. data/vendor/assets/javascripts/twitter/bootstrap-collapse.js +158 -0
  322. data/vendor/assets/javascripts/twitter/bootstrap-dropdown.js +150 -0
  323. data/vendor/assets/javascripts/twitter/bootstrap-modal.js +239 -0
  324. data/vendor/assets/javascripts/twitter/bootstrap-popover.js +103 -0
  325. data/vendor/assets/javascripts/twitter/bootstrap-scrollspy.js +151 -0
  326. data/vendor/assets/javascripts/twitter/bootstrap-tab.js +135 -0
  327. data/vendor/assets/javascripts/twitter/bootstrap-tooltip.js +275 -0
  328. data/vendor/assets/javascripts/twitter/bootstrap-transition.js +60 -0
  329. data/vendor/assets/javascripts/twitter/bootstrap-typeahead.js +300 -0
  330. data/vendor/assets/javascripts/twitter/my/bootstrap-typeahead.js +311 -0
  331. data/vendor/assets/stylesheets/.gitkeep +0 -0
  332. metadata +470 -0
@@ -0,0 +1,26 @@
1
+ cz:
2
+ devise:
3
+ sessions:
4
+ new:
5
+ title: Přihlášení správce
6
+ sign_in: Přihlásit
7
+ shared:
8
+ links:
9
+ sign_in: Přihlášení
10
+ sign_up: Registrace
11
+ password: Zapomenuté heslo
12
+ unlock: Instrukce k odemčení
13
+ omniauth: Přihlásit s
14
+ passwords:
15
+ edit:
16
+ title: Change your password
17
+ submit: Change my password
18
+ confirm: Confirm your new password
19
+ new_pass: New password
20
+ new:
21
+ title: Obnova zapomenutého hesla
22
+ submit: Poslat instrukce k obnově hesla
23
+ unlocks:
24
+ new:
25
+ title: Zaslání instrukcí k odemčení účtu
26
+ submit: Zaslat instrukce
@@ -0,0 +1,13 @@
1
+ cz:
2
+ devise:
3
+ sessions:
4
+ new:
5
+ title: Sign In
6
+ sign_in: Ok
7
+ shared:
8
+ links:
9
+ sign_in: Sign in
10
+ sign_up: Sign up
11
+ password: Forgot your password?
12
+ unlock: "Didn't receive unlock instructions?"
13
+ omniauth: Sign in with
@@ -0,0 +1,15 @@
1
+ cz:
2
+ domains:
3
+ index:
4
+ title: Domény, schránky a přesměrování
5
+ edit: Upravit
6
+ delete: Odstranit
7
+ manage: Zobrazit
8
+ nomanage: Skrýt
9
+ create: Přidat doménu
10
+ confirm: Opravdu chcete doménu odstranit?
11
+ errors: Byly objeveny chybné vstupní hodnoty.
12
+ form:
13
+ name: Název domény
14
+ create: Vytvořit doménu
15
+ reset: Storno
@@ -0,0 +1,15 @@
1
+ en:
2
+ domains:
3
+ index:
4
+ title: Domény, schránky a přesměrování
5
+ edit: Upravit
6
+ delete: Odstranit
7
+ manage: Zobrazit
8
+ nomanage: Skrýt
9
+ create: Přidat doménu
10
+ confirm: Opravdu chcete doménu odstranit?
11
+ errors: Byly objeveny chybné vstupní hodnoty.
12
+ form:
13
+ name: Název domény
14
+ create: Vytvořit doménu
15
+ reset: Storno
@@ -0,0 +1,19 @@
1
+ cz:
2
+ server:
3
+ msg_rejection: Odmítnuté zprávy
4
+ auth: Autentizace
5
+ pop: POP3
6
+ imap: IMAP
7
+ storage: Úložiště
8
+
9
+ index:
10
+ title: Nastavení poštovního serveru
11
+ dovecot: Doručování a uložení e-mailů
12
+ postfix: Příjem zpráv
13
+ filtering: Filtrování
14
+ certificates: Certifikáty
15
+
16
+ status:
17
+ save_info: Provedení změn na serveru
18
+ submit_button: Aplikovat změny do nastavení serveru a restartovat služby
19
+ unsaved_warning: Systém našel neuplatněné změny v nastavení. Oranžově označené nastavení má změněnou, ale neuloženou hodnotu.
@@ -0,0 +1,3 @@
1
+ en:
2
+ server:
3
+ status:
@@ -0,0 +1,18 @@
1
+ cz:
2
+ users:
3
+ index:
4
+ title: Schránky
5
+ title_new: Vytvořit novou schránku
6
+ title_edit: Upravit schránku
7
+ edit: Upravit
8
+ delete: Odstranit
9
+ create: Přidat shcránku
10
+ confirm: Opravdu chcete schránku odstranit?
11
+
12
+ form:
13
+ name: Jméno
14
+ email: E-mail
15
+ password: Heslo
16
+ password_confirmation: Potvrzení hesla
17
+ create: Vytvořit
18
+ reset: Storno
@@ -0,0 +1,80 @@
1
+ Rmails::Application.routes.draw do
2
+
3
+ devise_for :admin_users, :skip => :registrations
4
+
5
+ resources :admin_users, :only => [:index, :create, :update]
6
+ match 'admin_users/first' => 'admin_users#first',
7
+ :as => 'first_admin_user'
8
+
9
+ resources :domains do
10
+ resources :users
11
+ resources :aliases
12
+ end
13
+
14
+ match 'server' => 'server#index',
15
+ :as => 'server'
16
+ match 'server/config/:id' => 'server#property',
17
+ :as => 'server_property'
18
+ match 'server/save_config' => 'server#update',
19
+ :as => 'server_update'
20
+
21
+
22
+ root :to => 'domains#index'
23
+
24
+ # The priority is based upon order of creation:
25
+ # first created -> highest priority.
26
+
27
+ # Sample of regular route:
28
+ # match 'products/:id' => 'catalog#view'
29
+ # Keep in mind you can assign values other than :controller and :action
30
+
31
+ # Sample of named route:
32
+ # match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
33
+ # This route can be invoked with purchase_url(:id => product.id)
34
+
35
+ # Sample resource route (maps HTTP verbs to controller actions automatically):
36
+ # resources :products
37
+
38
+ # Sample resource route with options:
39
+ # resources :products do
40
+ # member do
41
+ # get 'short'
42
+ # post 'toggle'
43
+ # end
44
+ #
45
+ # collection do
46
+ # get 'sold'
47
+ # end
48
+ # end
49
+
50
+ # Sample resource route with sub-resources:
51
+ # resources :products do
52
+ # resources :comments, :sales
53
+ # resource :seller
54
+ # end
55
+
56
+ # Sample resource route with more complex sub-resources
57
+ # resources :products do
58
+ # resources :comments
59
+ # resources :sales do
60
+ # get 'recent', :on => :collection
61
+ # end
62
+ # end
63
+
64
+ # Sample resource route within a namespace:
65
+ # namespace :admin do
66
+ # # Directs /admin/products/* to Admin::ProductsController
67
+ # # (app/controllers/admin/products_controller.rb)
68
+ # resources :products
69
+ # end
70
+
71
+ # You can have the root of your site routed with "root"
72
+ # just remember to delete public/index.html.
73
+ # root :to => 'welcome#index'
74
+
75
+ # See how all your routes lay out with "rake routes"
76
+
77
+ # This is a legacy wild controller route that's not recommended for RESTful applications.
78
+ # Note: This route will make all actions in every controller accessible via GET requests.
79
+ # match ':controller(/:action(/:id))(.:format)'
80
+ end
@@ -0,0 +1,11 @@
1
+ class VirtualDomain < ActiveRecord::Migration
2
+ def change
3
+ create_table :virtual_domains do |t|
4
+ t.string :name
5
+ t.timestamps
6
+
7
+ t.integer :limit_aliases, :default => 0
8
+ t.integer :limit_users, :default => 0
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ class VirtualAlias < ActiveRecord::Migration
2
+ def change
3
+ create_table :virtual_aliases do |t|
4
+ t.string :source
5
+ t.string :destination
6
+ t.references :virtual_domain
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,34 @@
1
+ class VirtualUser < ActiveRecord::Migration
2
+ def change
3
+ create_table :virtual_users do |t|
4
+ t.string :name
5
+
6
+ ## Database authenticatable
7
+ t.string :email, :null => false, :default => ""
8
+ t.string :encrypted_password, :null => false, :default => ""
9
+ ## Encryptable
10
+ t.string :password_salt
11
+
12
+ ## Rememberable
13
+ t.datetime :remember_created_at
14
+
15
+ ## Recoverable
16
+ t.string :reset_password_token
17
+ t.datetime :reset_password_sent_at
18
+
19
+ ## Trackable
20
+ t.integer :sign_in_count, :default => 0
21
+ t.datetime :current_sign_in_at
22
+ t.datetime :last_sign_in_at
23
+ t.string :current_sign_in_ip
24
+ t.string :last_sign_in_ip
25
+
26
+
27
+ t.integer :quota_kb, :default => 10485760 # 10M
28
+ t.integer :quota_messages, :default => 0
29
+
30
+ t.references :virtual_domain
31
+ t.timestamps
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,30 @@
1
+ class CreateAdminUser < ActiveRecord::Migration
2
+ def change
3
+ create_table :admin_users do |t|
4
+ t.string :name
5
+ t.boolean :super, :default => false
6
+ ## Database authenticatable
7
+ t.string :email, :null => false, :default => ""
8
+ t.string :encrypted_password, :null => false, :default => ""
9
+ ## Encryptable
10
+ t.string :password_salt
11
+
12
+ ## Rememberable
13
+ t.datetime :remember_created_at
14
+
15
+ ## Trackable
16
+ t.integer :sign_in_count, :default => 0
17
+ t.datetime :current_sign_in_at
18
+ t.datetime :last_sign_in_at
19
+ t.string :current_sign_in_ip
20
+ t.string :last_sign_in_ip
21
+
22
+ ## Lockable
23
+ t.integer :failed_attempts, :default => 0 # SET lock strategy :failed_attempts
24
+ t.string :unlock_token # SET unlock strategy :both
25
+ t.datetime :locked_at
26
+
27
+ t.timestamps
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,13 @@
1
+ class ServerConfiguration < ActiveRecord::Migration
2
+ def change
3
+ create_table :server_configuration do |t|
4
+ t.string :key, :null => false
5
+ t.string :value, :null => false
6
+ t.string :new_value #, :default => :null
7
+ t.integer :service, :default => 0
8
+ t.string :template
9
+
10
+ t.timestamps
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ class JoinDomainsUsers < ActiveRecord::Migration
2
+ def change
3
+ create_table :users_domains, :id => false do |t|
4
+ t.references :admin_user, :null => false
5
+ t.references :virtual_domain, :null => false
6
+ end
7
+
8
+ add_index :users_domains,
9
+ [:admin_user_id, :virtual_domain_id],
10
+ :unique => true
11
+ end
12
+ end
@@ -0,0 +1,18 @@
1
+ class CreateVersions < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :versions do |t|
4
+ t.string :item_type, :null => false
5
+ t.integer :item_id, :null => false
6
+ t.string :event, :null => false
7
+ t.string :whodunnit
8
+ t.text :object
9
+ t.datetime :created_at
10
+ end
11
+ add_index :versions, [:item_type, :item_id]
12
+ end
13
+
14
+ def self.down
15
+ remove_index :versions, [:item_type, :item_id]
16
+ drop_table :versions
17
+ end
18
+ end
@@ -0,0 +1,45 @@
1
+ #a = AdminUser.create({:email=>'fandisek@gmail.com', :password => 'hesloo11', :password_confirmation => 'hesloo11'})
2
+
3
+ #a.virtual_domains.create({:name => 'rmails.com'})
4
+
5
+ Property.add :dovecot, 'disable_plaintext_auth', 'yes', 'yes_no'
6
+ Property.add :dovecot, 'auth_username_chars', 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@', 'value+param_string'
7
+ Property.add :dovecot, 'auth_worker_max_count', '30', 'value+number'
8
+ Property.add :dovecot, 'auth_verbose', 'no', 'yes_no'
9
+ Property.add :dovecot, 'mail_cache_min_mail_count', '0', 'value+number'
10
+ Property.add :dovecot, 'imap_login__listener__port', '143', 'commented_value+number'
11
+ Property.add :dovecot, 'imaps_login__listener__port', '993', 'commented_value+number'
12
+ Property.add :dovecot, 'pop3_login_listener_port', '110', 'commented_value+number'
13
+ Property.add :dovecot, 'pop3s_login__listener__port', '995', 'commented_value+number'
14
+ Property.add :dovecot, 'imap__process_limit', '1024', 'commented_value+number'
15
+ Property.add :dovecot, 'pop3__process_limit', '1024', 'commented_value+number'
16
+ Property.add :dovecot, 'quota_full_tempfail', 'no', 'yes_no'
17
+ Property.add :dovecot, 'rejection_subject', 'Rejected: %s', 'value+param_string'
18
+ Property.add :dovecot, 'rejection_reason', 'Your message to %t was automatically rejected:%n%r', 'value+param_string'
19
+ Property.add :dovecot, 'storage_size', '400M', 'storage+mega_size'
20
+ Property.add :dovecot, 'storage_trash', '10%', 'storage+percent'
21
+ Property.add :dovecot, 'storage_spam', '10%', 'storage+percent'
22
+
23
+ Property.add :postfix, 'message_size_limit', '15728640', 'main_value+number'
24
+ Property.add :postfix, 'mail_name', 'Rmails', 'main_value+string'
25
+ Property.add :postfix, 'myhostname', 'rmails.com', 'main_value+string'
26
+ Property.add :postfix, 'mydomain', 'rmails.com', 'main_value+string'
27
+ Property.add :postfix, 'smtpd_banner', "$myhostname ESMTP $mail_name", 'main_value+string'
28
+ Property.add :postfix, 'mynetworks', '192.168.0.0/16 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128', 'main_value+string'
29
+ Property.add :postfix, 'reject_rbls', '+bl.spamcop.net;+dnsbl.sorbs.net;+zen.spamhaus.org', 'rbl_client+multiselect_from_list'
30
+
31
+ Property.add :nginx, 'site:app', 'hostnames=rmails.com www.rmails.com', 'render_thin_site+key_value'
32
+
33
+ Property.add :dspam, 'enableBNR', 'on', 'on_off_pref+on_off'
34
+ Property.add :dspam, 'enableWhitelist', 'on', 'on_off_pref+on_off'
35
+ Property.add :dspam, 'whitelistThreshold', '10', 'preference+number'
36
+ Property.add :dspam, 'statisticalSedation', '5', 'preference+number'
37
+ Property.add :dspam, 'spamSubject', '[SPAM]', 'preference+string'
38
+ Property.add :dspam, 'spamAction', 'quarantine;deliver;+tag', 'enum+select_from_enum'
39
+ Property.add :dspam, 'signatureLocation', '+headers;message', 'enum+select_from_enum'
40
+
41
+
42
+ Property.add :rmails, 'smtpd_cert', '', 'cert'
43
+ Property.add :rmails, 'https_cert', '', 'cert'
44
+ Property.add :rmails, 'dkim_cert', '', 'cert'
45
+
@@ -0,0 +1 @@
1
+ require "devise/encryptable/encryptable"
@@ -0,0 +1,5 @@
1
+ require 'rmails/installer'
2
+
3
+ module Rmails
4
+
5
+ end
@@ -0,0 +1,37 @@
1
+ require "automateit"
2
+ require "rails"
3
+ require "rake"
4
+ require "bundler"
5
+
6
+
7
+ module Rmails
8
+ class Installer
9
+ def initialize
10
+ @passwords = []
11
+ @interpreter = AutomateIt.new(:project => "system")
12
+ @interpreter.include_in(self)
13
+ @interpreter.set :rake_task, Rake::Task
14
+ @interpreter.set :rails_root, Rails.root
15
+ @interpreter.set :passwords, @passwords
16
+ end
17
+
18
+ def run
19
+ @interpreter.invoke '01_prepare_server'
20
+ #Bundler.with_clean_env do
21
+ # @interpreter.shell_manager.sh("bundle install --without development assets")
22
+ #end
23
+ #@interpreter.invoke '02_setup_database'
24
+ #@interpreter.invoke '03_setup_postfix'
25
+ #@interpreter.invoke '04_setup_dovecot'
26
+ @interpreter.invoke '05_setup_nginx'
27
+ @interpreter.invoke '06_setup_dspam'
28
+ @interpreter.invoke '07_setup_amavis'
29
+ @interpreter.invoke '08_setup_spamassassin'
30
+ @interpreter.invoke '09_setup_awstats'
31
+ @interpreter.invoke 'XX_start_services'
32
+ end
33
+
34
+
35
+
36
+ end
37
+ end
@@ -0,0 +1,3 @@
1
+ module Rmails
2
+ VERSION = "0.1.1"
3
+ end