SRI::fossil-setup: add
Signed-off-by: Nicolás A. Ortega Froysa <nicolas@ortegas.org>
This commit is contained in:
		
							
								
								
									
										123
									
								
								2/SRI/assignments/fossil-setup/fossil-setup.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										123
									
								
								2/SRI/assignments/fossil-setup/fossil-setup.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,123 @@
 | 
			
		||||
# Configuración de un Servidor Fossil
 | 
			
		||||
 | 
			
		||||
Nicolás A. Ortega Froysa
 | 
			
		||||
 | 
			
		||||
## Introducción
 | 
			
		||||
 | 
			
		||||
Fossil es un sistema de gestión de versiones, considerado generalmente como
 | 
			
		||||
alternativa a Git, pero que contiene además soporte para muchos elementos que
 | 
			
		||||
suelen estar asociados a los proyectos de código, como serían Wiki y una
 | 
			
		||||
herramienta de gestión de tarea. Es una herramienta poco usada en ámbitos
 | 
			
		||||
generales, pero sí se usa para el proyecto conocido SQLite. También tiene la
 | 
			
		||||
ventaja de que todo está contenido dentro del mismo repositorio, y por tanto se
 | 
			
		||||
puede compartir fácilmente, y descentralizar el control del código.
 | 
			
		||||
 | 
			
		||||
## Instalación de Fossil
 | 
			
		||||
 | 
			
		||||
Antes de configurar nuestro servicio hemos de instalar Fossil en nuestro
 | 
			
		||||
servidor. Como estamos usando un sistema Debian, lo instalamos utilizando el
 | 
			
		||||
comando siguiente:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
# apt install fossil
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Creación del Repositorio
 | 
			
		||||
 | 
			
		||||
Una vez instalado, vamos a crear el repositorio como tal, que consta de un
 | 
			
		||||
archivo que guardaremos en el servidor. Para hacer esto primero hemos de crear
 | 
			
		||||
el usuario y grupo que se encargará de gestionar este repositorio.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
# groupadd fossil
 | 
			
		||||
# useradd -d /srv/fossil -m -g fossil -s /usr/sbin/nologin fossil
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Esto creará el directorio `/srv/fossil` que lo usaremos para guardar el archivo
 | 
			
		||||
del repositorio. Para crear el repositorio como tal hemos de correr el comando
 | 
			
		||||
siguiente:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
# cd /srv/fossil
 | 
			
		||||
# fossil init semanaverde.fossil
 | 
			
		||||
project-id: 88b14f646618a2bbef27386242a857e56c55ced3
 | 
			
		||||
server-id:  23476a9b53e66b1866c04de1d59a4947bb068869
 | 
			
		||||
admin-user: root (initial password is "qbHCunmSj8")
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Esto nos mostrará el usuario y la contraseña del usuario administrador, que
 | 
			
		||||
deberíamos guardarlo para luego.
 | 
			
		||||
 | 
			
		||||
Finalmente, para que el usuario `fossil` pueda acceder al archivo (y más
 | 
			
		||||
importante, modificarlo) cambiamos el dueño del archivo:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
# chown fossil:fossil semanaverde.fossil
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Configuración del Servidor
 | 
			
		||||
 | 
			
		||||
El servidor de Fossil (web) se accede mejor por medio de un SCGI. Para esto, lo
 | 
			
		||||
que más nos conviene (en un sistema Debian) es crear un servicio de Systemd para
 | 
			
		||||
que se inicialice al iniciar el sistema. Para eso crearemos
 | 
			
		||||
`/usr/lib/systemd/system/fossil-server.service` con el contenido siguiente:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Fossil user server
 | 
			
		||||
After=network-online.target
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
WorkingDirectory=/srv/fossil
 | 
			
		||||
ExecStart=/usr/bin/fossil server --scgi --localhost --port 8080 /srv/fossil/semanaverde.fossil
 | 
			
		||||
User=fossil
 | 
			
		||||
Group=fossil
 | 
			
		||||
Restart=always
 | 
			
		||||
RestartSec=3
 | 
			
		||||
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Ahora ya podremos gestionar nuestro servicio por medio de `systemctl` como
 | 
			
		||||
cualquier otro servicio. Como queremos habilitar y encender este servicio,
 | 
			
		||||
corremos los comandos siguientes:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
# systemctl enable fossil-server.service
 | 
			
		||||
# systemctl start fossil-server.service
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Configuración del Proxy con Nginx
 | 
			
		||||
 | 
			
		||||
Una vez que tengamos el servicio puesto, es necesario crear un proxy que apunta
 | 
			
		||||
(y traduce) a nuestro servidor Fossil. En nuestro caso usaremos el servidor HTTP
 | 
			
		||||
Nginx. Crearemos un archivo de configuración Nginx con el __path__
 | 
			
		||||
`/etc/nginx/sites-available/repo.semanaverde.com.es.conf` con el contenido
 | 
			
		||||
siguiente:
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
Ahora creamos un enlace simbólico para que Nginx vea esta configuración,
 | 
			
		||||
habilitándolo:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
# cd /etc/nginx/sites-enabled
 | 
			
		||||
# ln -s ../sites-available/repo.semanaverde.com.es.conf ./
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Comprobamos que está escrito correctamente el código:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
# nginx -t
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Si todo sale bien, reiniciamos Nginx para poder tener acceso a nuestro servicio
 | 
			
		||||
de Fossil:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
# systemctl reload nginx.service
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Ya con esto podremos acceder a nuestro servicio Fossil desde
 | 
			
		||||
`repo.semanaverde.com.es`.
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								2/SRI/assignments/fossil-setup/nginx-fossil.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								2/SRI/assignments/fossil-setup/nginx-fossil.jpg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 19 KiB  | 
		Reference in New Issue
	
	Block a user