Use this checklist before running the installer to avoid failed deployments and to size your Redmine server correctly.
Contents
The installer is compatible exclusively with the following Linux distributions:
| Distribution | Version | Codename |
|---|---|---|
| Debian | 13 | Trixie |
| Debian | 12 | Bookworm |
| Ubuntu | 24.04 LTS | Noble Numbat |
| Ubuntu | 22.04 LTS | Jammy Jellyfish |
Other distributions or older versions are not supported. The script detects the OS version automatically and will warn if it does not match.
Running it on a server that already has a database engine, Ruby, or a web server can produce failures or data loss. Below is a summary of the risks for each case.
| Preexisting software | What happens |
|---|---|
| MariaDB | The system package manager updates it (apt on Debian/Ubuntu). Existing databases and users are preserved. If the Redmine user already exists, the password from the wizard will not be applied to it. |
| MySQL | The package manager may remove MySQL and replace it with MariaDB. All MySQL databases will be lost. No backup is made and no warning is shown. |
| PostgreSQL | apt updates it. However, if a user or database with the configured names already exists, the installer aborts at the database setup step. |
| Ruby (apt / RVM / other) |
The installer first tries to use OS packages for the required Ruby
version. If the exact version is not available, it falls back to an
isolated rbenv install in /usr/local/rbenv
and provides wrapper binaries in /usr/local/bin for that path.
|
| Apache / Nginx on port 80 or 443 | The step that starts the new web server fails and aborts the installation. The existing web server must be stopped first. |
If MySQL is running on the server, do not proceed without a full backup. The installer will silently replace it with MariaDB.
The script must be run as root. Without administrator privileges the installer stops immediately.
| Resource | Minimum | Notes |
|---|---|---|
| CPU | 1 vCPU | 2 vCPUs recommended, especially if Ruby fallback compilation is needed |
| RAM | 512 MB | The script automatically creates a 2 GB swap file if less than 1 GB of swap is available |
| Disk | 10 GB free | Ruby + gems + Redmine + database + optional swap |
The server requires outbound Internet access during installation to download:
| Source | What is downloaded |
|---|---|
| Distribution mirrors | System packages via apt |
redmine.org | Redmine source archive |
github.com | rbenv and ruby-build (fallback Ruby path) |
rubygems.org | Ruby gems (Bundler, Passenger, etc.) |
letsencrypt.org / acme-v02.api.letsencrypt.org | SSL certificate issuance via Certbot (only with Let's Encrypt option) |
api.ipify.org, checkip.amazonaws.com | Public IP auto-detection (only when the Domain field is left empty) |
| Port | Protocol | Required for |
|---|---|---|
| 80 | TCP (inbound) | Serving Redmine over HTTP; required by Let's Encrypt for domain validation |
| 443 | TCP (inbound) | HTTPS (only if SSL is enabled) |
Make sure your firewall and/or cloud security group allows inbound traffic on these ports before running the installer.
None (HTTP only) — No additional requirements.
Let's Encrypt (automatic)
Manual certificate
.crt / .pem) and private key (.key) must already exist on the server at the paths you specify in the installer wizard.The installer expects a bare domain or bare IP address:
| Valid | Not supported |
|---|---|
redmine.example.com | redmine.example.com/redmine |
203.0.113.10 | 203.0.113.10/redmine |
example.com | http://example.com |
sudoexample.com, not example.com:8080/redmine