===== Install Jenkins on Debian 10 ===== ==== Oracle JDK option ==== Download JDK from Oracle, you will need a Oracle account. apt-get -y install gnupg git tar -C /opt/ -zxvf $HOME/jdk-8u261-linux-x64.tar.gz #tar -C /opt/ -zxvf $HOME/jdk-8u261-linux-x64.tar.gz echo 'export JAVA_HOME=/opt/jdk1.8.0_261'>> /etc/profile echo 'export PATH=$PATH:$JAVA_HOME/bin'>> /etc/profile wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | apt-key add - echo 'deb https://pkg.jenkins.io/debian-stable binary/'>> /etc/apt/sources.list.d/jenkins.list apt-get update apt-get -y install jenkins You will need to fix the error from daemon start, so modifiy /etc/init.d/jenkins and change the lines as follows: PATH=/bin:/usr/bin:/sbin:/usr/sbin to PATH=/bin:/usr/bin:/sbin:/usr/sbin:/opt/jdk1.8.0_261/bin Restart Jenkins: systemctl restart jenkins ==== OpenJDK option ==== apt-get -y install gnupg git openjdk-11-jdk apt-transport-https wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | apt-key add - echo 'deb https://pkg.jenkins.io/debian-stable binary/'>> /etc/apt/sources.list.d/jenkins.list apt-get update apt-get -y install jenkins ==== nginx configuration ==== If you want to use port https or http, a good recommendation is create a nginx proxy to redirect traffic to standard port. apt-get install nginx cat <> /etc/nginx/sites-available/jenkins.conf upstream jenkins { keepalive 32; # keepalive connections server 127.0.0.1:8080; # jenkins ip and port } # Required for Jenkins websocket agents map \$http_upgrade \$connection_upgrade { default upgrade; '' close; } server { listen 80 default_server; # Listen on port 80 for IPv4 requests server_name _; # this is the jenkins web root directory # (mentioned in the /etc/default/jenkins file) root /var/cache/jenkins/war/; access_log /var/log/nginx/jenkins/access.log; error_log /var/log/nginx/jenkins/error.log; # pass through headers from Jenkins that Nginx considers invalid ignore_invalid_headers off; location ~ "^/static/[0-9a-fA-F]{8}\/(.*)$" { #rewrite all static files into requests to the root #E.g /static/12345678/css/something.css will become /css/something.css rewrite "^/static/[0-9a-fA-F]{8}\/(.*)" /\$1 last; } location /userContent { # have nginx handle all the static requests to userContent folder #note : This is the \$JENKINS_HOME dir root /var/lib/jenkins/; if (!-f \$request_filename){ #this file does not exist, might be a directory or a /**view** url rewrite (.*) /\$1 last; break; } sendfile on; } location / { sendfile off; proxy_pass http://jenkins; proxy_redirect default; proxy_http_version 1.1; # Required for Jenkins websocket agents proxy_set_header Connection \$connection_upgrade; proxy_set_header Upgrade \$http_upgrade; 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 \$scheme; proxy_max_temp_file_size 0; #this is the maximum upload size client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffering off; proxy_request_buffering off; # Required for HTTP CLI commands proxy_set_header Connection ""; # Clear for keepalive } } EOF rm /etc/nginx/sites-enabled/default ln -s /etc/nginx/sites-available/jenkins.conf /etc/nginx/sites-enabled/ mkdir /var/log/nginx/jenkins chown www-data.www-data /var/log/nginx/jenkins/ systemctl restart nginx ==== Initial password ==== cat /var/lib/jenkins/secrets/initialAdminPassword