Requisits previs
Instal·lació de requisits previs
Instal·lant GitBucket
Configuració del servidor intermediari invers Nginx
Aquesta guia cobreix la instal·lació i la configuració bàsiques de GitBucket per a una instància Vultr que executa Ubuntu 16.04 i suposa que esteu executant ordres com a non-rootusuari.
Requisits previs
- Una instància del servidor Vultr amb almenys 1 GB de RAM (les instàncies més petites poden funcionar, encara que lentament).
openjdk-8-jre Obligatori, les versions anteriors no funcionaran.
wget S'utilitza per descarregar el paquet GitBucket.
nginx Opcional, proporciona un servidor intermediari invers a GitBucket
systemd Gestiona l'inici i l'aturada del procés GitBucket
Instal·lació de requisits previs
GitBucket requereix que Java 8 o més recent estigui instal·lat al vostre servidor. Si encara no heu instal·lat Java 8, primer actualitzeu les llistes de paquets locals.
sudo apt update
A continuació, instal·leu el paquet de temps d'execució de Java 8.
sudo apt install openjdk-8-jre
Instal·lant GitBucket
Creació d'un usuari sense privilegis
Haurem de crear un usuari sense privilegis per executar GitBucket abans d'anar més lluny. L'execució de GitBucket amb un usuari sense privilegis restringeix la nostra instal·lació d'escriure fora del seu propi directori de dades, reforçant la seguretat del vostre servidor. Executeu l'ordre següent per crear un usuari del sistema anomenat gitbucket.
sudo adduser --system gitbucket
Com que hem creat un usuari del sistema , l'intèrpret d'ordres per defecte és /bin/false, i tornarem a l'intèrpret d'ordres actual tret que proporcionem un argument d'intèrpret d'ordres addicional quan executem su. Inicieu sessió amb l'usuari acabat de crear.
sudo su - gitbucket -s /bin/bash
L'indicador de l'intèrpret d'ordres hauria de canviar i iniciareu sessió al nou usuari del sistema.
Descàrrega/Actualització de GitBucket
Navegueu a la pàgina de versions de GitBucket i localitzeu la darrera versió disponible. Copieu l'URL del gitbucket.warpaquet, comproveu que esteu al directori inicial del nou usuari i descarregueu-lo amb wget.
cd ~/
wget https://github.com/gitbucket/gitbucket/releases/download/4.18.0/gitbucket.war
Haureu de repetir aquest pas cada vegada que vulgueu actualitzar el paquet GitBucket.
Configuració inicial de GitBucket
Un cop descarregat el paquet, haurem d'iniciar GitBucket manualment per realitzar una configuració inicial.
java -jar gitbucket.war --port 8080
Si el port 8080ja l'ha pres un altre procés, podeu canviar el port que GitBucket escoltarà ara. Aquesta guia suposa que GitBucket està escoltant al port8080 .
Això iniciarà GitBucket a la interfície de xarxa pública del vostre servidor, escoltant al port especificat. Hauríeu de veure, al cap d'uns moments, el següent missatge.
INFO:oejs.Server:main: Started @15891ms
Si utilitzeu el tallafoc de Vultr , haureu d'obrir el port que escolta GitBucket, ja que el tallafoc de Vultr funciona com una llista blanca, rebutjant el trànsit per permetre ports tret que s'especifiqui el contrari.
La vostra instal·lació de GitBucket ara hauria d'estar en línia i accessible des d'Internet. Utilitzant un navegador web, connecteu-vos a l'adreça pública del vostre servidor (assegureu-vos d'especificar el port on s'executa GitBucket, (és a dir, http://203.0.113.0:8080o http://example.com:8080), i arribareu a la pàgina d'inici de GitBucket.
Tanmateix, cal canviar la contrasenya del compte d'administrador predeterminat. Per fer-ho, inicieu sessió al compte d'administrador mitjançant el Sign inbotó de la part superior dreta de la interfície web. L'inici de sessió predeterminat per al compte d'administrador és rootper al nom d'usuari i, després, de rootnou per a la contrasenya. Un cop iniciat sessió, el botó es substituirà per una icona de perfil i un desplegable. Amplieu el menú desplegable i seleccioneu i Account Settings, a continuació, establiu una contrasenya nova i més segura a l'assistent de configuració del compte.
Després d'haver actualitzat les credencials del compte d'administrador predeterminat i verificat que GitBucket s'inicia amb aquesta configuració mínima, mateu el procés Java amb " CTRL+C" i tanqueu l'intèrpret d'ordres actual amb exit.
Creació del servei Systemd
Actualment, només podem executar GitBucket accedint al nostre servidor mitjançant SSH i iniciant el procés des d'un shell manualment. Afortunadament, Ubuntu ve preempaquetat amb Systemd, la qual cosa ens permet crear un servei amb el qual GitBucket s'iniciarà i mantindrà automàticament el sistema.
Amb nano, creeu un fitxer d'unitat nou al /etc/systemd/systemdirectori.
sudo nano /etc/systemd/system/gitbucket.service
A continuació, copieu el contingut següent al fitxer.
[Unit]
Description=GitBucket
After=network.target
[Service]
ExecStart=/usr/bin/java -jar /home/gitbucket/gitbucket.war --port 8080
ExecStop=/bin/kill -SIGINT $MAINPID
Type=simple
User=gitbucket
[Install]
WantedBy=multi-user.target
Aquest fitxer d'unitat defineix el comportament bàsic d'inici i tancament de GitBucket i executa el servei sota el nostre usuari del sistema sense privilegis a la interfície de xarxa només local.
Si heu canviat el número de port que escoltarà GitBucket, canvieu l' --portargument de l' ExecStartordre.
Deseu (" CTRL+O") el nou fitxer de la unitat i, a continuació, sortiu de l'editor (" CTRL+X"). Haureu de tornar a carregar Systemd perquè es descobreixi el nou fitxer de la unitat.
sudo systemctl daemon-reload
Després que Systemd s'hagi tornat a carregar, verifiqueu que la nova unitat s'ha descobert i carregat.
sudo systemctl status gitbucket
Hauríeu de veure la següent sortida.
gitbucket.service - GitBucket
Loaded: loaded (/etc/systemd/system/gitbucket.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Finalment, habiliteu que la nova unitat s'iniciï automàticament quan s'iniciï el vostre servidor i, a continuació, inicieu el servei per primera vegada.
sudo systemctl enable gitbucket
sudo systemctl start gitbucket
Un cop iniciat el servei, podreu tornar a accedir a GitBucket des del vostre navegador mitjançant l'adreça IP i el número de port.
Configuració del servidor intermediari invers Nginx
Tot i que es pot exposar GitBucket directament a través del port 8080, podeu millorar el rendiment i configurar funcions com ara HTTP/2, xifratge TLS i regles de memòria cau exposant GitBucket a través de Nginx.
Configuració inicial de Nginx
Si encara no heu instal·lat Nginx, actualitzeu les llistes de paquets.
sudo apt update
A continuació, instal·leu el paquet Nginx.
sudo apt install nginx
Un cop instal·lat Nginx, verifiqueu que podeu accedir al servidor web mitjançant l'adreça IP del vostre servidor sense el número de port (és a dir, http://203.0.113.0o http://example.com). Si té èxit, veureu la pàgina de destinació predeterminada de Nginx per a Ubuntu.
Creació del proxy invers
Copiarem la configuració del lloc predeterminada /etc/nginx/sites-availablecom a punt de partida per al servidor intermediari invers.
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/gitbucket
Obriu el fitxer de configuració acabat de crear amb nano.
sudo nano /etc/nginx/sites-available/gitbucket
Localitzeu el location /bloc existent a la línia 43.
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
Actualment, Nginx intentarà retornar fitxers situats en els /var/www/htmlquals coincideixin amb les HTTPsol·licituds entrants . Haurem de canviar aquest comportament configurant un servidor intermediari invers en aquest bloc, que enviarà totes les sol·licituds HTTP fetes al nostre servidor Nginx a la instància de GitBucket. Actualitzeu el location /bloc perquè coincideixi amb el següent.
location / {
proxy_pass http://localhost:8080; # The address GitBucket is listening on
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_connect_timeout 150;
proxy_send_timeout 100;
proxy_read_timeout 100;
proxy_buffers 4 32k;
client_max_body_size 512m; # Needed for large Git operations over HTTP
client_body_buffer_size 128k;
}
Si heu canviat el número de port on escoltarà GitBucket, actualitzeu l' proxy_passopció per reflectir-ho.
Per habilitar la nostra nova configuració, haureu de desactivar la configuració predeterminada existent a /etc/nginx/sites-enabled, i després enllaçar simbòlicament la nostra nova configuració a /etc/nginx/sites-enabledtravés del següent.
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/gitbucket /etc/nginx/sites-enabled/gitbucket
Un cop habilitat el fitxer de configuració, comproveu si hi ha errors de sintaxi.
sudo nginx -t
A continuació, reinicieu el servidor Nginx per habilitar la nostra nova configuració del lloc.
sudo systemctl restart nginx
Ara hauríeu de poder accedir a la vostra instal·lació de GitBucket a l'adreça pública del vostre servidor sense un número de port.
Assegurar el procés GitBucket des d'Internet pública
Actualment, la nostra instància de GitBucket està escoltant a la interfície de xarxa pública del nostre servidor . Això permetrà als usuaris evitar el servidor intermediari Nginx connectant-se a l'adreça que GitBucket està escoltant actualment, cosa que probablement no és desitjada. Haurem de modificar el fitxer de la unitat que hem creat anteriorment per resoldre-ho. Obriu el fitxer de la unitat amb nano.
sudo nano /etc/systemd/system/gitbucket.service
Afegiu --host 127.0.0.1a l' ExecStartordre, així.
...
ExecStart=/usr/bin/java -jar /home/gitbucket/gitbucket.war --port 8080 --host 127.0.0.1
...
Això farà que GitBucket només accepti connexions a la interfície de xarxa local del nostre servidor. Una vegada més, deseu (" CTRL+O") el fitxer, tanqueu (" CTRL+X") l'editor, torneu a carregar Systemd i reinicieu la nostra unitat GitBucket.
sudo systemctl daemon-reload
sudo systemctl restart gitbucket
Si utilitzeu el tallafoc de Vultr, també hauríeu d'eliminar qualsevol regla de port que hàgiu afegit per accedir al servidor GitBucket durant la configuració inicial.