SRI::fossil-setup: add
Signed-off-by: Nicolás A. Ortega Froysa <nicolas@ortegas.org>
This commit is contained in:
parent
845ab64dec
commit
5da929c96b
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:
|
||||||
|
|
||||||
|
![Configuración Nginx Fossil](nginx-fossil.jpg)
|
||||||
|
|
||||||
|
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 |
Loading…
Reference in New Issue
Block a user