{"id":18597632,"url":"https://github.com/felipedemacedo/redmine_cluster","last_synced_at":"2026-04-13T00:42:58.216Z","repository":{"id":86518109,"uuid":"91043185","full_name":"felipedemacedo/redmine_cluster","owner":"felipedemacedo","description":null,"archived":false,"fork":false,"pushed_at":"2019-07-28T22:07:53.000Z","size":31,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-13T00:42:54.758Z","etag":null,"topics":["cluster","docker","rails","redmine","ruby","ruby-on-rails"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/felipedemacedo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-05-12T02:33:56.000Z","updated_at":"2019-07-22T17:35:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"d5e52e6f-7793-41c8-a1ae-68f30f17487f","html_url":"https://github.com/felipedemacedo/redmine_cluster","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/felipedemacedo/redmine_cluster","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipedemacedo%2Fredmine_cluster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipedemacedo%2Fredmine_cluster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipedemacedo%2Fredmine_cluster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipedemacedo%2Fredmine_cluster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/felipedemacedo","download_url":"https://codeload.github.com/felipedemacedo/redmine_cluster/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipedemacedo%2Fredmine_cluster/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31735541,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-12T22:19:12.206Z","status":"ssl_error","status_checked_at":"2026-04-12T22:18:33.088Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cluster","docker","rails","redmine","ruby","ruby-on-rails"],"created_at":"2024-11-07T01:28:51.839Z","updated_at":"2026-04-13T00:42:58.194Z","avatar_url":"https://github.com/felipedemacedo.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Redmine\n\nA simple modification from the latest version of https://github.com/docker-library/redmine\n\n## List of modifications\n\n* Hability to quickly deal with large amounts of files in \"files\" directory of Redmine application. The original version would spend too much time changing file permissions of ALL already existing Redmine attachments before starting the web server. You can now manually trigger the ownership change of files using the command:\n```console\ndocker exec -ti redmine bash -c 'exec /files_permissions.sh'\n```\n* Added mail sending with PostFix (felipederodrigues/redmine_cluster:latest_postfix or felipederodrigues/redmine_cluster:passenger_postfix)\n* Fixed Tini to properly deal with Passenger (zombie reaping is now ON!)\n* Set timezone of server to Brazil\n* Added Redmine Agile Plugin (https://www.redmineup.com/pages/plugins/agile). To install it:\n```console\ndocker exec -ti redmine bash -c 'exec /usr/src/redmine/plugins/install_agile_plugin.sh'\ndocker restart redmine\n```\n* Added Passenger native support for Ruby.\n\n## How to use it\n\nThis command starts a Docker container with privileged access and name 'redmine' at port 80. \nAll the files inside /path/in/host (outside the container) will be mounted on /usr/src/redmine/files (inside the container) wich is the folder for attachments on Redmine.\nAlso this option felipederodrigues/redmine_cluster:passenger comes with Passenger Standalone instead of Webrick. Passenger is much more indicated for production environments.\n\n```console\ndocker run -d \\\n--name redmine \\\n--privileged \\\n-p 80:3000 \\\n-v /path/in/host:/usr/src/redmine/files \\\nfelipederodrigues/redmine_cluster:passenger\n```\n\nThis command starts a Docker container named 'redmine' at port 80. \nAlso this configuration lets you set the database information from outside the container (database.yml file).\n\n```console\ndocker run -d \\\n--name redmine \\\n-p 80:3000 \\\n-v /home/ubuntu/cluster_redmine/config/database.yml:/usr/src/redmine/config/database.yml \\\nfelipederodrigues/redmine_cluster:passenger\n```\n\nExample of database.yml file:\nDon't forget to insert host (x.x.x.x) and password (yourPassowrd) information. This file tells your Redmine application how to connect into database.\n```console\n# Default setup is given for MySQL with ruby1.9.\n# Examples for PostgreSQL, SQLite3 and SQL Server can be found at the end.\n# Line indentation must be 2 spaces (no tabs).\n\nproduction:\n  adapter: mysql2\n  database: redmine\n  host: x.x.x.x\n  #port: 3116\n  username: redmine\n  password: \"yourPassword\"\n  encoding: utf8\n\ndevelopment:\n  adapter: mysql2\n  database: redmine_development\n  host: x.x.x.x\n  #port: 3116\n  username: redmine\n  password: \"yourPass\"\n  encoding: utf8\n\n# Warning: The database defined as \"test\" will be erased and\n# re-generated from your development database when you run \"rake\".\n# Do not set this db to the same as development or production.\ntest:\n  adapter: mysql2\n  database: redmine_test\n  host: xxx.xxx.xxx.xxx\n  #port: 3116\n  username: redmine\n  password: \"yourPassword\"\n  encoding: utf8\n\n# PostgreSQL configuration example\n#production:\n#  adapter: postgresql\n#  database: redmine\n#  host: 172.17.0.3\n#  username: postgres\n#  password: \"postgres\"\n\n# SQLite3 configuration example\n#production:\n#  adapter: sqlite3\n#  database: db/redmine.sqlite3\n\n# SQL Server configuration example\n#production:\n#  adapter: sqlserver\n#  database: redmine\n#  host: 172.17.0.3\n#  username: jenkins\n#  password: jenkins\n```\n\n\nThis command starts a Docker container named 'redmine' at port 80. \nAlso this configuration lets you set the website url to [server]/redmine (environment.rb file).\n\n```console\ndocker run -d \\\n-h redmine \\\n--restart always \\\n--name redmine \\\n-p 80:3000 \\\n-v /home/ubuntu/cluster_redmine/config/environment.rb:/usr/src/redmine/config/environment.rb \\\nfelipederodrigues/redmine_cluster:passenger\n```\n\nExample of environment.rb file with \"/redmine\" URL redirect:\n```console\n# Load the Rails application\nrequire File.expand_path('../application', __FILE__)\n\n# Make sure there's no plugin in vendor/plugin before starting\nvendor_plugins_dir = File.join(Rails.root, \"vendor\", \"plugins\")\nif Dir.glob(File.join(vendor_plugins_dir, \"*\")).any?\n  $stderr.puts \"Plugins in vendor/plugins (#{vendor_plugins_dir}) are no longer allowed. \" +\n    \"Please, put your Redmine plugins in the `plugins` directory at the root of your \" +\n    \"Redmine directory (#{File.join(Rails.root, \"plugins\")})\"\n  exit 1\nend\n\nRedmineApp::Application.routes.default_scope = \"/redmine\"\n# Initialize the Rails application\nRails.application.initialize!\n```\n\nThis command starts a Docker container named 'redmine' at port 80. It also includes port 25 for mail sending with PostFix. \nMail configuration must be defined or else Redmine won't be able to send mails with PostFix. (configuration.yml file).\n\n\n```console\ndocker run -d \\\n--name redmine \\\n-p 80:3000 -p 25:25 \\\n-v /home/ubuntu/cluster_redmine/config/configuration.yml:/usr/src/redmine/config/configuration.yml \\\nfelipederodrigues/redmine_cluster:passenger_postfix\n```\n\nExample of configuration.yml file:\n```console\n# = Redmine configuration file\n#\n# Each environment has it's own configuration options.  If you are only\n# running in production, only the production block needs to be configured.\n# Environment specific configuration options override the default ones.\n#\n# Note that this file needs to be a valid YAML file.\n# DO NOT USE TABS! Use 2 spaces instead of tabs for identation.\n\n# default configuration options for all environments\ndefault:\n  # Outgoing emails configuration\n  # See the examples below and the Rails guide for more configuration options:\n  # http://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration\n  email_delivery:\n\n  # ==== Simple SMTP server at localhost\n  #\n  #  email_delivery:\n  #    delivery_method: :smtp\n  #    smtp_settings:\n  #      address: \"localhost\"\n  #      port: 25\n  #\n  # ==== SMTP server at example.com using LOGIN authentication and checking HELO for foo.com\n  #\n  #  email_delivery:\n  #    delivery_method: :smtp\n  #    smtp_settings:\n  #      address: \"example.com\"\n  #      port: 25\n  #      authentication: :login\n  #      domain: 'foo.com'\n  #      user_name: 'myaccount'\n  #      password: 'password'\n  #\n  # ==== SMTP server at example.com using PLAIN authentication\n  #\n  #  email_delivery:\n  #    delivery_method: :smtp\n  #    smtp_settings:\n  #      address: \"example.com\"\n  #      port: 25\n  #      authentication: :plain\n  #      domain: 'example.com'\n  #      user_name: 'myaccount'\n  #      password: 'password'\n  #\n  # ==== SMTP server at using TLS (GMail)\n  # This might require some additional configuration. See the guides at:\n  # http://www.redmine.org/projects/redmine/wiki/EmailConfiguration\n  #\n  #  email_delivery:\n  #    delivery_method: :smtp\n  #    smtp_settings:\n  #      enable_starttls_auto: true\n  #      address: \"smtp.gmail.com\"\n  #      port: 587\n  #      domain: \"smtp.gmail.com\" # 'your.domain.com' for GoogleApps\n  #      authentication: :plain\n  #      user_name: \"your_email@gmail.com\"\n  #      password: \"your_password\"\n  #\n  # ==== Sendmail command\n  #\n    delivery_method: :sendmail\n    smtp_settings:\n      address: 127.0.0.1\n      port: 25\n      domain: your-domain.anything\n      user_name: redmine\n      password: abc\n\n\n  # Absolute path to the directory where attachments are stored.\n  # The default is the 'files' directory in your Redmine instance.\n  # Your Redmine instance needs to have write permission on this\n  # directory.\n  # Examples:\n  # attachments_storage_path: /var/redmine/files\n  # attachments_storage_path: D:/redmine/files\n  attachments_storage_path:\n\n  # Configuration of the autologin cookie.\n  # autologin_cookie_name: the name of the cookie (default: autologin)\n  # autologin_cookie_path: the cookie path (default: /)\n  # autologin_cookie_secure: true sets the cookie secure flag (default: false)\n  autologin_cookie_name:\n  autologin_cookie_path:\n  autologin_cookie_secure:\n\n  # Configuration of SCM executable command.\n  #\n  # Absolute path (e.g. /usr/local/bin/hg) or command name (e.g. hg.exe, bzr.exe)\n  # On Windows + CRuby, *.cmd, *.bat (e.g. hg.cmd, bzr.bat) does not work.\n  #\n  # On Windows + JRuby 1.6.2, path which contains spaces does not work.\n  # For example, \"C:\\Program Files\\TortoiseHg\\hg.exe\".\n  # If you want to this feature, you need to install to the path which does not contains spaces.\n  # For example, \"C:\\TortoiseHg\\hg.exe\".\n  #\n  # Examples:\n  # scm_subversion_command: svn                                       # (default: svn)\n  # scm_mercurial_command:  C:\\Program Files\\TortoiseHg\\hg.exe        # (default: hg)\n  # scm_git_command:        /usr/local/bin/git                        # (default: git)\n  # scm_cvs_command:        cvs                                       # (default: cvs)\n  # scm_bazaar_command:     bzr.exe                                   # (default: bzr)\n  # scm_darcs_command:      darcs-1.0.9-i386-linux                    # (default: darcs)\n  #\n  scm_subversion_command:\n  scm_mercurial_command:\n  scm_git_command:\n  scm_cvs_command:\n  scm_bazaar_command:\n  scm_darcs_command:\n\n  # SCM paths validation.\n  #\n  # You can configure a regular expression for each SCM that will be used to\n  # validate the path of new repositories (eg. path entered by users with the\n  # \"Manage repositories\" permission and path returned by reposman.rb).\n  # The regexp will be wrapped with \\A \\z, so it must match the whole path.\n  # And the regexp is case sensitive.\n  #\n  # You can match the project identifier by using %project% in the regexp.\n  #\n  # You can also set a custom hint message for each SCM that will be displayed\n  # on the repository form instead of the default one.\n  #\n  # Examples:\n  # scm_subversion_path_regexp: file:///svnpath/[a-z0-9_]+\n  # scm_subversion_path_info: SVN URL (eg. file:///svnpath/foo)\n  #\n  # scm_git_path_regexp: /gitpath/%project%(\\.[a-z0-9_])?/\n  #\n  scm_subversion_path_regexp:\n  scm_mercurial_path_regexp:\n  scm_git_path_regexp:\n  scm_cvs_path_regexp:\n  scm_bazaar_path_regexp:\n  scm_darcs_path_regexp:\n  scm_filesystem_path_regexp:\n\n  # Absolute path to the SCM commands errors (stderr) log file.\n  # The default is to log in the 'log' directory of your Redmine instance.\n  # Example:\n  # scm_stderr_log_file: /var/log/redmine_scm_stderr.log\n  scm_stderr_log_file:\n\n  # Key used to encrypt sensitive data in the database (SCM and LDAP passwords).\n  # If you don't want to enable data encryption, just leave it blank.\n  # WARNING: losing/changing this key will make encrypted data unreadable.\n  #\n  # If you want to encrypt existing passwords in your database:\n  # * set the cipher key here in your configuration file\n  # * encrypt data using 'rake db:encrypt RAILS_ENV=production'\n  #\n  # If you have encrypted data and want to change this key, you have to:\n  # * decrypt data using 'rake db:decrypt RAILS_ENV=production' first\n  # * change the cipher key here in your configuration file\n  # * encrypt data using 'rake db:encrypt RAILS_ENV=production'\n  database_cipher_key:\n\n  # Set this to false to disable plugins' assets mirroring on startup.\n  # You can use `rake redmine:plugins:assets` to manually mirror assets\n  # to public/plugin_assets when you install/upgrade a Redmine plugin.\n  #\n  #mirror_plugins_assets_on_startup: false\n\n  # Your secret key for verifying cookie session data integrity. If you\n  # change this key, all old sessions will become invalid! Make sure the\n  # secret is at least 30 characters and all random, no regular words or\n  # you'll be exposed to dictionary attacks.\n  #\n  # If you have a load-balancing Redmine cluster, you have to use the\n  # same secret token on each machine.\n  #secret_token: 'change it to a long random string'\n\n  # Requires users to re-enter their password for sensitive actions (editing\n  # of account data, project memberships, application settings, user, group,\n  # role, auth source management and project deletion). Disabled by default.\n  # Timeout is set in minutes.\n  #\n  #sudo_mode: true\n  #sudo_mode_timeout: 15\n\n  # Absolute path (e.g. /usr/bin/convert, c:/im/convert.exe) to\n  # the ImageMagick's `convert` binary. Used to generate attachment thumbnails.\n  #imagemagick_convert_command:\n\n  # Configuration of RMagick font.\n  #\n  # Redmine uses RMagick in order to export gantt png.\n  # You don't need this setting if you don't install RMagick.\n  #\n  # In CJK (Chinese, Japanese and Korean),\n  # in order to show CJK characters correctly,\n  # you need to set this configuration.\n  #\n  # Because there is no standard font across platforms in CJK,\n  # you need to set a font installed in your server.\n  #\n  # This setting is not necessary in non CJK.\n  #\n  # Examples for Japanese:\n  #   Windows:\n  #     rmagick_font_path: C:\\windows\\fonts\\msgothic.ttc\n  #   Linux:\n  #     rmagick_font_path: /usr/share/fonts/ipa-mincho/ipam.ttf\n  #\n  rmagick_font_path:\n\n  # Maximum number of simultaneous AJAX uploads\n  #max_concurrent_ajax_uploads: 2\n\n  # Configure OpenIdAuthentication.store\n  #\n  # allowed values: :memory, :file, :memcache\n  #openid_authentication_store: :memory\n\n# specific configuration options for production environment\n# that overrides the default ones\nproduction:\n\n# specific configuration options for development environment\n# that overrides the default ones\ndevelopment:\n\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelipedemacedo%2Fredmine_cluster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffelipedemacedo%2Fredmine_cluster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelipedemacedo%2Fredmine_cluster/lists"}