The Debian installation bundles Distribution and all its dependencies. They are provided as native Debian packages, where you must separately install Distribution and its dependencies. Use this if you are automating installations.
Before you proceed, see System Requirements for information on supported platforms, supported browsers, and other requirements.
Complete the following steps to install the product.
Extract the contents of the compressed archive, and go to the extracted folder.
tar -xvf jfrog-distribution-<version>-deb.tar.gz cd jfrog-distribution-<version>-deb
Install PostgreSQL.
Already have a PostgreSQL installation?
Set your PostgreSQL connection details in the Shared Configurations section of the
$JFROG_HOME/distribution/var/etc/system.yaml
file.Install Redis.
Install Distribution.
dpkg -i ./distribution/distribution.deb
You must run as a root user.
Customize the product configuration.
Set the Artifactory connection details.
Customize the PostgreSQL Database connection details. (optional)
Set any additional configurations (for example: ports, node id) using the Distribution system.yaml file.
Start and manage the Distribution service.
systemd OS
systemctl start|stop distribution.service
systemv OS
service distribution start|stop|status|restart
Access Distribution from your browser at:
http://<jfrogUrl>/ui/
.Go to the Distribution tab in the Application module in the UI.
Check the Distribution log.
tail -f $JFROG_HOME/distribution/var/log/console.log
Configure log rotation of the console log
The
console.log
file can grow quickly since all services write to it. For more information, see configure the log rotation.
Third Party Applications for Distribution
PostgreSQL for Distribution
You must install PostgreSQL before you proceed with the installation of Distribution.
PostgreSQL for Debian
We recommended to get your apt-get
libraries up-to-date by using the following commands.
apt-get update apt-get install -f -y apt-get update
Create the file repository configuration to pull PostgreSQL dependencies.
cp -f /etc/apt/sources.list /etc/apt/sources.list.origfile sh -c 'echo "deb http://ftp.de.debian.org/debian/ $(lsb_release -cs) main non-free contrib" >> /etc/apt/sources.list' sh -c 'echo "deb-src http://ftp.de.debian.org/debian/ $(lsb_release -cs) main non-free contrib" >> /etc/apt/sources.list' cp -f /etc/apt/sources.list.d/pgdg.list /etc/apt/sources.list.d/pgdg.list.origfile sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" >> /etc/apt/sources.list.d/pgdg.list' sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" >> /etc/apt/sources.list.d/pgdg.list' wget --no-check-certificate --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
Install PostgreSQL.
Run the following commands from the extracted
jfrog-distribution-<version>-deb
directory.mkdir -p /var/opt/postgres/data
Ubuntu 18.04 (bionic)
dpkg -i ./third-party/postgresql/postgresql-13_13.2-1.pgdg18.04+1_amd64.deb
Ubuntu 20.04 (focal)
dpkg -i ./third-party/postgresql/postgresql-13_13.2-1.pgdg20.04+1_amd64.deb
Debian 9 (stretch)
dpkg -i ./third-party/postgresql/postgresql-13_13.2-1.pgdg90+1_amd64.deb
Debian 10 (buster)
apt update -y apt-get install wget sudo -y apt-get install -y gnupg gnupg1 gnupg2 dpkg -i ./third-party/postgresql/postgresql-13_13.2-1.pgdg100+1_amd64.deb
Stop the PostgreSQL service.
systemctl stop postgresql.service
Change permissions for the PostgreSQL folder.
chown -R postgres:postgres /var/opt/postgres sed -i "s~^data_directory =.*~data_directory = '/var/opt/postgres/data'~" "/etc/postgresql/13/main/postgresql.conf" sed -i "s~^hba_file =.*~hba_file = '/var/opt/postgres/data/pg_hba.conf'~" "/etc/postgresql/13/main/postgresql.conf" sed -i "s~^ident_file =.*~ident_file = '/var/opt/postgres/data/pg_ident.conf'~" "/etc/postgresql/13/main/postgresql.conf" su postgres -c "/usr/lib/postgresql/12/bin/initdb --pgdata=/var/opt/postgres/data"
Configure PostgreSQL to allow external IP connections.
By default PostgreSQL will only allow localhost clients communications. To enable different IPs to communicate with the database you need to configure the
pg_hba.conf
file.The file is available at
/var/opt/postgres/data
.To grant all IPs access add the following entry under the IPv4 local connections section:
host all all 0.0.0.0/0 trust
Add the following entry to
/etc/postgresql/13/main/postgresql.conf
.listen_addresses='*' port=5432
Start PostgreSQL.
systemctl start postgresql-<version>.service or service postgresql-<version> start
Set up the database and user.
Run the following commands to seed the tables and schemas needed by Distribution
sudo -u postgres psql -c "CREATE USER distribution WITH PASSWORD 'password';" sudo -u postgres psql -c "CREATE DATABASE distribution WITH OWNER=distribution ENCODING='UTF8';" sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE distribution TO distribution;" cp -f ./third-party/postgresql/createPostgresUsers.sh /tmp source /etc/default/locale cd /tmp && su postgres -c "POSTGRES_PATH=/usr/lib/postgresql/13/bin PGPASSWORD=postgres DB_PASSWORD=password bash /tmp/createPostgresUsers.sh"
Put back the original
pgdg.list.
mv /etc/apt/sources.list.d/pgdg.list /etc/apt/sources.list.d/pgdg.list.tmp && cp -f /etc/apt/sources.list.d/pgdg.list.origfile /etc/apt/sources.list.d/pgdg.list
Remove the backup files.
rm -f /etc/apt/sources.list.d/pgdg.list.tmp rm -f /etc/apt/sources.list.d/pgdg.list.origfile
Put back the original
sources.list
.
mv /etc/apt/sources.list /etc/apt/sources.list.tmp && cp -f /etc/apt/sources.list.origfile /etc/apt/sources.list
Remove the backup files.
rm -f /etc/apt/sources.list.tmp && rm -f /etc/apt/sources.list.origfile
Redis for Distribution
Redis Password Restrictions
Redis password should contain only alphanumeric characters and should not contain any special characters.
Redis Debian Installation
Run the following commands from the extracted jfrog-distribution-<version>-deb
directory.
dpkg -i ./third-party/redis/redis-tools_6.0.5-1chl1_xenial1_amd64.deb dpkg -i ./third-party/redis/redis-server_6.0.5-1chl1_xenial1_amd64.deb service redis-server start # To verify if Redis is working. The command should return PONG. redis-cli -a password ping sed -i "s|# requirepass foobared|requirepass password|g" /etc/redis/redis.conf echo "appendonly yes" >> /etc/redis/redis.conf echo "appendfsync everysec" >> /etc/redis/redis.conf sysctl vm.overcommit_memory=1 service redis-server restart