### Complete Quick Start Docker Setup Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/docker/README.md Copies the docker-compose override example, runs the backend setup command (migrations, seeding, dependencies), installs frontend npm dependencies, and starts the frontend container in detached mode to complete the quick start setup. ```shell cp docker-compose.override.example.yml docker-compose.override.yml docker compose run --rm backend setup docker compose run --rm frontend npm install docker compose up -d frontend ``` -------------------------------- ### Clone OpenProject Repository and Configure Environment (Quick Start) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/docker/README.md Clones the OpenProject repository from GitHub, navigates into the project directory, and copies the environment example file to `.env` as the first steps in the quick start setup. ```shell git clone https://github.com/opf/openproject.git cd openproject cp .env.example .env ``` -------------------------------- ### Copying Configuration Example (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Copies the example general configuration file (`configuration.yml.example`) to the active configuration file (`configuration.yml`) in the OpenProject config directory. ```shell [openproject@host] cp config/configuration.yml.example config/configuration.yml ``` -------------------------------- ### Dockerfile for Adding Plugins to Slim OpenProject Image Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/docker/README.md Provides a Dockerfile example based on the slim OpenProject image, showing the initial steps to copy a custom Gemfile.plugins for plugin installation. ```dockerfile FROM openproject/openproject:15 AS plugin # If installing a local plugin (using `path:` in the `Gemfile.plugins` above), # you will have to copy the plugin code into the container here and use the # path inside of the container. Say for `/app/vendor/plugins/openproject-slack`: # COPY /path/to/my/local/openproject-slack /app/vendor/plugins/openproject-slack COPY Gemfile.plugins /app/ # If the plugin uses any external NPM dependencies you have to install them here. ``` -------------------------------- ### Dockerfile for Adding Plugins to Standard OpenProject Image Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/docker/README.md Provides a Dockerfile example based on the standard OpenProject image, showing how to copy a custom Gemfile.plugins and install the declared gems. ```dockerfile FROM openproject/openproject:15 # If installing a local plugin (using `path:` in the `Gemfile.plugins` above), # you will have to copy the plugin code into the container here and use the # path inside of the container. Say for `/app/vendor/plugins/openproject-slack`: # COPY /path/to/my/local/openproject-slack /app/vendor/plugins/openproject-slack COPY Gemfile.plugins /app/ # If the plugin uses any external NPM dependencies you have to install them here. # RUN npm add npm * RUN bundle config unset deployment && bundle install && bundle config set deployment 'true' RUN ./docker/prod/setup/precompile-assets.sh ``` -------------------------------- ### Example Node Version Output (Text) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Shows an example of the expected output when checking the installed Node.js version using the `node --version` command. ```text v22.15.0 ``` -------------------------------- ### Copying Database Configuration Example (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Copies the example database configuration file (`database.yml.example`) to the active configuration file (`database.yml`) in the OpenProject config directory. ```shell [openproject@host] cp config/database.yml.example config/database.yml ``` -------------------------------- ### Start OpenProject Configuration Wizard Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/packaged/README.md Starts the OpenProject initial configuration wizard. `reconfigure` runs interactively and saves choices, while `configure` runs non-interactively using saved settings from `/etc/openproject/installer.dat`. ```shell sudo openproject reconfigure #interactive - manual choices are stored in /etc/openproject/installer.dat sudo openproject configure #non-interactive - using values stored in /etc/openproject/installer.dat ``` -------------------------------- ### Setup Database and Install Dependencies (Step-by-step) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/docker/README.md Runs the backend setup command to initialize the database (migrations, seeding) and install server dependencies, then installs frontend web dependencies using npm as part of the step-by-step setup process. ```shell # This will start the database as a dependency # and then run the migrations and seeders, # and will install all required server dependencies docker compose run --rm backend setup # This will install the web dependencies docker compose run --rm frontend npm install ``` -------------------------------- ### Example PostgreSQL Database Configuration (YAML) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Provides an example configuration for `config/database.yml` using PostgreSQL, specifying adapter, encoding, database name, pool size, username, and password for the production environment. ```yaml production: adapter: postgresql encoding: unicode database: openproject pool: 5 username: openproject password: openproject ``` -------------------------------- ### Example Email Notification Configuration (YAML) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Provides an example configuration for `config/configuration.yml` to set up email notifications using SMTP, specifically configured for a Gmail account in the production environment. ```yaml production: #main level email_delivery_method: :smtp #settings for the production environment smtp_address: smtp.gmail.com smtp_port: 587 smtp_domain: smtp.gmail.com smtp_user_name: ***@gmail.com smtp_password: **** smtp_enable_starttls_auto: true smtp_authentication: plain ``` -------------------------------- ### Install BIM Dependencies in Worker Container (Optional Quick Start) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/docker/README.md Executes the `setup-bim` script as the root user inside the `worker` container to install necessary dependencies and tools required for BIM model conversion in the optional BIM edition quick start setup. ```shell docker compose exec -u root worker setup-bim ``` -------------------------------- ### Define OpenProject Plugins in Gemfile.plugins Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/docker/README.md Example content for a Gemfile.plugins file used to declare additional OpenProject plugins to be included in a custom Docker image. ```ruby group :opf_plugins do gem "openproject-slack", git: "https://github.com/opf/openproject-slack.git", branch: "dev" end ``` -------------------------------- ### Adding Plugins/Customizations to OpenProject Dockerfile Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/docker/README.md Example Dockerfile instructions for integrating custom code, assets, and dependencies (like plugins) into the OpenProject Docker image, typically following a multi-stage build where the plugin is built in a previous stage. ```dockerfile RUN bundle config unset deployment && bundle install && bundle config set deployment 'true'\nRUN ./docker/prod/setup/precompile-assets.sh\n\nFROM openproject/openproject:15-slim\n\nCOPY --from=plugin /usr/bin/git /usr/bin/git\nCOPY --chown=$APP_USER:$APP_USER --from=plugin /app/vendor/bundle /app/vendor/bundle\nCOPY --chown=$APP_USER:$APP_USER --from=plugin /usr/local/bundle /usr/local/bundle\nCOPY --chown=$APP_USER:$APP_USER --from=plugin /app/public/assets /app/public/assets\nCOPY --chown=$APP_USER:$APP_USER --from=plugin /app/config/frontend_assets.manifest.json /app/config/frontend_assets.manifest.json\nCOPY --chown=$APP_USER:$APP_USER --from=plugin /app/Gemfile.* /app/ ``` -------------------------------- ### Install Kerberos Server Packages (Debian/Ubuntu) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/kerberos/README.md Installs the necessary Kerberos KDC, admin server, and configuration packages using the apt package manager on Debian or Ubuntu systems. ```shell apt install krb5-kdc krb5-admin-server krb5-config -y ``` -------------------------------- ### Start Frontend and Backend Containers (Step-by-step) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/docker/README.md Starts both the `frontend` and `backend` services defined in the docker compose file, including their dependencies, as part of the step-by-step setup. ```shell docker compose up frontend backend ``` -------------------------------- ### Apache Configuration for OpenProject Subdirectory Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/docker/README.md Provides an example Apache VirtualHost configuration for serving OpenProject from a subdirectory, including HTTP to HTTPS redirection and proxying requests to the backend. ```apache ServerName example.com RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^/?(openproject.*)$ https://%{SERVER_NAME}/$1 [R,L] ServerName example.com SSLEngine on SSLCertificateFile /etc/ssl/crt/server.crt SSLCertificateKeyFile /etc/ssl/crt/server.key RewriteEngine on RewriteRule "^/openproject$" "/openproject/" [R,L] ProxyRequests off RequestHeader set X-Forwarded-Proto 'https' ProxyPreserveHost On ProxyPass http://127.0.0.1:8080/openproject/ ProxyPassReverse http://127.0.0.1:8080/openproject/ ``` -------------------------------- ### Run OpenProject Docker Container (Quick Start) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/docker/README.md Runs the OpenProject Docker container interactively for a quick start. Maps port 8080 on the host to port 80 in the container and sets basic environment variables like secret key, hostname, and language. Useful for initial setup and debugging. ```shell docker run -it -p 8080:80 \ -e OPENPROJECT_SECRET_KEY_BASE=secret \ -e OPENPROJECT_HOST__NAME=localhost:8080 \ -e OPENPROJECT_HTTPS=false \ -e OPENPROJECT_DEFAULT__LANGUAGE=en \ openproject/openproject:15 ``` -------------------------------- ### Start Frontend Container (Step-by-step) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/docker/README.md Starts only the `frontend` service defined in the docker compose file, including its dependencies like the database, as part of the step-by-step setup. ```shell docker compose up frontend ``` -------------------------------- ### Install and Configure Passenger Gem (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Switches to the 'openproject' user, navigates to the OpenProject directory, installs the Passenger gem, and runs the interactive installer to integrate Passenger with Apache. ```shell [root@ubuntu] su openproject --login [openproject@ubuntu] cd ~/openproject [openproject@ubuntu] gem install passenger [openproject@ubuntu] passenger-install-apache2-module ``` -------------------------------- ### Install PostgreSQL Database Server (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Installs the PostgreSQL database server, its contributions package, and the development libraries required for connecting to PostgreSQL from applications like OpenProject. ```shell [root@host] apt-get install postgresql postgresql-contrib libpq-dev ``` -------------------------------- ### Example OpenProject Log Entry (Text) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/operation/monitoring/README.md An example of the default key_value log format used by OpenProject in production, showing details of a single request. ```text I, [2023-11-14T09:21:15.136914 #56791] INFO -- : [87a5dceb-0560-4e17-8577-2822106dfc00] method=GET path=/ format=html controller=HomescreenController action=index status=200 allocations=133182 duration=237.82 view=107.45 db=116.50 user=85742 ``` -------------------------------- ### Install bundle (standard) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/profiling/README.md Runs the standard bundle install command to install dependencies, including the newly added 'thin' gem. ```Shell bundle install ``` -------------------------------- ### Nginx Configuration for OpenProject Subdirectory Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/docker/README.md Provides an example Nginx server block configuration for serving OpenProject from a subdirectory, including HTTP to HTTPS redirection and proxying requests to the backend. ```nginx server { listen 80; server_name example.com; location /openproject { return 301 https://$host$request_uri; } } server { listen 443 ssl; server_name example.com; ssl_certificate /etc/ssl/crt/server.crt; ssl_certificate_key /etc/ssl/crt/server.key; proxy_redirect off; location /openproject { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_pass http://127.0.0.1:8080/openproject; } } ``` -------------------------------- ### Installing nodenv and node-build (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Clones the nodenv and node-build repositories, adds nodenv to the PATH, and initializes it in the user's profile. ```shell [openproject@host] git clone https://github.com/OiNutter/nodenv.git ~/.nodenv [openproject@host] echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.profile [openproject@host] echo 'eval "$(nodenv init -)"' >> ~/.profile [openproject@host] source ~/.profile [openproject@host] git clone https://github.com/OiNutter/node-build.git ~/.nodenv/plugins/node-build ``` -------------------------------- ### Install OpenProject System Dependencies (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Updates package lists and installs essential build tools, libraries, and utilities required for OpenProject, including components for image processing, document conversion, and XML/XSLT handling. ```shell [root@host] apt-get update -y [root@host] apt-get install -y zlib1g-dev build-essential \ libssl-dev libreadline-dev \ libyaml-dev libgdbm-dev \ libncurses5-dev automake \ libtool bison libffi-dev git curl \ poppler-utils unrtf tesseract-ocr catdoc \ libxml2 libxml2-dev libxslt1-dev # nokogiri \ imagemagick ``` -------------------------------- ### Defining OpenProject Plug-in Dependency in Ruby Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Example of how to add an OpenProject plug-in dependency to the Gemfile.plugins file, specifying the gem name, source repository URL, and a specific version tag. ```Ruby # Required by backlogs gem "openproject-meeting", git: "https://github.com/finnlabs/openproject-meeting.git", :tag => "v4.2.2" ``` -------------------------------- ### Start OpenProject Docker Container by Name Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/docker/README.md Starts a previously stopped OpenProject Docker container identified by the name 'openproject'. This resumes the container from its last state. ```shell docker start openproject ``` -------------------------------- ### Installing OpenProject Community Edition (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Changes directory to home, clones the OpenProject repository (stable/9 branch, depth 1), changes into the openproject directory, updates rubygems, installs bundler, installs ruby gems with specific groups excluded, and installs npm dependencies. ```shell [openproject@host] cd ~ [openproject@host] git clone https://github.com/opf/openproject.git --branch stable/9 --depth 1 [openproject@host] cd openproject # Ensure rubygems is up-to-date for bundler 2 [openproject@host] gem update --system [openproject@host] gem install bundler # Replace mysql with postgresql if you had to install MySQL [openproject@host] bundle install --deployment --without mysql2 sqlite development test therubyracer docker [openproject@host] npm install ``` -------------------------------- ### Install Apache GSSAPI Module (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/kerberos/README.md Installs the `libapache2-mod-auth-gssapi` package using apt, which provides the necessary Apache module for GSSAPI/Kerberos authentication. This is a prerequisite for configuring Kerberos SSO with Apache. ```shell apt install libapache2-mod-auth-gssapi ``` -------------------------------- ### Start OpenProject profiling (Development) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/profiling/README.md Starts the OpenProject application using the 'thin' web server with rack profiling enabled. This command is suitable for profiling in a development environment. ```Shell OPENPROJECT_RACK_PROFILER_ENABLED=true thin start ``` -------------------------------- ### Install bundle (custom Gemfile) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/profiling/README.md Runs bundle install using a custom gemfile specified by the CUSTOM_PLUGIN_GEMFILE environment variable, ensuring 'thin' and other profiling gems are installed from that file. ```Shell CUSTOM_PLUGIN_GEMFILE=Gemfile.profiling bundle install ``` -------------------------------- ### Finishing OpenProject Installation - Shell Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/macos/README.md Executes the `bin/setup_dev` script, which handles post-clone setup steps including installing gem and node dependencies, linking plugin modules, and exporting frontend localization files. ```shell bin/setup_dev ``` -------------------------------- ### Copy Docker Compose Override Example (Step-by-step) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/docker/README.md Copies the `docker-compose.override.example.yml` file to `docker-compose.override.yml` to allow customization of docker compose settings, such as port mappings, in the step-by-step setup. ```shell cp docker-compose.override.example.yml docker-compose.override.yml ``` -------------------------------- ### Saving OpenProject Docker Image to Tarball Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/docker/README.md Command to pull the specified OpenProject Docker image and save it as a compressed tar archive. This file can be transferred to an offline system for installation. ```shell docker pull openproject/openproject:15 && docker save openproject/openproject:15 | gzip > openproject-stable.tar.gz ``` -------------------------------- ### Install Memcached Caching Server (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Installs the memcached package, which is used as a caching server for OpenProject. ```shell [root@host] apt-get install -y memcached ``` -------------------------------- ### Install PostgreSQL Database (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/macos/README.md Installs the PostgreSQL database server using Homebrew. PostgreSQL is the recommended database for OpenProject development setups. ```Shell $ brew install postgresql ``` -------------------------------- ### Set OpenProject Edition to BIM (Optional Quick Start) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/docker/README.md Sets the `OPENPROJECT_EDITION` environment variable to `bim` in the `.env` file to enable features specific to the OpenProject BIM Edition during the quick start setup. ```shell OPENPROJECT_EDITION=bim ``` -------------------------------- ### Copy Environment Example File (Step-by-step) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/docker/README.md Copies the `.env.example` file to `.env` to create the primary configuration file for environment variables used by docker compose in the step-by-step setup. ```shell cp .env.example .env ``` -------------------------------- ### Install OpenProject Package (Debian) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/packaged/README.md Updates the APT package index again to include the newly added OpenProject repository and then installs the OpenProject package on Debian 11. ```shell apt update apt install openproject ``` -------------------------------- ### Finishing OpenProject Installation (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Changes directory to the openproject root, sets the RAILS_ENV to production, and runs rake tasks to create the database, run migrations, seed the database, and precompile assets. ```shell [openproject@host] cd ~/openproject [openproject@host] RAILS_ENV="production" ./bin/rake db:create [openproject@host] RAILS_ENV="production" ./bin/rake db:migrate [openproject@host] RAILS_ENV="production" ./bin/rake db:seed [openproject@host] RAILS_ENV="production" ./bin/rake assets:precompile ``` -------------------------------- ### Clone OpenProject Repository (Step-by-step) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/docker/README.md Clones the OpenProject repository from GitHub as the initial step in the detailed step-by-step development setup guide. ```shell git clone https://github.com/opf/openproject.git ``` -------------------------------- ### Start Frontend Container Detached (Step-by-step) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/docker/README.md Starts the `frontend` service defined in the docker compose file in detached mode (in the background) as an alternative way to start the stack in the step-by-step setup. ```shell docker compose up -d frontend ``` -------------------------------- ### Install Apache and Dependencies (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Installs the Apache2 web server and necessary development libraries (libcurl4-gnutls-dev, apache2-dev, libapr1-dev, libaprutil1-dev) required for compiling Passenger modules. Also sets execute permissions for others on the OpenProject user's home directory. ```shell [root@host] apt-get install -y apache2 libcurl4-gnutls-dev \ apache2-dev libapr1-dev \ libaprutil1-dev [root@ubuntu] chmod o+x "/home/openproject" ``` -------------------------------- ### Starting psql in Temporary Container (All-in-one Container) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/operation/restoring/README.md Starts an interactive psql session inside the temporary postgres container as the 'postgres' user. ```shell docker exec -it postgres psql -U postgres ``` -------------------------------- ### List Docker Services (Initial) (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/docker/README.md Output from the docker service ls command showing the initial state of the OpenProject services after deployment, indicating the number of replicas for each service. ```shell docker service ls ID NAME MODE REPLICAS IMAGE PORTS kpdoc86ggema openproject_cache replicated 1/1 memcached:latest qrd8rx6ybg90 openproject_cron replicated 1/1 openproject/openproject:15 cvgd4c4at61i openproject_db replicated 1/1 postgres:13 uvtfnc9dnlbn openproject_proxy replicated 1/1 openproject/openproject:15 *:8080->80/tcp g8e3lannlpb8 openproject_seeder replicated 0/1 openproject/openproject:15 canb3m7ilkjn openproject_web replicated 1/1 openproject/openproject:15 7ovn0sbu8a7w openproject_worker replicated 1/1 openproject/openproject:15 ``` -------------------------------- ### Running Post-Installation Steps for OpenProject Plug-ins in Shell Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Sequence of shell commands executed after modifying Gemfile.plugins to install Ruby gems and Node.js packages, run database migrations and seeding, and precompile assets in the production environment. ```Shell [openproject@all] cd ~/openproject [openproject@all] bundle install [openproject@all] npm install [openproject@all] RAILS_ENV="production" ./bin/rake db:migrate [openproject@all] RAILS_ENV="production" ./bin/rake db:seed [openproject@all] RAILS_ENV="production" ./bin/rake assets:precompile ``` -------------------------------- ### Install OpenProject Package (SLES) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/packaged/README.md Uses ZYPP to install the OpenProject package on SLES 15 after the OpenProject repository has been added and the cache refreshed. ```shell sudo zypper install openproject ``` -------------------------------- ### Run OpenProject Development Setup Script Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/linux/README.md Executes the `bin/setup_dev` script, which handles installing gem dependencies, node_modules, linking plugin frontend modules, and exporting translation files. ```shell bin/setup_dev ``` -------------------------------- ### Enable EPEL Repository (CentOS/RHEL) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/packaged/README.md Enables the CodeReady Builder repository (required for EPEL) and installs the EPEL release package on CentOS 9 / RHEL 9 to gain access to additional software packages. ```shell sudo subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm # if using CentOS 9: # sudo dnf config-manager --set-enabled crb # sudo dnf install https://dl.fedoraproject.org/pub/epel/epel{,-next}-release-latest-9.noarch.rpm ``` -------------------------------- ### Launch OpenProject Docker Stack (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/docker/README.md Command to deploy the OpenProject Docker stack defined in the openproject-stack.yml file using docker stack deploy. ```shell docker stack deploy -c openproject-stack.yml openproject ``` -------------------------------- ### Install rbenv and ruby-build (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Switches to the 'openproject' user, clones the rbenv and ruby-build repositories, and configures the shell environment to use rbenv. ```shell [root@host] su openproject --login [openproject@host] git clone https://github.com/sstephenson/rbenv.git ~/.rbenv [openproject@host] echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile [openproject@host] echo 'eval "$(rbenv init -)"' >> ~/.profile [openproject@host] source ~/.profile [openproject@host] git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build ``` -------------------------------- ### Add OpenProject APT Repository (Debian) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/packaged/README.md Downloads the OpenProject APT repository file for stable version 15 on Debian 11 and saves it to the sources.list.d directory, making the OpenProject package available for installation. ```shell wget -O /etc/apt/sources.list.d/openproject.list \ https://dl.packager.io/srv/opf/openproject/stable/15/installer/debian/11.repo ``` -------------------------------- ### Example OpenProject Database Configuration (YAML) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/linux/README.md Provides a sample YAML configuration for `config/database.yml`, defining default settings and specific configurations for development and test environments using PostgreSQL. ```yaml default: &default adapter: postgresql encoding: unicode host: localhost username: openproject password: openproject-dev-password development: <<: *default database: openproject_dev test: <<: *default database: openproject_test ``` -------------------------------- ### Starting OpenProject Web and Worker (Docker Compose) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/operation/restoring/README.md Starts the 'web' and 'worker' containers again after the database restoration and seeding process is finished. ```shell docker-compose start web worker ``` -------------------------------- ### Install OpenProject Package (CentOS/RHEL) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/packaged/README.md Uses YUM to install the OpenProject package on CentOS 9 / RHEL 9 after the OpenProject and EPEL repositories have been added and enabled. ```shell sudo yum install openproject ``` -------------------------------- ### Example Apache VirtualHost for External SSL Termination Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/packaged/README.md This Apache VirtualHost configuration demonstrates setting up a reverse proxy that terminates SSL/TLS on the proxy server and forwards requests to an internal OpenProject instance. It includes directives for logging, proxying, forwarding headers like X-Forwarded-Proto and Host, and configuring SSL certificates. ```apache ServerName openproject.example.com # Logging LogLevel Warn ErrorLog /var/log/httpd/openproject.example.com-error.log CustomLog /var/log/httpd/openproject.example.com-access.log combined # Reverse Proxy ProxyPreserveHost On ProxyRequests Off ProxyPass / http://[OPENPROJECT-HOST-IP]/ ProxyPassReverse / http://[OPENPROJECT-HOST-IP]/ #ProxyPass / https://[OPENPROJECT-HOST-IP]/ # if openproject's internal apache2 server/ssl is YES #ProxyPassReverse / https://[OPENPROJECT-HOST-IP]/ # if openproject's internal apache2 server/ssl is YES # Request Header RequestHeader set "X-Forwarded-Proto" https # SSL Certificate that was created by LetsEncrypt Include /etc/letsencrypt/options-ssl-apache.conf SSLEngine On #SSLProxyEngine On # if openproject's internal apache2 server/ssl is YES SSLCertificateFile /etc/letsencrypt/live/openproject.example.com/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/openproject.example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/openproject.example.com/chain.pem # optional ``` -------------------------------- ### Verify Ruby, Bundler, Node, and NPM Installations (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/macos/README.md Executes commands to check the installed and active versions of Ruby, Bundler, Node.js, and NPM. This step confirms that the necessary development tools are correctly installed and configured in the environment. ```Shell $ ruby --version bundler --version node --version npm --version ``` -------------------------------- ### Markdown Syntax for Alert Box Source: https://github.com/jneiva0/openproject/blob/dev/docs/contributions-guide/contribution-documentation/documentation-style-guide/README.md Provides the Markdown syntax for creating a standard 'Note' alert box in OpenProject documentation, including a link to a trial installation guide. ```Markdown > **Note**: If you do not have an OpenProject installation yet, please visit our site on [how to create an OpenProject trial installation](../../../enterprise-guide/enterprise-cloud-guide/create-cloud-trial/). ``` -------------------------------- ### Install PostgreSQL Database and Client (Debian/Ubuntu) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/linux/README.md This command installs the PostgreSQL database server and client packages using the system's package manager. PostgreSQL is required as the database backend for OpenProject. ```shell [dev@debian]# sudo apt-get install postgresql postgresql-client ``` -------------------------------- ### Create OpenProject System User (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Creates a dedicated system group and user named 'openproject' with a home directory and sets a password for the new user. ```shell sudo groupadd openproject sudo useradd --create-home --gid openproject openproject sudo passwd openproject #(enter desired password) ``` -------------------------------- ### Start OpenProject profiling (Development, custom Gemfile) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/profiling/README.md Starts OpenProject with 'thin' and profiling enabled, specifically loading gems from a custom gemfile defined by CUSTOM_PLUGIN_GEMFILE. This is for development mode profiling. ```Shell CUSTOM_PLUGIN_GEMFILE=gemfile.profiling OPENPROJECT_RACK_PROFILER_ENABLED=true thin start ``` -------------------------------- ### Create PostgreSQL User for OpenProject (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Creates a new PostgreSQL database user named 'openproject' and prompts for a password for this user. ```shell [postgres@host] createuser -W openproject ``` -------------------------------- ### Create PostgreSQL Database for OpenProject (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Creates a new PostgreSQL database named 'openproject' and assigns ownership of this database to the 'openproject' PostgreSQL user. ```shell [postgres@host] createdb -O openproject openproject ``` -------------------------------- ### Add OpenProject ZYPP Repository (SLES) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/packaged/README.md Downloads the OpenProject ZYPP repository file for stable version 15 on SLES 15 and saves it to the zypp/repos.d directory, making the OpenProject package available for installation. ```shell wget -O /etc/zypp/repos.d/openproject.repo \ https://dl.packager.io/srv/opf/openproject/stable/15/installer/sles/15.repo ``` -------------------------------- ### Executing OpenProject Database Seeding in Production Environment in Shell Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Shell command to run the database seeding task specifically in the production environment. This task populates the database with initial data, including the default admin user, and is crucial for initial setup and troubleshooting login issues. ```Shell [openproject@all] RAILS_ENV="production" ./bin/rake db:seed ``` -------------------------------- ### Update APT and Install Dependencies (Debian) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/packaged/README.md Updates the APT package index and installs necessary packages (apt-transport-https, ca-certificates, wget, gpg) required for adding and using HTTPS repositories on Debian 11. ```shell su - apt update apt install apt-transport-https ca-certificates wget gpg ``` -------------------------------- ### Starting Seeder Container (Docker Compose) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/operation/restoring/README.md Starts the 'seeder' container, which is responsible for running database migrations and potentially seeding initial data after a database restore. ```shell docker-compose start seeder ``` -------------------------------- ### Example Database Configuration - YAML Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/macos/README.md Provides an example structure for the `config/database.yml` file, showing default settings and environment-specific overrides for development and test databases using PostgreSQL. It includes a note about disabling socket encryption on macOS. ```yaml default: &default adapter: postgresql encoding: unicode # Socket encryption must be disabled on macOS. There is an old bug in which forked processes cause problems on a Mac. # TL;DR: set this flag, otherwise Ruby will crash whenever a route is accessed. # Visit https://github.com/ged/ruby-pg/issues/311 to enter the rabbit hole. gssencmode: disable host: localhost username: openproject password: openproject-dev-password development: <<: *default database: openproject_dev test: <<: *default database: openproject_test ``` -------------------------------- ### Install and Initialize rbenv and ruby-build (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/macos/README.md Installs rbenv and ruby-build using Homebrew, then initializes rbenv to manage Ruby versions. These tools are essential for installing and switching between different Ruby versions required for OpenProject development. ```Shell $ brew install rbenv ruby-build $ rbenv init ``` -------------------------------- ### Start OpenProject profiling (Production) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/profiling/README.md Starts OpenProject in production mode with 'thin' and profiling enabled. Requires setting SECRET_KEY_BASE, RAILS_ENV=production, and typically uses a custom gemfile for profiling gems. ```Shell SECRET_KEY_BASE='abcd' RAILS_ENV=production CUSTOM_PLUGIN_GEMFILE=gemfile.profiling OPENPROJECT_RACK_PROFILER_ENABLED=true thin start ``` -------------------------------- ### Starting psql in Container (Docker Compose) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/operation/restoring/README.md Starts an interactive psql session inside the specified postgres container as the 'postgres' user, allowing execution of SQL commands for restoration. ```shell docker exec -it compose_db_1 psql -U postgres ``` -------------------------------- ### Install nodenv node-build Plugin Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/linux/README.md Clones the node-build plugin repository into the nodenv plugins directory, enabling nodenv to install Node.js versions from source. ```shell git clone https://github.com/nodenv/node-build.git $(nodenv root)/plugins/node-build ``` -------------------------------- ### Example Database URL Output (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/misc/time-entries-corrupted-by-10-4/README.md An example of the output returned by the openproject config:get DATABASE_URL command, showing the format of the connection string. ```shell postgres://openproject:L0BuQvlagjmxdOl6785kqwsKnfCEx1dv@127.0.0.1:45432/openproject ``` -------------------------------- ### Enable Apache Passenger Module (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Enables the Passenger module in Apache by creating symbolic links from mods-available to mods-enabled. ```shell [root@openproject] a2enmod passenger ``` -------------------------------- ### Run OpenProject Configuration Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation-faq/README.md Execute the OpenProject configuration wizard. This is essential after upgrades to apply database migrations and re-apply other configuration settings. ```shell sudo openproject configure ``` -------------------------------- ### Example GitLab Webhook URL (URL) Source: https://github.com/jneiva0/openproject/blob/dev/modules/gitlab_integration/README.md Shows an example URL for configuring the GitLab webhook. It points to the OpenProject webhook endpoint (`/webhooks/gitlab`) and includes the generated API access token as a GET parameter `key`. ```url http://openproject-url.com/webhooks/gitlab?key=[previous_generated_access_token_key] ``` -------------------------------- ### Restart Apache Service (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Restarts the Apache2 web server service to apply the new configuration changes. ```shell [root@host] service apache2 restart ``` -------------------------------- ### Get GitLab Initial Root Password (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/docker/README.md Executes a command inside the running `gitlab` container to retrieve the initial root user password from the /etc/gitlab/initial_root_password file. This is used after the GitLab service has started. ```shell docker compose --project-directory docker/dev/gitlab exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password ``` -------------------------------- ### Get OpenProject Database URL (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/misc/migration/README.md Retrieves the configured database connection URL for the OpenProject installation using the `openproject config:get` command. This is useful for identifying the database parameters (user, host, name) from the old installation. ```Shell openproject config:get DATABASE_URL ``` -------------------------------- ### Add OpenProject YUM Repository (CentOS/RHEL) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/packaged/README.md Downloads the OpenProject YUM repository file for stable version 15 on EL 9 (CentOS 9 / RHEL 9) and saves it to the yum.repos.d directory, making the OpenProject package available for installation. ```shell sudo wget -O /etc/yum.repos.d/openproject.repo \ https://dl.packager.io/srv/opf/openproject/stable/15/installer/el/9.repo ``` -------------------------------- ### Seeding Database with Specific Language (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Demonstrates how to seed the OpenProject database with data localized to a specific language (French in this example) by setting the `OPENPROJECT_DEFAULT_LANGUAGE` environment variable before running the `db:seed` rake task. ```shell [openproject@all] RAILS_ENV="production" OPENPROJECT_DEFAULT_LANGUAGE=fr ./bin/rake db:seed ``` -------------------------------- ### Verify Ruby, Bundler, Node, and npm Versions Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/linux/README.md Executes commands to display the currently active versions of Ruby, Bundler, Node.js, and npm to confirm successful installation and activation. ```shell ruby --version bundler --version node --version npm --version ``` -------------------------------- ### Using Placeholders in Shell Commands Source: https://github.com/jneiva0/openproject/blob/dev/docs/contributions-guide/contribution-documentation/documentation-style-guide/README.md This snippet demonstrates how to use the `<...>` syntax to indicate parts of a command that a user needs to replace with their own specific values when providing command examples in the documentation. ```shell cp ``` -------------------------------- ### Installing Git for OpenProject Tests (Homebrew) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/macos/README.md Installs the Git command-line tools using Homebrew. This is an alternative method to the Xcode Command Line Tools for making the `git` command available for testing Git repository integration. ```Shell brew install git ``` -------------------------------- ### Running OpenProject Configuration (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/misc/migration/README.md Execute this command in the shell after restoring your OpenProject data and updating the `installer.dat` file. This command will read configuration values, perform necessary database migrations, install and configure dependencies, and start the OpenProject server. It may prompt for new configuration options not present in the previous installation or the updated `installer.dat`. ```shell openproject configure ``` -------------------------------- ### Install System Dependencies for Development (Debian/Ubuntu) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/linux/README.md This command updates the package list and installs essential build tools and libraries required for compiling Ruby gems and other dependencies needed for the OpenProject development environment on Debian/Ubuntu. ```shell sudo apt-get update sudo apt-get install git curl build-essential zlib1g-dev libyaml-dev libssl-dev libpq-dev libreadline-dev ``` -------------------------------- ### Get OpenProject Web Worker Count - Shell Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/operation/scaling/README.md Check the current number of web workers configured for a packaged OpenProject installation using the `openproject config:get` command. ```shell sudo openproject config:get OPENPROJECT_WEB_WORKERS ``` -------------------------------- ### Installing Java for OpenProject Tests (Homebrew) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/macos/README.md Installs OpenJDK using Homebrew and creates a symlink to ensure the `java` command is available for the test suite, which requires Java 7 or later for LDAP integration tests using Ladle/ApacheDS. ```Shell brew install openjdk sudo ln -sfn $(brew --prefix)/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk ``` -------------------------------- ### Installing Git via Xcode Command Line Tools Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/macos/README.md Installs the Xcode Command Line Tools, which include the Git command. This is one method for making the `git` command available for testing integration with Git repositories. ```Shell xcode-select --install ``` -------------------------------- ### Configure OpenProject Subdirectory in Docker Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/docker/README.md Adds the necessary environment variable to the OpenProject docker run command to configure the application to run under a specific relative URL root. ```shell -e OPENPROJECT_RAILS__RELATIVE__URL__ROOT=/openproject ``` -------------------------------- ### Define Getting Started Icon - SCSS Source: https://github.com/jneiva0/openproject/blob/dev/frontend/src/assets/fonts/openproject_icon/openproject-icon-font.html Defines an SCSS mixin and a CSS class rule to display the getting started icon using the font character code \f17d. ```SCSS @mixin icon-mixin-getting-started content: "\\f17d"; .icon-getting-started:before content: "\\f17d"; ``` -------------------------------- ### Starting OpenProject Frontend Service (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/docker/README.md Starts the `frontend` service defined in the docker compose configuration in detached mode (-d). This command is used after amending configuration files to apply changes. ```shell docker compose up -d frontend ``` -------------------------------- ### Access OpenProject User Crontab (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Switches to the 'openproject' user with a login shell and opens the crontab file for editing, allowing scheduling of background jobs. ```shell [root@all] su - openproject -c "bash -l" [openproject@all] crontab -e ``` -------------------------------- ### Starting Test Backend with Docker Compose (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/docker/README.md This command starts the 'backend-test' service and its linked containers using Docker Compose in detached mode. It is used as a prerequisite for running tests, including migrating the test database. ```shell docker compose up -d backend-test ``` -------------------------------- ### Switch to PostgreSQL System User (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Switches the current user to the 'postgres' system user, which is typically used for managing PostgreSQL databases. ```shell [root@host] su - postgres ``` -------------------------------- ### Import OpenProject GPG Key (Debian) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/packaged/README.md Downloads the OpenProject PGP key from the packager.io server and imports it into the trusted GPG keys directory for APT, ensuring package authenticity on Debian 11. ```shell wget -qO- https://dl.packager.io/srv/opf/openproject/key | gpg --dearmor > /etc/apt/trusted.gpg.d/packager-io.gpg ``` -------------------------------- ### Copying Docker Compose Override Example (shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/docker/README.md Copies the example Docker Compose override file for TLS configuration to the active override file location. This file is used to add domain aliases to the Traefik service for TLS challenges. ```shell cp docker/dev/tls/docker-compose.override.example.yml docker/dev/tls/docker-compose.override.yml ``` -------------------------------- ### Starting Temporary Postgres Container for Restore (All-in-one Container) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/operation/restoring/README.md Starts a temporary postgres container in detached mode, mounting the initialized `pgdata` volume, to facilitate restoring the database dump using standard postgres tools. ```shell docker run --rm -d --name postgres -v /var/lib/openproject/pgdata:/var/lib/postgresql/data postgres:13 ``` -------------------------------- ### Opening Database Console (Packaged Install) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/misc/migration-to-postgresql17/README.md For packaged OpenProject installations, this command uses the 'openproject config:get DATABASE_URL' utility to retrieve the database connection string and then connects to the PostgreSQL database using the psql client. ```shell psql $(openproject config:get DATABASE_URL) ``` -------------------------------- ### List Docker Services (Scaled) (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/docker/README.md Output from the docker service ls command showing the state of the OpenProject services after scaling, confirming the updated number of replicas for the scaled services. ```shell docker service ls ID NAME MODE REPLICAS IMAGE PORTS kpdoc86ggema openproject_cache replicated 1/1 memcached:latest qrd8rx6ybg90 openproject_cron replicated 1/1 openproject/openproject:15 cvgd4c4at61i openproject_db replicated 1/1 postgres:10 uvtfnc9dnlbn openproject_proxy replicated 2/2 openproject/openproject:15 *:8080->80/tcp g8e3lannlpb8 openproject_seeder replicated 0/1 openproject/openproject:15 canb3m7ilkjn openproject_web replicated 6/6 openproject/openproject:15 7ovn0sbu8a7w openproject_worker replicated 1/1 openproject/openproject:15 ``` -------------------------------- ### Starting Angular Development Frontend (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/development/development-environment/linux/README.md Starts the Angular frontend development server. This server watches for changes in the frontend directory, compiles the application bundle on demand, and provides hot reloading, typically accessed via a proxy on port 4200. ```shell RAILS_ENV=development npm run serve ``` -------------------------------- ### Configuring Rails Cache Store (YAML) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Adds a line to the `configuration.yml` file to configure the Rails cache store to use Memcache for improved performance. ```yaml rails_cache_store: :memcache ``` -------------------------------- ### Running OpenProject Docker Container (Quick Try) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/docker/README.md Command to run the built OpenProject Docker image. It maps host port 8080 to container port 80, removes the container upon exit (`--rm`), and runs it interactively (`-it`). ```shell docker run -p 8080:80 --rm -it openproject-with-slack ``` -------------------------------- ### Building OpenProject Docker Image Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/docker/README.md Command to build a Docker image from a Dockerfile located in the current directory. The `--pull` flag ensures the base image is up-to-date, and `-t` tags the resulting image with a specified name. ```shell docker build --pull -t openproject-with-slack . ``` -------------------------------- ### Configure Apache Passenger Module Load (Apache) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Specifies the path to the compiled Passenger Apache module (.so file) to be loaded by Apache. This line should be placed in /etc/apache2/mods-available/passenger.load. ```apache LoadModule passenger_module /home/openproject/.rbenv/versions/2.1.6/lib/ruby/gems/2.1.0/gems/passenger-5.0.14/buildout/apache2/mod_passenger.so ``` -------------------------------- ### Install and Configure Ruby Version with rbenv (Shell) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/installation/manual/README.md Uses rbenv to install a specific Ruby version (e.g., 3.4.2), updates the rbenv shims, and sets the installed version as the global default Ruby version for the user. ```shell [openproject@host] rbenv install 3.4.2 [openproject@host] rbenv rehash [openproject@host] rbenv global 3.4.2 ``` -------------------------------- ### Initializing Database Volume (All-in-one Container) Source: https://github.com/jneiva0/openproject/blob/dev/docs/installation-and-operations/operation/restoring/README.md Runs a temporary OpenProject container to initialize the database volume (`/var/lib/openproject/pgdata`) on the host machine. The container is stopped once initialization is complete. ```shell docker run --rm -v /var/lib/openproject/pgdata:/var/openproject/pgdata -it openproject/openproject:15 ```