This guide explains a safe installation workflow for Redmine on your own VPS or dedicated server. It is designed for teams that want control over data, backups, and infrastructure.
Before starting, define your stack clearly so installation and maintenance stay predictable:
If you are unsure, choose a standard production setup first, then optimize later. Frequent stack changes introduce avoidable downtime risk.
Use a freshly provisioned server whenever possible. Verify these minimum conditions:
In the Redmine 1-Click wizard, choose your stack and configuration values (domain, SSL mode, admin credentials, and Redmine version). Then generate your script and inspect it before execution.
Transfer the generated script to your server and execute it as root. The installer runs unattended on Ubuntu 24.04 LTS and Debian 13 — no manual dependency installation is required.
# From your local machine
scp redmine1click.sh user@YOUR_SERVER_IP:/tmp/
# On the server
sudo bash /tmp/redmine1click.sh
Allow 2–10 minutes for completion. On servers where Ruby must be compiled from source, it may take up to 10 minutes. Watch the terminal output for any lines marked ERROR or FAILED.
bundle install.https://your-domain.com and log in with the admin credentials you configured.sudo reboot and reload the page.cp /tmp/redmine1click.log ~/redmine1click-install.log.Most installation failures fall into a small number of categories. Check these before re-running the script.
Caused by missing build tools. Run the following before retrying:
sudo apt update && sudo apt install -y build-essential libssl-dev libreadline-dev zlib1g-dev
Verify the database service is running:
sudo systemctl status mariadb # or: sudo systemctl status postgresql
If stopped, check /var/log/mysql/error.log or /var/log/postgresql/ for the root cause before restarting.
Let's Encrypt requires your domain to resolve to the server IP before the script runs. Verify DNS propagation:
dig +short your-domain.com
The result must match your server's public IP. If it does not, wait for DNS to propagate and re-run.
Check the web server error log and confirm the module is active:
sudo apache2ctl -M | grep passenger # Apache
sudo nginx -t # Nginx
Treat the first successful install as a baseline. A documented baseline is what makes scaling and incident response fast.