itsi 0.1.18 → 0.1.20

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 (394) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/Cargo.lock +924 -385
  4. data/README.md +67 -55
  5. data/crates/itsi_server/Cargo.toml +7 -4
  6. data/crates/itsi_server/src/ruby_types/itsi_http_request.rs +2 -2
  7. data/crates/itsi_server/src/ruby_types/itsi_server/itsi_server_config.rs +150 -19
  8. data/crates/itsi_server/src/ruby_types/itsi_server.rs +1 -0
  9. data/crates/itsi_server/src/server/binds/listener.rs +34 -29
  10. data/crates/itsi_server/src/server/binds/tls/locked_dir_cache.rs +2 -2
  11. data/crates/itsi_server/src/server/binds/tls.rs +1 -1
  12. data/crates/itsi_server/src/server/middleware_stack/middleware.rs +33 -28
  13. data/crates/itsi_server/src/server/middleware_stack/middlewares/auth_jwt.rs +56 -3
  14. data/crates/itsi_server/src/server/middleware_stack/middlewares/csp.rs +179 -0
  15. data/crates/itsi_server/src/server/middleware_stack/middlewares/mod.rs +25 -2
  16. data/crates/itsi_server/src/server/middleware_stack/middlewares/ruby_app.rs +3 -3
  17. data/crates/itsi_server/src/server/middleware_stack/middlewares/static_assets.rs +2 -1
  18. data/crates/itsi_server/src/server/middleware_stack/mod.rs +32 -34
  19. data/crates/itsi_server/src/server/serve_strategy/cluster_mode.rs +10 -4
  20. data/crates/itsi_server/src/server/serve_strategy/single_mode.rs +30 -7
  21. data/crates/itsi_server/src/server/thread_worker.rs +2 -2
  22. data/crates/itsi_server/src/services/static_file_server.rs +30 -28
  23. data/crates/itsi_tracing/src/lib.rs +39 -8
  24. data/docker/Dockerfile +12 -0
  25. data/docs/content/_index.md +18 -10
  26. data/docs/content/acknowledgements/_index.md +43 -0
  27. data/docs/content/configuration/_index.md +98 -0
  28. data/docs/content/contact/_index.md +7 -0
  29. data/docs/content/faqs/_index.md +27 -0
  30. data/docs/content/features/_index.md +285 -0
  31. data/docs/content/getting_started/_index.md +70 -0
  32. data/docs/content/getting_started/local_development.md +40 -0
  33. data/docs/content/getting_started/logging.md +16 -0
  34. data/docs/content/getting_started/running_itsi_in_production.md +24 -0
  35. data/docs/content/itsi-server-100.png +0 -0
  36. data/docs/content/itsi_scheduler/_index.md +105 -0
  37. data/docs/content/itsi_scheduler/itsi-scheduler-100.png +0 -0
  38. data/docs/content/ruby-lsp.png +0 -0
  39. data/docs/content/ruby.svg +948 -0
  40. data/docs/data/icons.yaml +949 -0
  41. data/docs/hugo.yaml +27 -28
  42. data/fairytale.txt +34 -0
  43. data/gems/scheduler/Cargo.lock +46 -46
  44. data/gems/scheduler/README.md +53 -24
  45. data/gems/scheduler/itsi-scheduler-100.png +0 -0
  46. data/gems/scheduler/lib/itsi/scheduler/version.rb +1 -1
  47. data/gems/server/Cargo.lock +932 -382
  48. data/gems/server/README.md +2 -0
  49. data/gems/server/exe/itsi +5 -5
  50. data/gems/server/lib/itsi/http_request.rb +1 -0
  51. data/gems/server/lib/itsi/server/config/config_helpers.rb +93 -0
  52. data/gems/server/lib/itsi/server/config/dsl.rb +98 -37
  53. data/gems/server/lib/itsi/server/config/known_paths/KitchensinkDirectories.txt +2346 -0
  54. data/gems/server/lib/itsi/server/config/known_paths/Randomfiles.txt +24 -0
  55. data/gems/server/lib/itsi/server/config/known_paths/UnixDotfiles.txt +52 -0
  56. data/gems/server/lib/itsi/server/config/known_paths/backdoors/ASP_CommonBackdoors.txt +29 -0
  57. data/gems/server/lib/itsi/server/config/known_paths/backdoors/bot_control_panels.txt +1668 -0
  58. data/gems/server/lib/itsi/server/config/known_paths/backdoors/shells.txt +1167 -0
  59. data/gems/server/lib/itsi/server/config/known_paths/cgi/CGI_HTTP_POST.txt +7 -0
  60. data/gems/server/lib/itsi/server/config/known_paths/cgi/CGI_HTTP_POST_Windows.txt +6 -0
  61. data/gems/server/lib/itsi/server/config/known_paths/cgi/CGI_Microsoft.txt +79 -0
  62. data/gems/server/lib/itsi/server/config/known_paths/cgi/CGI_XPlatform.txt +3948 -0
  63. data/gems/server/lib/itsi/server/config/known_paths/cms/README.md +5 -0
  64. data/gems/server/lib/itsi/server/config/known_paths/cms/drupal_plugins.txt +6320 -0
  65. data/gems/server/lib/itsi/server/config/known_paths/cms/drupal_themes.txt +828 -0
  66. data/gems/server/lib/itsi/server/config/known_paths/cms/joomla_plugins.txt +224 -0
  67. data/gems/server/lib/itsi/server/config/known_paths/cms/joomla_themes.txt +30 -0
  68. data/gems/server/lib/itsi/server/config/known_paths/cms/php-nuke.txt +2142 -0
  69. data/gems/server/lib/itsi/server/config/known_paths/cms/wordpress.txt +1566 -0
  70. data/gems/server/lib/itsi/server/config/known_paths/cms/wp_common_theme_files.txt +46 -0
  71. data/gems/server/lib/itsi/server/config/known_paths/cms/wp_plugins.txt +13366 -0
  72. data/gems/server/lib/itsi/server/config/known_paths/cms/wp_plugins_full.txt +68662 -0
  73. data/gems/server/lib/itsi/server/config/known_paths/cms/wp_plugins_top225.txt +225 -0
  74. data/gems/server/lib/itsi/server/config/known_paths/cms/wp_themes.readme +12 -0
  75. data/gems/server/lib/itsi/server/config/known_paths/cms/wp_themes.txt +7336 -0
  76. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/3CharExtBrute.txt +17576 -0
  77. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/CommonWebExtensions.txt +80 -0
  78. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/Extensions.Backup.txt +14 -0
  79. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/Extensions.Common.txt +865 -0
  80. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/Extensions.Compressed.txt +186 -0
  81. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/Extensions.Mostcommon.txt +30 -0
  82. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/Extensions.Skipfish.txt +93 -0
  83. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/WordlistSkipfish.txt +1918 -0
  84. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/copy_of.txt +8 -0
  85. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-directories-lowercase.txt +56180 -0
  86. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-directories.txt +62290 -0
  87. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-extensions-lowercase.txt +2367 -0
  88. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-extensions.txt +2450 -0
  89. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-files-lowercase.txt +35323 -0
  90. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-files.txt +37037 -0
  91. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-words-lowercase.txt +107982 -0
  92. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-large-words.txt +119600 -0
  93. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-directories-lowercase.txt +26593 -0
  94. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-directories.txt +30009 -0
  95. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-extensions-lowercase.txt +1233 -0
  96. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-extensions.txt +1289 -0
  97. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-files-lowercase.txt +16243 -0
  98. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-files.txt +17128 -0
  99. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-words-lowercase.txt +56293 -0
  100. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-medium-words.txt +63087 -0
  101. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-directories-lowercase.txt +17776 -0
  102. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-directories.txt +20122 -0
  103. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-extensions-lowercase.txt +914 -0
  104. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-extensions.txt +963 -0
  105. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-files-lowercase.txt +10848 -0
  106. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-files.txt +11424 -0
  107. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-words-lowercase.txt +38267 -0
  108. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/raft-small-words.txt +43003 -0
  109. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/spanish.txt +445 -0
  110. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/test_demo.txt +36 -0
  111. data/gems/server/lib/itsi/server/config/known_paths/filename-dirname-bruteforce/upload_variants.txt +44 -0
  112. data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/Logins.txt +71 -0
  113. data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/cfm.txt +294 -0
  114. data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/html.txt +295 -0
  115. data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/jsp.txt +294 -0
  116. data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/php.txt +294 -0
  117. data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/windows-asp.txt +294 -0
  118. data/gems/server/lib/itsi/server/config/known_paths/login-file-locations/windows-aspx.txt +294 -0
  119. data/gems/server/lib/itsi/server/config/known_paths/password-file-locations/Passwords.txt +47 -0
  120. data/gems/server/lib/itsi/server/config/known_paths/php/PHP.txt +30 -0
  121. data/gems/server/lib/itsi/server/config/known_paths/php/PHP_CommonBackdoors.txt +5 -0
  122. data/gems/server/lib/itsi/server/config/known_paths/proxy-conf.txt +31 -0
  123. data/gems/server/lib/itsi/server/config/known_paths/tftp.txt +79 -0
  124. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/ADFS.txt +86 -0
  125. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/AdobeXML.txt +16 -0
  126. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Apache.txt +101 -0
  127. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/ApacheTomcat.txt +47 -0
  128. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Apache_Axis.txt +16 -0
  129. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/ColdFusion.txt +111 -0
  130. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/FatwireCMS.txt +390 -0
  131. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Frontpage.txt +38 -0
  132. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/HP_System_Mgmt_Homepage.txt +239 -0
  133. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/HTTP_POST_Microsoft.txt +2 -0
  134. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Hyperion.txt +578 -0
  135. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/IIS.txt +187 -0
  136. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/JBoss.txt +5 -0
  137. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/JRun.txt +13 -0
  138. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/JavaServlets_Common.txt +3 -0
  139. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Joomla_exploitable.txt +1937 -0
  140. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/LotusNotes.txt +206 -0
  141. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Netware.txt +18 -0
  142. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Oracle9i.txt +60 -0
  143. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/OracleAppServer.txt +192 -0
  144. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/README.md +6 -0
  145. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Ruby_Rails.txt +121 -0
  146. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/SAP.txt +463 -0
  147. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Sharepoint.txt +1707 -0
  148. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/SiteMinder.txt +19 -0
  149. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/SunAppServerGlassfish.txt +51 -0
  150. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/SuniPlanet.txt +35 -0
  151. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Vignette.txt +73 -0
  152. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Weblogic.txt +160 -0
  153. data/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Websphere.txt +366 -0
  154. data/gems/server/lib/itsi/server/config/known_paths/wellknown-rfc5785.txt +30 -0
  155. data/gems/server/lib/itsi/server/config/known_paths.rb +17 -0
  156. data/gems/server/lib/itsi/server/config/middleware/_index.md +54 -0
  157. data/gems/server/lib/itsi/server/config/middleware/log_requests.md +63 -0
  158. data/gems/server/lib/itsi/server/config/middleware/log_requests.rb +33 -0
  159. data/gems/server/lib/itsi/server/config/middleware.rb +9 -0
  160. data/gems/server/lib/itsi/server/config/option.rb +9 -0
  161. data/gems/server/lib/itsi/server/config/options/_index.md +36 -0
  162. data/gems/server/lib/itsi/server/config/options/fiber_scheduler.md +35 -0
  163. data/gems/server/lib/itsi/server/config/options/fiber_scheduler.rb +18 -0
  164. data/gems/server/lib/itsi/server/config/options/threads.md +39 -0
  165. data/gems/server/lib/itsi/server/config/options/threads.rb +17 -0
  166. data/gems/server/lib/itsi/server/config/options/workers.md +43 -0
  167. data/gems/server/lib/itsi/server/config/options/workers.rb +17 -0
  168. data/gems/server/lib/itsi/server/config/typed_struct.rb +203 -0
  169. data/gems/server/lib/itsi/server/config.rb +124 -30
  170. data/gems/server/lib/itsi/server/signal_trap.rb +5 -1
  171. data/gems/server/lib/itsi/server/typed_handlers/source_parser.rb +1 -1
  172. data/gems/server/lib/itsi/server/version.rb +1 -1
  173. data/gems/server/lib/itsi/server.rb +27 -6
  174. data/gems/server/lib/ruby_lsp/itsi/addon.rb +64 -48
  175. data/gems/server/test/helpers/test_helper.rb +64 -5
  176. data/gems/server/test/middleware/test_log_requests.rb +17 -0
  177. data/gems/server/test/options/test_threads.rb +15 -0
  178. data/gems/server/test/options/test_workers.rb +18 -0
  179. data/gems/server/test/test_itsi_server.rb +81 -94
  180. data/itsi-scheduler-100.png +0 -0
  181. data/itsi-server-100.png +0 -0
  182. data/lib/itsi/version.rb +1 -1
  183. data/tasks.txt +36 -28
  184. metadata +147 -215
  185. data/crates/_index.md +0 -0
  186. data/crates/itsi_server/src/ruby_types/README.md +0 -21
  187. data/crates/itsi_server/test.md +0 -14
  188. data/docs/Itsi.rb +0 -17
  189. data/docs/content/about.md +0 -6
  190. data/docs/content/docs/_index.md +0 -18
  191. data/docs/content/docs/first-page.md +0 -9
  192. data/docs/content/docs/folder/_index.md +0 -10
  193. data/docs/content/docs/folder/leaf.md +0 -7
  194. data/foo/Itsi.rb +0 -122
  195. data/gems/_index.md +0 -18
  196. data/gems/scheduler/CHANGELOG.md +0 -5
  197. data/gems/scheduler/CODE_OF_CONDUCT.md +0 -139
  198. data/gems/scheduler/LICENSE.txt +0 -21
  199. data/gems/scheduler/_index.md +0 -7
  200. data/gems/server/CHANGELOG.md +0 -10
  201. data/gems/server/CODE_OF_CONDUCT.md +0 -139
  202. data/gems/server/LICENSE.txt +0 -21
  203. data/gems/server/_index.md +0 -6
  204. data/sandbox/README.md +0 -5
  205. data/sandbox/deploy/main.tf +0 -238
  206. data/sandbox/deploy/outputs.tf +0 -4
  207. data/sandbox/deploy/vars.tf +0 -11
  208. data/sandbox/falcon_benchmark/Gemfile +0 -10
  209. data/sandbox/falcon_benchmark/Gemfile.lock +0 -140
  210. data/sandbox/falcon_benchmark/config.ru +0 -54
  211. data/sandbox/itsi_file/Gemfile +0 -13
  212. data/sandbox/itsi_file/Gemfile.lock +0 -111
  213. data/sandbox/itsi_file/Itsi.rb +0 -473
  214. data/sandbox/itsi_file/call.json +0 -1
  215. data/sandbox/itsi_file/echo_client/Gemfile +0 -10
  216. data/sandbox/itsi_file/echo_client/Gemfile.lock +0 -27
  217. data/sandbox/itsi_file/echo_client/README.md +0 -95
  218. data/sandbox/itsi_file/echo_client/echo_client.rb +0 -164
  219. data/sandbox/itsi_file/echo_client/gen_proto.sh +0 -17
  220. data/sandbox/itsi_file/echo_client/lib/echo_pb.rb +0 -16
  221. data/sandbox/itsi_file/echo_client/lib/echo_services_pb.rb +0 -29
  222. data/sandbox/itsi_file/echo_client/run_client.rb +0 -64
  223. data/sandbox/itsi_file/echo_client/test_compressions.sh +0 -20
  224. data/sandbox/itsi_file/echo_service_nonitsi/Gemfile +0 -10
  225. data/sandbox/itsi_file/echo_service_nonitsi/Gemfile.lock +0 -79
  226. data/sandbox/itsi_file/echo_service_nonitsi/echo.proto +0 -26
  227. data/sandbox/itsi_file/echo_service_nonitsi/echo_pb.rb +0 -16
  228. data/sandbox/itsi_file/echo_service_nonitsi/echo_services_pb.rb +0 -29
  229. data/sandbox/itsi_file/echo_service_nonitsi/server.rb +0 -52
  230. data/sandbox/itsi_file/error.html +0 -2
  231. data/sandbox/itsi_file/organisations_controller.rb +0 -20
  232. data/sandbox/itsi_file/public/assets/image.png +0 -0
  233. data/sandbox/itsi_sandbox_async/Gemfile +0 -10
  234. data/sandbox/itsi_sandbox_async/Gemfile.lock +0 -69
  235. data/sandbox/itsi_sandbox_async/config.ru +0 -9
  236. data/sandbox/itsi_sandbox_hanami/.env +0 -2
  237. data/sandbox/itsi_sandbox_hanami/.gitignore +0 -6
  238. data/sandbox/itsi_sandbox_hanami/.rspec +0 -1
  239. data/sandbox/itsi_sandbox_hanami/Gemfile +0 -49
  240. data/sandbox/itsi_sandbox_hanami/Gemfile.lock +0 -440
  241. data/sandbox/itsi_sandbox_hanami/Guardfile +0 -9
  242. data/sandbox/itsi_sandbox_hanami/Procfile.dev +0 -2
  243. data/sandbox/itsi_sandbox_hanami/README.md +0 -1
  244. data/sandbox/itsi_sandbox_hanami/Rakefile +0 -3
  245. data/sandbox/itsi_sandbox_hanami/app/action.rb +0 -12
  246. data/sandbox/itsi_sandbox_hanami/app/actions/.keep +0 -0
  247. data/sandbox/itsi_sandbox_hanami/app/assets/css/app.css +0 -5
  248. data/sandbox/itsi_sandbox_hanami/app/assets/images/favicon.ico +0 -0
  249. data/sandbox/itsi_sandbox_hanami/app/assets/js/app.js +0 -1
  250. data/sandbox/itsi_sandbox_hanami/app/db/relation.rb +0 -10
  251. data/sandbox/itsi_sandbox_hanami/app/db/repo.rb +0 -10
  252. data/sandbox/itsi_sandbox_hanami/app/db/struct.rb +0 -10
  253. data/sandbox/itsi_sandbox_hanami/app/operation.rb +0 -9
  254. data/sandbox/itsi_sandbox_hanami/app/relations/.keep +0 -0
  255. data/sandbox/itsi_sandbox_hanami/app/repos/.keep +0 -0
  256. data/sandbox/itsi_sandbox_hanami/app/structs/.keep +0 -0
  257. data/sandbox/itsi_sandbox_hanami/app/templates/layouts/app.html.erb +0 -14
  258. data/sandbox/itsi_sandbox_hanami/app/view.rb +0 -9
  259. data/sandbox/itsi_sandbox_hanami/app/views/helpers.rb +0 -10
  260. data/sandbox/itsi_sandbox_hanami/bin/dev +0 -8
  261. data/sandbox/itsi_sandbox_hanami/config/app.rb +0 -8
  262. data/sandbox/itsi_sandbox_hanami/config/assets.js +0 -16
  263. data/sandbox/itsi_sandbox_hanami/config/db/migrate/.keep +0 -0
  264. data/sandbox/itsi_sandbox_hanami/config/db/seeds.rb +0 -15
  265. data/sandbox/itsi_sandbox_hanami/config/puma.rb +0 -47
  266. data/sandbox/itsi_sandbox_hanami/config/routes.rb +0 -7
  267. data/sandbox/itsi_sandbox_hanami/config/settings.rb +0 -9
  268. data/sandbox/itsi_sandbox_hanami/config.ru +0 -5
  269. data/sandbox/itsi_sandbox_hanami/db/.keep +0 -0
  270. data/sandbox/itsi_sandbox_hanami/lib/itsi_hanami/types.rb +0 -11
  271. data/sandbox/itsi_sandbox_hanami/lib/tasks/.keep +0 -0
  272. data/sandbox/itsi_sandbox_hanami/package-lock.json +0 -946
  273. data/sandbox/itsi_sandbox_hanami/package.json +0 -8
  274. data/sandbox/itsi_sandbox_hanami/spec/requests/root_spec.rb +0 -11
  275. data/sandbox/itsi_sandbox_hanami/spec/spec_helper.rb +0 -9
  276. data/sandbox/itsi_sandbox_hanami/spec/support/db/cleaning.rb +0 -42
  277. data/sandbox/itsi_sandbox_hanami/spec/support/db.rb +0 -10
  278. data/sandbox/itsi_sandbox_hanami/spec/support/features.rb +0 -5
  279. data/sandbox/itsi_sandbox_hanami/spec/support/operations.rb +0 -8
  280. data/sandbox/itsi_sandbox_hanami/spec/support/requests.rb +0 -13
  281. data/sandbox/itsi_sandbox_hanami/spec/support/rspec.rb +0 -61
  282. data/sandbox/itsi_sandbox_rack/Gemfile +0 -17
  283. data/sandbox/itsi_sandbox_rack/Gemfile.lock +0 -153
  284. data/sandbox/itsi_sandbox_rack/config.ru +0 -5
  285. data/sandbox/itsi_sandbox_rack_lint/Gemfile +0 -7
  286. data/sandbox/itsi_sandbox_rack_lint/Gemfile.lock +0 -27
  287. data/sandbox/itsi_sandbox_rack_lint/config.ru +0 -3
  288. data/sandbox/itsi_sandbox_rails/.dockerignore +0 -48
  289. data/sandbox/itsi_sandbox_rails/.gitattributes +0 -9
  290. data/sandbox/itsi_sandbox_rails/.github/dependabot.yml +0 -12
  291. data/sandbox/itsi_sandbox_rails/.github/workflows/ci.yml +0 -90
  292. data/sandbox/itsi_sandbox_rails/.gitignore +0 -35
  293. data/sandbox/itsi_sandbox_rails/.rubocop.yml +0 -8
  294. data/sandbox/itsi_sandbox_rails/.ruby-version +0 -1
  295. data/sandbox/itsi_sandbox_rails/Dockerfile +0 -69
  296. data/sandbox/itsi_sandbox_rails/Gemfile +0 -66
  297. data/sandbox/itsi_sandbox_rails/Gemfile.lock +0 -429
  298. data/sandbox/itsi_sandbox_rails/README.md +0 -24
  299. data/sandbox/itsi_sandbox_rails/Rakefile +0 -6
  300. data/sandbox/itsi_sandbox_rails/app/assets/config/manifest.js +0 -4
  301. data/sandbox/itsi_sandbox_rails/app/assets/images/.keep +0 -0
  302. data/sandbox/itsi_sandbox_rails/app/assets/stylesheets/application.css +0 -15
  303. data/sandbox/itsi_sandbox_rails/app/channels/application_cable/channel.rb +0 -4
  304. data/sandbox/itsi_sandbox_rails/app/channels/application_cable/connection.rb +0 -4
  305. data/sandbox/itsi_sandbox_rails/app/controllers/application_controller.rb +0 -4
  306. data/sandbox/itsi_sandbox_rails/app/controllers/concerns/.keep +0 -0
  307. data/sandbox/itsi_sandbox_rails/app/controllers/home_controller.rb +0 -66
  308. data/sandbox/itsi_sandbox_rails/app/controllers/live_controller.rb +0 -40
  309. data/sandbox/itsi_sandbox_rails/app/controllers/uploads_controller.rb +0 -29
  310. data/sandbox/itsi_sandbox_rails/app/helpers/application_helper.rb +0 -2
  311. data/sandbox/itsi_sandbox_rails/app/javascript/application.js +0 -3
  312. data/sandbox/itsi_sandbox_rails/app/javascript/controllers/application.js +0 -9
  313. data/sandbox/itsi_sandbox_rails/app/javascript/controllers/hello_controller.js +0 -7
  314. data/sandbox/itsi_sandbox_rails/app/javascript/controllers/index.js +0 -4
  315. data/sandbox/itsi_sandbox_rails/app/jobs/application_job.rb +0 -7
  316. data/sandbox/itsi_sandbox_rails/app/mailers/application_mailer.rb +0 -4
  317. data/sandbox/itsi_sandbox_rails/app/models/application_record.rb +0 -3
  318. data/sandbox/itsi_sandbox_rails/app/models/concerns/.keep +0 -0
  319. data/sandbox/itsi_sandbox_rails/app/models/post.rb +0 -2
  320. data/sandbox/itsi_sandbox_rails/app/views/layouts/application.html.erb +0 -23
  321. data/sandbox/itsi_sandbox_rails/app/views/layouts/mailer.html.erb +0 -13
  322. data/sandbox/itsi_sandbox_rails/app/views/layouts/mailer.text.erb +0 -1
  323. data/sandbox/itsi_sandbox_rails/app/views/pwa/manifest.json.erb +0 -22
  324. data/sandbox/itsi_sandbox_rails/app/views/pwa/service-worker.js +0 -26
  325. data/sandbox/itsi_sandbox_rails/bin/brakeman +0 -7
  326. data/sandbox/itsi_sandbox_rails/bin/bundle +0 -109
  327. data/sandbox/itsi_sandbox_rails/bin/docker-entrypoint +0 -13
  328. data/sandbox/itsi_sandbox_rails/bin/importmap +0 -4
  329. data/sandbox/itsi_sandbox_rails/bin/rails +0 -4
  330. data/sandbox/itsi_sandbox_rails/bin/rake +0 -4
  331. data/sandbox/itsi_sandbox_rails/bin/rubocop +0 -8
  332. data/sandbox/itsi_sandbox_rails/bin/setup +0 -37
  333. data/sandbox/itsi_sandbox_rails/config/application.rb +0 -27
  334. data/sandbox/itsi_sandbox_rails/config/boot.rb +0 -4
  335. data/sandbox/itsi_sandbox_rails/config/cable.yml +0 -10
  336. data/sandbox/itsi_sandbox_rails/config/credentials.yml.enc +0 -1
  337. data/sandbox/itsi_sandbox_rails/config/database.yml +0 -30
  338. data/sandbox/itsi_sandbox_rails/config/environment.rb +0 -5
  339. data/sandbox/itsi_sandbox_rails/config/environments/development.rb +0 -82
  340. data/sandbox/itsi_sandbox_rails/config/environments/production.rb +0 -106
  341. data/sandbox/itsi_sandbox_rails/config/environments/test.rb +0 -67
  342. data/sandbox/itsi_sandbox_rails/config/importmap.rb +0 -7
  343. data/sandbox/itsi_sandbox_rails/config/initializers/assets.rb +0 -12
  344. data/sandbox/itsi_sandbox_rails/config/initializers/content_security_policy.rb +0 -25
  345. data/sandbox/itsi_sandbox_rails/config/initializers/filter_parameter_logging.rb +0 -8
  346. data/sandbox/itsi_sandbox_rails/config/initializers/inflections.rb +0 -16
  347. data/sandbox/itsi_sandbox_rails/config/initializers/permissions_policy.rb +0 -13
  348. data/sandbox/itsi_sandbox_rails/config/locales/en.yml +0 -31
  349. data/sandbox/itsi_sandbox_rails/config/puma.rb +0 -34
  350. data/sandbox/itsi_sandbox_rails/config/routes.rb +0 -23
  351. data/sandbox/itsi_sandbox_rails/config/storage.yml +0 -34
  352. data/sandbox/itsi_sandbox_rails/config.ru +0 -6
  353. data/sandbox/itsi_sandbox_rails/db/migrate/20250301041554_create_posts.rb +0 -10
  354. data/sandbox/itsi_sandbox_rails/db/schema.rb +0 -23
  355. data/sandbox/itsi_sandbox_rails/db/seeds.rb +0 -9
  356. data/sandbox/itsi_sandbox_rails/lib/assets/.keep +0 -0
  357. data/sandbox/itsi_sandbox_rails/lib/tasks/.keep +0 -0
  358. data/sandbox/itsi_sandbox_rails/log/.keep +0 -0
  359. data/sandbox/itsi_sandbox_rails/public/404.html +0 -67
  360. data/sandbox/itsi_sandbox_rails/public/406-unsupported-browser.html +0 -66
  361. data/sandbox/itsi_sandbox_rails/public/422.html +0 -67
  362. data/sandbox/itsi_sandbox_rails/public/500.html +0 -66
  363. data/sandbox/itsi_sandbox_rails/public/icon.png +0 -0
  364. data/sandbox/itsi_sandbox_rails/public/icon.svg +0 -3
  365. data/sandbox/itsi_sandbox_rails/public/robots.txt +0 -1
  366. data/sandbox/itsi_sandbox_rails/storage/.keep +0 -0
  367. data/sandbox/itsi_sandbox_rails/test/application_system_test_case.rb +0 -5
  368. data/sandbox/itsi_sandbox_rails/test/channels/application_cable/connection_test.rb +0 -13
  369. data/sandbox/itsi_sandbox_rails/test/controllers/.keep +0 -0
  370. data/sandbox/itsi_sandbox_rails/test/fixtures/files/.keep +0 -0
  371. data/sandbox/itsi_sandbox_rails/test/helpers/.keep +0 -0
  372. data/sandbox/itsi_sandbox_rails/test/integration/.keep +0 -0
  373. data/sandbox/itsi_sandbox_rails/test/mailers/.keep +0 -0
  374. data/sandbox/itsi_sandbox_rails/test/models/.keep +0 -0
  375. data/sandbox/itsi_sandbox_rails/test/system/.keep +0 -0
  376. data/sandbox/itsi_sandbox_rails/test/test_helper.rb +0 -15
  377. data/sandbox/itsi_sandbox_rails/tmp/.keep +0 -0
  378. data/sandbox/itsi_sandbox_rails/tmp/pids/.keep +0 -0
  379. data/sandbox/itsi_sandbox_rails/tmp/storage/.keep +0 -0
  380. data/sandbox/itsi_sandbox_rails/vendor/.keep +0 -0
  381. data/sandbox/itsi_sandbox_rails/vendor/javascript/.keep +0 -0
  382. data/sandbox/itsi_sandbox_roda/Gemfile +0 -5
  383. data/sandbox/itsi_sandbox_roda/Gemfile.lock +0 -37
  384. data/sandbox/itsi_sandbox_roda/config.ru +0 -39
  385. data/sandbox/itsi_sinatra/Gemfile +0 -9
  386. data/sandbox/itsi_sinatra/Gemfile.lock +0 -81
  387. data/sandbox/itsi_sinatra/app.rb +0 -8
  388. data/sandbox/pebble/docker-compose.yml +0 -11
  389. data/sandbox/static_files/.env +0 -1
  390. data/sandbox/static_files/404.html +0 -25
  391. data/sandbox/static_files/_DSC0102.NEF.jpg +0 -0
  392. data/sandbox/static_files/about.html +0 -68
  393. data/sandbox/static_files/tiny.html +0 -1
  394. data/sandbox/static_files/writebook.zip +0 -0
@@ -1,8 +0,0 @@
1
- {
2
- "name": "itsi_hanami",
3
- "private": true,
4
- "type": "module",
5
- "dependencies": {
6
- "hanami-assets": "^2.2.1"
7
- }
8
- }
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe "Root", type: :request do
4
- it "is not found" do
5
- get "/"
6
-
7
- # Generate new action via:
8
- # `bundle exec hanami generate action home.index --url=/`
9
- expect(last_response.status).to be(404)
10
- end
11
- end
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "pathname"
4
- SPEC_ROOT = Pathname(__dir__).realpath.freeze
5
-
6
- ENV["HANAMI_ENV"] ||= "test"
7
- require "hanami/prepare"
8
-
9
- SPEC_ROOT.glob("support/**/*.rb").each { |f| require f }
@@ -1,42 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "database_cleaner/sequel"
4
-
5
- # Clean the databases between tests tagged as `:db`
6
- RSpec.configure do |config|
7
- # Returns all the configured databases across the app and its slices.
8
- #
9
- # Used in the before/after hooks below to ensure each database is cleaned between examples.
10
- #
11
- # Modify this proc (or any code below) if you only need specific databases cleaned.
12
- all_databases = -> {
13
- slices = [Hanami.app] + Hanami.app.slices.with_nested
14
-
15
- slices.each_with_object([]) { |slice, dbs|
16
- next unless slice.key?("db.rom")
17
-
18
- dbs.concat slice["db.rom"].gateways.values.map(&:connection)
19
- }.uniq
20
- }
21
-
22
- config.before :suite do
23
- all_databases.call.each do |db|
24
- DatabaseCleaner[:sequel, db: db].clean_with :truncation, except: ["schema_migrations"]
25
- end
26
- end
27
-
28
- config.before :each, :db do |example|
29
- strategy = example.metadata[:js] ? :truncation : :transaction
30
-
31
- all_databases.call.each do |db|
32
- DatabaseCleaner[:sequel, db: db].strategy = strategy
33
- DatabaseCleaner[:sequel, db: db].start
34
- end
35
- end
36
-
37
- config.after :each, :db do
38
- all_databases.call.each do |db|
39
- DatabaseCleaner[:sequel, db: db].clean
40
- end
41
- end
42
- end
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Tag feature spec examples as `:db`
4
- #
5
- # See support/db/cleaning.rb for how the database is cleaned around these `:db` examples.
6
- RSpec.configure do |config|
7
- config.define_derived_metadata(type: :feature) do |metadata|
8
- metadata[:db] = true
9
- end
10
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "capybara/rspec"
4
-
5
- Capybara.app = Hanami.app
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "dry/monads"
4
-
5
- RSpec.configure do |config|
6
- # Provide `Success` and `Failure` for testing operation results
7
- config.include Dry::Monads[:result]
8
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "rack/test"
4
-
5
- RSpec.shared_context "Rack::Test" do
6
- # Define the app for Rack::Test requests
7
- let(:app) { Hanami.app }
8
- end
9
-
10
- RSpec.configure do |config|
11
- config.include Rack::Test::Methods, type: :request
12
- config.include_context "Rack::Test", type: :request
13
- end
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.configure do |config|
4
- # Use the recommended non-monkey patched syntax.
5
- config.disable_monkey_patching!
6
-
7
- # Use and configure rspec-expectations.
8
- config.expect_with :rspec do |expectations|
9
- # This option will default to `true` in RSpec 4.
10
- expectations.include_chain_clauses_in_custom_matcher_descriptions = true
11
- end
12
-
13
- # Use and configure rspec-mocks.
14
- config.mock_with :rspec do |mocks|
15
- # Prevents you from mocking or stubbing a method that does not exist on a
16
- # real object.
17
- mocks.verify_partial_doubles = true
18
- end
19
-
20
- # This option will default to `:apply_to_host_groups` in RSpec 4.
21
- config.shared_context_metadata_behavior = :apply_to_host_groups
22
-
23
- # Limit a spec run to individual examples or groups you care about by tagging
24
- # them with `:focus` metadata. When nothing is tagged with `:focus`, all
25
- # examples get run.
26
- #
27
- # RSpec also provides aliases for `it`, `describe`, and `context` that include
28
- # `:focus` metadata: `fit`, `fdescribe` and `fcontext`, respectively.
29
- config.filter_run_when_matching :focus
30
-
31
- # Allow RSpec to persist some state between runs in order to support the
32
- # `--only-failures` and `--next-failure` CLI options. We recommend you
33
- # configure your source control system to ignore this file.
34
- config.example_status_persistence_file_path = "spec/examples.txt"
35
-
36
- # Uncomment this to enable warnings. This is recommended, but in some cases
37
- # may be too noisy due to issues in dependencies.
38
- # config.warnings = true
39
-
40
- # Show more verbose output when running an individual spec file.
41
- if config.files_to_run.one?
42
- config.default_formatter = "doc"
43
- end
44
-
45
- # Print the 10 slowest examples and example groups at the end of the spec run,
46
- # to help surface which specs are running particularly slow.
47
- config.profile_examples = 10
48
-
49
- # Run specs in random order to surface order dependencies. If you find an
50
- # order dependency and want to debug it, you can fix the order by providing
51
- # the seed, which is printed after each run:
52
- #
53
- # --seed 1234
54
- config.order = :random
55
-
56
- # Seed global randomization in this process using the `--seed` CLI option.
57
- # This allows you to use `--seed` to deterministically reproduce test failures
58
- # related to randomization by passing the same `--seed` value as the one that
59
- # triggered the failure.
60
- Kernel.srand config.seed
61
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- # gem "rails"
6
-
7
- gem "itsi-server", path: "../../gems/server"
8
- gem "itsi-scheduler", path: "../../gems/scheduler"
9
-
10
- gem 'unicorn'
11
- gem 'pitchfork'
12
- gem 'async'
13
- gem 'falcon'
14
- gem 'agoo'
15
- gem 'iodine'
16
- gem 'debug'
17
- gem 'pry-byebug'
@@ -1,153 +0,0 @@
1
- PATH
2
- remote: ../../gems/scheduler
3
- specs:
4
- itsi-scheduler (0.1.14)
5
- rb_sys (~> 0.9.91)
6
-
7
- PATH
8
- remote: ../../gems/server
9
- specs:
10
- itsi-server (0.1.14)
11
- rack (>= 1.6)
12
- rb_sys (~> 0.9.91)
13
-
14
- GEM
15
- remote: https://rubygems.org/
16
- specs:
17
- agoo (2.15.13)
18
- async (2.23.0)
19
- console (~> 1.29)
20
- fiber-annotation
21
- io-event (~> 1.9)
22
- metrics (~> 0.12)
23
- traces (~> 0.15)
24
- async-container (0.24.0)
25
- async (~> 2.22)
26
- async-container-supervisor (0.5.1)
27
- async-container (~> 0.22)
28
- async-service
29
- io-endpoint
30
- memory-leak (~> 0.5)
31
- async-http (0.87.0)
32
- async (>= 2.10.2)
33
- async-pool (~> 0.9)
34
- io-endpoint (~> 0.14)
35
- io-stream (~> 0.6)
36
- metrics (~> 0.12)
37
- protocol-http (~> 0.49)
38
- protocol-http1 (~> 0.30)
39
- protocol-http2 (~> 0.22)
40
- traces (~> 0.10)
41
- async-http-cache (0.4.5)
42
- async-http (~> 0.56)
43
- async-pool (0.10.3)
44
- async (>= 1.25)
45
- async-service (0.13.0)
46
- async
47
- async-container (~> 0.16)
48
- byebug (11.1.3)
49
- coderay (1.1.3)
50
- console (1.30.0)
51
- fiber-annotation
52
- fiber-local (~> 1.1)
53
- json
54
- date (3.4.1)
55
- debug (1.10.0)
56
- irb (~> 1.10)
57
- reline (>= 0.3.8)
58
- falcon (0.51.1)
59
- async
60
- async-container (~> 0.20)
61
- async-container-supervisor (~> 0.5.0)
62
- async-http (~> 0.75)
63
- async-http-cache (~> 0.4)
64
- async-service (~> 0.10)
65
- bundler
66
- localhost (~> 1.1)
67
- openssl (~> 3.0)
68
- protocol-http (~> 0.31)
69
- protocol-rack (~> 0.7)
70
- samovar (~> 2.3)
71
- fiber-annotation (0.2.0)
72
- fiber-local (1.1.0)
73
- fiber-storage
74
- fiber-storage (1.0.0)
75
- io-console (0.8.0)
76
- io-endpoint (0.15.2)
77
- io-event (1.9.0)
78
- io-stream (0.6.1)
79
- iodine (0.7.58)
80
- irb (1.15.1)
81
- pp (>= 0.6.0)
82
- rdoc (>= 4.0.0)
83
- reline (>= 0.4.2)
84
- json (2.10.1)
85
- kgio (2.11.4)
86
- localhost (1.3.1)
87
- logger (1.6.6)
88
- mapping (1.1.1)
89
- memory-leak (0.5.2)
90
- method_source (1.1.0)
91
- metrics (0.12.2)
92
- openssl (3.3.0)
93
- pitchfork (0.16.0)
94
- logger
95
- rack (>= 2.0)
96
- pp (0.6.2)
97
- prettyprint
98
- prettyprint (0.2.0)
99
- protocol-hpack (1.5.1)
100
- protocol-http (0.49.0)
101
- protocol-http1 (0.30.0)
102
- protocol-http (~> 0.22)
103
- protocol-http2 (0.22.1)
104
- protocol-hpack (~> 1.4)
105
- protocol-http (~> 0.47)
106
- protocol-rack (0.11.2)
107
- protocol-http (~> 0.43)
108
- rack (>= 1.0)
109
- pry (0.14.2)
110
- coderay (~> 1.1)
111
- method_source (~> 1.0)
112
- pry-byebug (3.10.1)
113
- byebug (~> 11.0)
114
- pry (>= 0.13, < 0.15)
115
- psych (5.2.3)
116
- date
117
- stringio
118
- rack (2.2.12)
119
- raindrops (0.20.1)
120
- rake-compiler-dock (1.9.1)
121
- rb_sys (0.9.111)
122
- rake-compiler-dock (= 1.9.1)
123
- rdoc (6.12.0)
124
- psych (>= 4.0.0)
125
- reline (0.6.0)
126
- io-console (~> 0.5)
127
- samovar (2.3.0)
128
- console (~> 1.0)
129
- mapping (~> 1.0)
130
- stringio (3.1.5)
131
- traces (0.15.2)
132
- unicorn (6.1.0)
133
- kgio (~> 2.6)
134
- raindrops (~> 0.7)
135
-
136
- PLATFORMS
137
- arm64-darwin-23
138
- ruby
139
-
140
- DEPENDENCIES
141
- agoo
142
- async
143
- debug
144
- falcon
145
- iodine
146
- itsi-scheduler!
147
- itsi-server!
148
- pitchfork
149
- pry-byebug
150
- unicorn
151
-
152
- BUNDLED WITH
153
- 2.6.3
@@ -1,5 +0,0 @@
1
- require 'itsi/scheduler'
2
- response = [200, { 'Content-Type' => 'text/plain' }, ['foo']].freeze
3
- run lambda { |env|
4
- response
5
- }
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- # gem "rails"
6
-
7
- gem "itsi-server", path: "../../gems/server"
@@ -1,27 +0,0 @@
1
- PATH
2
- remote: ../../gems/server
3
- specs:
4
- itsi-server (0.1.7)
5
- rack (>= 1.6)
6
- rb_sys (~> 0.9.91)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- rack (2.2.12)
12
- rake-compiler-dock (1.9.1)
13
- rb_sys (0.9.111)
14
- rake-compiler-dock (= 1.9.1)
15
-
16
- PLATFORMS
17
- aarch64-linux
18
- arm64-darwin
19
- x86_64-darwin
20
- x86_64-linux
21
- x86_64-linux-musl
22
-
23
- DEPENDENCIES
24
- itsi-server!
25
-
26
- BUNDLED WITH
27
- 2.6.3
@@ -1,3 +0,0 @@
1
- require 'uri'
2
- use Rack::Lint
3
- run ->(env) { [200, { 'content-type' => 'text/plain' }, ['Hello, World!']] }
@@ -1,48 +0,0 @@
1
- # See https://docs.docker.com/engine/reference/builder/#dockerignore-file for more about ignoring files.
2
-
3
- # Ignore git directory.
4
- /.git/
5
- /.gitignore
6
-
7
- # Ignore bundler config.
8
- /.bundle
9
-
10
- # Ignore all environment files (except templates).
11
- /.env*
12
- !/.env*.erb
13
-
14
- # Ignore all default key files.
15
- /config/master.key
16
- /config/credentials/*.key
17
-
18
- # Ignore all logfiles and tempfiles.
19
- /log/*
20
- /tmp/*
21
- !/log/.keep
22
- !/tmp/.keep
23
-
24
- # Ignore pidfiles, but keep the directory.
25
- /tmp/pids/*
26
- !/tmp/pids/.keep
27
-
28
- # Ignore storage (uploaded files in development and any SQLite databases).
29
- /storage/*
30
- !/storage/.keep
31
- /tmp/storage/*
32
- !/tmp/storage/.keep
33
-
34
- # Ignore assets.
35
- /node_modules/
36
- /app/assets/builds/*
37
- !/app/assets/builds/.keep
38
- /public/assets
39
-
40
- # Ignore CI service files.
41
- /.github
42
-
43
- # Ignore development files
44
- /.devcontainer
45
-
46
- # Ignore Docker-related files
47
- /.dockerignore
48
- /Dockerfile*
@@ -1,9 +0,0 @@
1
- # See https://git-scm.com/docs/gitattributes for more about git attribute files.
2
-
3
- # Mark the database schema as having been generated.
4
- db/schema.rb linguist-generated
5
-
6
- # Mark any vendored files as having been vendored.
7
- vendor/* linguist-vendored
8
- config/credentials/*.yml.enc diff=rails_credentials
9
- config/credentials.yml.enc diff=rails_credentials
@@ -1,12 +0,0 @@
1
- version: 2
2
- updates:
3
- - package-ecosystem: bundler
4
- directory: "/"
5
- schedule:
6
- interval: daily
7
- open-pull-requests-limit: 10
8
- - package-ecosystem: github-actions
9
- directory: "/"
10
- schedule:
11
- interval: daily
12
- open-pull-requests-limit: 10
@@ -1,90 +0,0 @@
1
- name: CI
2
-
3
- on:
4
- pull_request:
5
- push:
6
- branches: [ main ]
7
-
8
- jobs:
9
- scan_ruby:
10
- runs-on: ubuntu-latest
11
-
12
- steps:
13
- - name: Checkout code
14
- uses: actions/checkout@v4
15
-
16
- - name: Set up Ruby
17
- uses: ruby/setup-ruby@v1
18
- with:
19
- ruby-version: .ruby-version
20
- bundler-cache: true
21
-
22
- - name: Scan for common Rails security vulnerabilities using static analysis
23
- run: bin/brakeman --no-pager
24
-
25
- scan_js:
26
- runs-on: ubuntu-latest
27
-
28
- steps:
29
- - name: Checkout code
30
- uses: actions/checkout@v4
31
-
32
- - name: Set up Ruby
33
- uses: ruby/setup-ruby@v1
34
- with:
35
- ruby-version: .ruby-version
36
- bundler-cache: true
37
-
38
- - name: Scan for security vulnerabilities in JavaScript dependencies
39
- run: bin/importmap audit
40
-
41
- lint:
42
- runs-on: ubuntu-latest
43
- steps:
44
- - name: Checkout code
45
- uses: actions/checkout@v4
46
-
47
- - name: Set up Ruby
48
- uses: ruby/setup-ruby@v1
49
- with:
50
- ruby-version: .ruby-version
51
- bundler-cache: true
52
-
53
- - name: Lint code for consistent style
54
- run: bin/rubocop -f github
55
-
56
- test:
57
- runs-on: ubuntu-latest
58
-
59
- # services:
60
- # redis:
61
- # image: redis
62
- # ports:
63
- # - 6379:6379
64
- # options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
65
- steps:
66
- - name: Install packages
67
- run: sudo apt-get update && sudo apt-get install --no-install-recommends -y google-chrome-stable curl libjemalloc2 libvips sqlite3
68
-
69
- - name: Checkout code
70
- uses: actions/checkout@v4
71
-
72
- - name: Set up Ruby
73
- uses: ruby/setup-ruby@v1
74
- with:
75
- ruby-version: .ruby-version
76
- bundler-cache: true
77
-
78
- - name: Run tests
79
- env:
80
- RAILS_ENV: test
81
- # REDIS_URL: redis://localhost:6379/0
82
- run: bin/rails db:test:prepare test test:system
83
-
84
- - name: Keep screenshots from failed system tests
85
- uses: actions/upload-artifact@v4
86
- if: failure()
87
- with:
88
- name: screenshots
89
- path: ${{ github.workspace }}/tmp/screenshots
90
- if-no-files-found: ignore
@@ -1,35 +0,0 @@
1
- # See https://help.github.com/articles/ignoring-files for more about ignoring files.
2
- #
3
- # Temporary files generated by your text editor or operating system
4
- # belong in git's global ignore instead:
5
- # `$XDG_CONFIG_HOME/git/ignore` or `~/.config/git/ignore`
6
-
7
- # Ignore bundler config.
8
- /.bundle
9
-
10
- # Ignore all environment files (except templates).
11
- /.env*
12
- !/.env*.erb
13
-
14
- # Ignore all logfiles and tempfiles.
15
- /log/*
16
- /tmp/*
17
- !/log/.keep
18
- !/tmp/.keep
19
-
20
- # Ignore pidfiles, but keep the directory.
21
- /tmp/pids/*
22
- !/tmp/pids/
23
- !/tmp/pids/.keep
24
-
25
- # Ignore storage (uploaded files in development and any SQLite databases).
26
- /storage/*
27
- !/storage/.keep
28
- /tmp/storage/*
29
- !/tmp/storage/
30
- !/tmp/storage/.keep
31
-
32
- /public/assets
33
-
34
- # Ignore master key for decrypting credentials and more.
35
- /config/master.key
@@ -1,8 +0,0 @@
1
- # Omakase Ruby styling for Rails
2
- inherit_gem: { rubocop-rails-omakase: rubocop.yml }
3
-
4
- # Overwrite or add rules to create your own house style
5
- #
6
- # # Use `[a, [b, c]]` not `[ a, [ b, c ] ]`
7
- # Layout/SpaceInsideArrayLiteralBrackets:
8
- # Enabled: false
@@ -1 +0,0 @@
1
- ruby-3.4.2
@@ -1,69 +0,0 @@
1
- # syntax = docker/dockerfile:1
2
-
3
- # This Dockerfile is designed for production, not development. Use with Kamal or build'n'run by hand:
4
- # docker build -t my-app .
5
- # docker run -d -p 80:80 -p 443:443 --name my-app -e RAILS_MASTER_KEY=<value from config/master.key> my-app
6
-
7
- # Make sure RUBY_VERSION matches the Ruby version in .ruby-version
8
- ARG RUBY_VERSION=3.4.2
9
- FROM docker.io/library/ruby:$RUBY_VERSION-slim AS base
10
-
11
- # Rails app lives here
12
- WORKDIR /rails
13
-
14
- # Install base packages
15
- RUN apt-get update -qq && \
16
- apt-get install --no-install-recommends -y curl libjemalloc2 libvips sqlite3 && \
17
- rm -rf /var/lib/apt/lists /var/cache/apt/archives
18
-
19
- # Set production environment
20
- ENV RAILS_ENV="production" \
21
- BUNDLE_DEPLOYMENT="1" \
22
- BUNDLE_PATH="/usr/local/bundle" \
23
- BUNDLE_WITHOUT="development"
24
-
25
- # Throw-away build stage to reduce size of final image
26
- FROM base AS build
27
-
28
- # Install packages needed to build gems
29
- RUN apt-get update -qq && \
30
- apt-get install --no-install-recommends -y build-essential git pkg-config && \
31
- rm -rf /var/lib/apt/lists /var/cache/apt/archives
32
-
33
- # Install application gems
34
- COPY Gemfile Gemfile.lock ./
35
- RUN bundle install && \
36
- rm -rf ~/.bundle/ "${BUNDLE_PATH}"/ruby/*/cache "${BUNDLE_PATH}"/ruby/*/bundler/gems/*/.git && \
37
- bundle exec bootsnap precompile --gemfile
38
-
39
- # Copy application code
40
- COPY . .
41
-
42
- # Precompile bootsnap code for faster boot times
43
- RUN bundle exec bootsnap precompile app/ lib/
44
-
45
- # Precompiling assets for production without requiring secret RAILS_MASTER_KEY
46
- RUN SECRET_KEY_BASE_DUMMY=1 ./bin/rails assets:precompile
47
-
48
-
49
-
50
-
51
- # Final stage for app image
52
- FROM base
53
-
54
- # Copy built artifacts: gems, application
55
- COPY --from=build "${BUNDLE_PATH}" "${BUNDLE_PATH}"
56
- COPY --from=build /rails /rails
57
-
58
- # Run and own only the runtime files as a non-root user for security
59
- RUN groupadd --system --gid 1000 rails && \
60
- useradd rails --uid 1000 --gid 1000 --create-home --shell /bin/bash && \
61
- chown -R rails:rails db log storage tmp
62
- USER 1000:1000
63
-
64
- # Entrypoint prepares the database.
65
- ENTRYPOINT ["/rails/bin/docker-entrypoint"]
66
-
67
- # Start the server by default, this can be overwritten at runtime
68
- EXPOSE 3000
69
- CMD ["./bin/rails", "server"]