Hosting Imágenes
Software: lutim
Web oficial: https://framagit.org/fiat-tux/hat-softwares/lutim
Documentación oficial: https://framagit.org/fiat-tux/hat-softwares/lutim/-/wikis/home
Foro/Matrix de soporte:
Ubicaciones importantes:/var/www/lutim/
Logs relevantes:/var/www/lutim/log/production.log
Comandos de gestión
Acceder al contenedor Lutim está dentro de un contenedor LXD en el servidor de blog de anartist (blog.anartist.org). Para acceder tenemos que usar:
sudo lxc list #Esto es para listar información de los contenedores, no es necesario
sudo lxc lutim exec
Y ya estaremos dentro del servidor.
Actualizar
¡¡Siempre hay que leer la instrucciones en la documentación oficial y leer el changelog de la nueva versión!!
¡¡Es muy recomendable hacer una copia de seguridad antes de actualizar!!
cd /var/www/lutim/
git pull
carton install
vimdiff lutim.conf lutim.conf.template
carton exec hypnotoad script/lutim
Diario de instalación
Primero he instalado lxd via snap:
sudo snap install core
sudo snap install lxd
He configurado lxd con todas las opciones por defecto y he creado una imagen con ubuntu 20.04:
sudo lxd init
sudo lxc launch images:ubuntu/focal lutim
Listamos las imágenes y entramos dentro del contenedor
sudo lxc list
sudo lxc exec lutim bash
Siguiendo las instrucciones, actualizo el servidor y voy instalando lo necesario:
apt update
apt upgrade
apt install cpan
apt install build-essential
cpan Carton
cpan inc::Module::Install::DSL
apt install libssl-dev shared-mime-info libpq-dev zlib1g-dev git
git clone https://framagit.org/fiat-tux/hat-softwares/lutim.git
cd lutim/
carton install --deployment --without=test --without=postgresql --without=ldap --without=htpasswd --without=cache --without=memcached
cp lutim.conf.template lutim.conf
vi lutim.conf
carton exec hypnotoad script/lutim
cp utilities/lutim.service /etc/systemd/system/
vi /etc/systemd/system/lutim.service
sudo mkdir /var/www
mv lutim/ /var/www/
systemctl restart lutim
Configuramos nginx:
apt install nginx
rm /etc/nginx/sites-enabled/default
vi /etc/nginx/sites-available/lutim
Fichero de configuracíón de nginx dentro del contenedor:
server {
listen 80;
# No need to have a `root` parameter.
# This is important for user's privacy !
access_log off;
error_log /var/log/nginx/lutim.error.log;
# This is important ! Make it OK with your Lutim configuration
client_max_body_size 40M;
location ~* ^/(img|css|font|js)/ {
try_files $uri @lutim;
add_header Expires "Thu, 31 Dec 2037 23:55:55 GMT";
add_header Cache-Control "public, max-age=315360000";
# HTTPS only header, improves security
#add_header Strict-Transport-Security "max-age=15768000";
}
location / {
try_files $uri @lutim;
# HTTPS only header, improves security
#add_header Strict-Transport-Security "max-age=15768000";
}
location @lutim {
# Adapt this to your configuration
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# If you want to log the remote port of the image senders, you'll need that
proxy_set_header X-Remote-Port $remote_port;
proxy_set_header X-Forwarded-Proto $scheme;
# We expect the downsteam servers to redirect to the right hostname, so don't do any rewrites here.
proxy_redirect off;
}
}
Continuamos con la configuración de nginx:
ln -s /etc/nginx/sites-available/lutim /etc/nginx/sites-enabled/
systemctl restart nginx
En el servidor host, también he configurado el nginx con el siguiente fichero:
server {
listen 80;
listen [::]:80;
server_name lutim.anartist.org;
location / {
proxy_pass http://10.253.31.53:80;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass_header server;
}
Y configuramos el certificado de Let's Encrypt:
sudo systemctl restart nginx
sudo certbot --nginx
No Comments