Skip to main content

Docker compose

This page describes how to set up a self-managed instance of Plumber using Docker-compose.

💻 Requirements

  • GitLab instance version >=17.7
  • The system requires a Linux server. It runs in 🐳 Docker containers using a docker-compose configuration. Specifications:
    • OS: Ubuntu or Debian
    • Hardware
      • CPU x86_64/amd64 with at least 2 cores
      • 4 GB RAM
      • 250 GB of storage for Plumber
    • Network
      • Users must be able to reach the Plumber server on TCP ports 80 and 443
      • The Plumber server must be able to access internet
      • The Plumber server must be able to communicate with GitLab instance
      • The installation process requires write access to the DNS Zone to set up Plumber domain
    • Installed software

🚀 Installation

1. Configure your DNS

Create a DNS A record pointing your chosen domain to your server’s public IP address:

  • Name: <your_plumber_domain> (e.g. plumber.mydomain.com)
  • Type: A
  • Content: <your-server-public-ip>

2. Setup Plumber

⏫ Update

To update your self-managed instance to a new version, run the update script:

Terminal window
./scripts/update.sh

The script will:

  1. Stop the running containers
  2. Pull the latest changes from the git repository
  3. Load the new image versions
  4. Migrate your .env configuration if needed
  5. Start the containers with the new images

🔄 Backup and restore

Data required to fully backup and restore a Plumber system are the following:

  • Configuration file: .env
  • Databases:
    • PostgreSQL database of Jobs service
  • Files data:
    • File storing data about certificate for Traefik service

All these data can be easily backup and restored using 2 scripts from the installation git repository:

  • scripts/backup.sh
  • scripts/restore.sh

💽 Backup

To backup the system, go to your installation git repository and run the following command:

Terminal window
./scripts/backup.sh 18

The script will create a backups directory and create a backup archive inside it prefixed with the date (backup_plumber-$DATE)

Info

You can use a cron job to perform regular backups. Here is a cron job that launch a backup every day at 2am:

Terminal window
0 2 * * * /plumber-platform/scripts/backup.sh 18

It can be added to your crontab with the command crontab -e. Check more information about cron jobs here.

🛳️ Restore

To restore a backup from scratch on a new system, follow this process:

  1. Be sure that your new system is compliant with requirements

  2. Copy the backup file on your new server

  3. Clone the installation repository

    Terminal window
    git clone https://github.com/getplumber/platform.git plumber-platform
    cd plumber-platform
  4. If the IP address of your server changed from your previous installation, update your DNS records. See Configure your DNS

  5. Launch the restore script

    Terminal window
    ./scripts/restore.sh 18 <path_to_your_backup_file>