== Redmine installation Redmine - project management software Copyright (C) 2006- Jean-Philippe Lang https://www.redmine.org/ == Requirements * Ruby 3.1, 3.2, 3.3 * A database: * MySQL (tested with MySQL 8) * PostgreSQL (tested with PostgreSQL 14) * SQLite3 (tested with SQLite 3.11) * SQLServer (tested with SQLServer 2012) Optional: * SCM binaries (e.g. svn, git...), for repository browsing (must be available in PATH) * ImageMagick (to enable Gantt export to png images) Supported browsers: The current version of Firefox, Safari, Chrome, Chromium and Microsoft Edge. == Installation 1. Uncompress the program archive 2. Create an empty utf8 encoded database: "redmine" for example 3. Configure the database parameters in config/database.yml for the "production" environment (default database is MySQL) 4. Install the required gems by running: bundle install --without development test Only the gems that are needed by the adapters you've specified in your database configuration file are actually installed (eg. if your config/database.yml uses the 'mysql2' adapter, then only the mysql2 gem will be installed). Don't forget to re-run `bundle install` when you change config/database.yml for using other database adapters. If you need to load some gems that are not required by Redmine core (eg. fcgi), you can create a file named Gemfile.local at the root of your redmine directory. It will be loaded automatically when running `bundle install`. 5. Generate a session store secret Redmine stores session data in cookies by default, which requires a secret to be generated. Under the application main directory run: bundle exec rake generate_secret_token Alternatively, you can store this secret in config/secrets.yml: https://guides.rubyonrails.org/upgrading_ruby_on_rails.html#config-secrets-yml 6. Compile assets (optional) Compile the assets such as stylesheets, javascripts and images into the public/assets directory for web server delivery. By default, Redmine automatically recompiles assets in production mode when the application starts. This behavior can be controlled using the "config.assets.redmine_detect_update" flag in the configuration file. To manually compile assets or if automatic compilation is disabled: using: bundle exec rake assets:precompile RAILS_ENV="production" If deploying to a sub-uri, set the relative URL root as follows: bundle exec rake assets:precompile RAILS_ENV="production" RAILS_RELATIVE_URL_ROOT=/sub-uri If you experience issues with missing assets in the browser, try removing the public/assets directory before re-running the precompile: bundle exec rake assets:clobber RAILS_ENV="production" 7. Create the database structure Under the application main directory run: bundle exec rake db:migrate RAILS_ENV="production" It will create all the tables and an administrator account. 8. Setting up permissions (Windows users have to skip this section) The user who runs Redmine must have write permission on the following subdirectories: files, log, tmp & public/assets. Assuming you run Redmine with a user named "redmine": sudo chown -R redmine:redmine files log tmp public/assets sudo chmod -R 755 files log tmp public/assets 9. Test the installation by running the Puma web server Under the main application directory run: ruby bin/rails server -e production Once Puma has started, point your browser to http://localhost:3000/ You should now see the application welcome page. 10. Use the default administrator account to log in: login: admin password: admin Go to "Administration" to load the default configuration data (roles, trackers, statuses, workflow) and to adjust the application settings == Database server configuration When using MySQL with Redmine 5.1.1 or later, it is necessary to change the transaction isolation level from the default REPEATABLE READ to READ_COMMITTED. To modify this setting, either change the database configuration file or alter the settings on your MySQL server. To set the transaction isolation level in the database configuration file, add transaction_isolation variable as below: production: adapter: mysql2 database: redmine host: localhost [...] variables: transaction_isolation: "READ-COMMITTED" More details can be found in https://www.redmine.org/projects/redmine/wiki/MySQL_configuration. == SMTP server Configuration Copy config/configuration.yml.example to config/configuration.yml and edit this file to adjust your SMTP settings. Do not forget to restart the application after any change to this file. Please do not enter your SMTP settings in environment.rb. == References * https://www.redmine.org/wiki/redmine/RedmineInstall * https://www.redmine.org/wiki/redmine/EmailConfiguration * https://www.redmine.org/wiki/redmine/RedmineSettings * https://www.redmine.org/wiki/redmine/RedmineRepositories * https://www.redmine.org/wiki/redmine/RedmineReceivingEmails * https://www.redmine.org/wiki/redmine/RedmineReminderEmails * https://www.redmine.org/wiki/redmine/RedmineLDAP