Your own IT News
Something that may be interesting to an IT department is to be up to date on what is happening around us, Getting news from our world, that are interesting to know, such as security bulletins, or to know when a manufacturer of ours has published a new version, patch… of any product we use…
Well, Well, for this and other things that we will see, we will use an RSS reader, It's that simple, But let's get it right, and beautiful :-). We can deploy in one minute, a Docker container where we have a web-based news reader and aggregator (RSS/Atom) Free and open source, In this document we will use Tiny Tiny RSS, which is very light, Simple and complete.
But it will not only be a news portal where we can access manually via the web or with an app on our mobiles, if not, we can configure it to send us an email with the daily summary of the news, For example, When we arrive in the morning we have an email with important cybersecurity news, or if we have any patches that we should apply…
And, Does the content? Subscriptions? Well, as you can imagine, In quotes it is something personal, it will depend on what you want to be aware of, For example, you can subscribe to ad lists, Cyber Early Warning, or learn about the latest attacks on Spanish companies, or what I said, Subscribe to your manufacturers' download sites, and when they publish a new version on their website, You know it.
To quickly deploy the Tiny Tiny RSS containers, we will have to have a Linux machine ready beforehand, e.g. Ubuntu Server, with Docker and Docker Compose installed; Apart from the usual, that the machine has a name, IP Addressing, NTP… In my case I create a folder called 'tinytinyrss’ where we will leave a couple of files, el primero el que lleva la configuración llamado ‘.env’ y os dejo aquí su contenido, obtenido de la documentación oficial, debéis establecer al menos la contraseña del usuario ‘admin’:
# Put any local modifications here. # Run FPM under this UID/GID. # OWNER_UID=1000 # OWNER_GID=1000 # FPM settings. #PHP_WORKER_MAX_CHILDREN=5 #PHP_WORKER_MEMORY_LIMIT=256M # ADMIN_USER_* settings are applied on every startup. # Set admin user password to this value. If not set, random password will be generated on startup, look for it in the 'app' container logs. ADMIN_USER_PASS=CONTRASEÑA_DE_ADMIN # Sets admin user access level to this value. Valid values: # -2 - forbidden to login # -1 - readonly # 0 - default user # 10 - admin #ADMIN_USER_ACCESS_LEVEL= # Auto create another user (in addition to built-in admin) unless it already exists. #AUTO_CREATE_USER= #AUTO_CREATE_USER_PASS= #AUTO_CREATE_USER_ACCESS_LEVEL=0 # Default database credentials. TTRSS_DB_USER=postgres TTRSS_DB_NAME=postgres TTRSS_DB_PASS=password # You will likely need to set this to the correct value - it should point to external tt-rss URL as seen in your browser. TTRSS_SELF_URL_PATH=http://example.com/tt-rss # You can customize other config.php defines by setting overrides here. See tt-rss/.docker/app/Dockerfile for complete list. Examples: # TTRSS_PLUGINS=auth_remote # TTRSS_SINGLE_USER_MODE=true # TTRSS_SESSION_COOKIE_LIFETIME=2592000 # TTRSS_FORCE_ARTICLE_PURGE=30 # ... # Bind exposed port to 127.0.0.1 to run behind reverse proxy on the same host. If you plan expose the container, remove "127.0.0.1:". #HTTP_PORT=127.0.0.1:8280 HTTP_PORT=8280
Así mismo crearemos el fichero ‘docker-compose.yml’ con la configuración de los contenedores:
version: '3' services: db: image: Postgres:15-alpine restart: unless-stopped env_file: - .env environment: - POSTGRES_USER=${TTRSS_DB_USER} - POSTGRES_PASSWORD=${TTRSS_DB_PASS} - POSTGRES_DB=${TTRSS_DB_NAME} Volumes: - db:/var/lib/postgresql/data app: image: cthulhoo/ttrss-fpm-pgsql-static:latest restart: unless-stopped env_file: - .env volumes: - App:/var/www/html - ./config.d:/opt/tt-rss/config.d:ro depends_on: - db # optional, makes weekly backups of your install # backups: # image: cthulhoo/ttrss-fpm-pgsql-static:latest # Restart: unless-stopped # env_file: # - .env # Volumes: # - backups:/backups # - App:/var/www/html # depends_on: # - db # command: /opt/tt-rss/dcron.sh -f updater: image: cthulhoo/ttrss-fpm-pgsql-static:latest restart: unless-stopped env_file: - .env volumes: - App:/var/www/html - ./config.d:/opt/tt-rss/config.d:ro depends_on: - app command: /opt/tt-rss/updater.sh web-nginx: image: cthulhoo/ttrss-web-nginx:latest restart: unless-stopped env_file: - .env ports: - ${HTTP_PORT}:80 Volumes: - App:/var/www/html:ro depends_on: - app volumes: db: App: backups:
And, tras guardar ambos ficheros ya podemos descargar las imágenes y desplegar los contenedores ejecutando:
sudo docker compose up -d
Y ya podremos acceder con un navegador por HTTP al puerto que indicamos en el fichero de configuración, por defecto el 8280tcp. Entraremos con el usuario ‘admin’ y la contraseña igualmente establecida en el fichero de configuración.
Veréis que a aplicación no tiene mucho misterio, su uso es muy sencillo, arriba a la derecha podremos entrar a las preferencias y crear directorios para organizarnos, así como para añadir sitios, bien por su URL o sus RSS, no nos preocuparemos ya que se añadirá perfectamente la web de la que queremos tener noticias cuando publiquen algo, se le pondrá su icono…
Y algo así quedaría por ejemplo las noticias de Una al día de Hispasec, también por supuesto os recomiendo las listas de INCIBE, that of Notices, la de su Cybersecurity Log o si queréis la de Vulnerabilities… O también las del Centro Criptológico Nacional o CCN-CERT, we have Notices, Alerts and Vulnerabilities inter alia. Cuantas menos, mejor 😉
O por ejemplo lo dicho, podemos usarla para suscribirnos a nuestros fabricantes, y que cuando saquen una nueva versión de un producto que usemos lo sepamos, o un parche, update… Bastará con ir a la web del fabricante, buscar la URL o el RSS de la web donde suela publicarlos, y añadirla a nuestro Tiny Tiny RSS (en las Fuentes).
Se puede compartir la misma instancia de Tiny Tiny RSS para tener un usuario genérico y compartirlo con el resto del equipo, o cada uno podrá tener su propio usuario de acceso y sus propias suscripciones.
Y tenéis varios clientes RSS en los Stores de vuestros móviles, yo uso en Android la app original. Os dejo unos pantallazos de cómo se verían las distintas vistas,
And, (For me) lo mejor de todo esto… es que no es necesario estar pendiente de acceder al sitio web para estar informado. Si no que lo comentado, se puede recibir un mail diario con el resumen, de lo que tu escojas y como veis totalmente personalizable, corporate…
To do this,, bastará con ir a las Preferencias de Tiny Tiny RSS en los Correos recopilatorios marcar ‘Enable digest’ e indicamos la hora aproximada en UTC para recibirlos.
Para que funcione el envío SMTP en Tiny Tiny RSS deberemos descargarnos un Plugin y darnos permisos, lo haremos ejecutando algo como esto:
git clone https://git.tt-rss.org/fox/ttrss-mailer-smtp.git /var/lib/docker/volumes/tinytinyrss_app/_data/tt-rss/plugins.local/mailer_smtp chown USUARIO_LINUX: /var/lib/docker/volumes/tinytinyrss_app/_data/tt-rss/plugins.local/mailer_smtp/ -R
Para configurar el SMTP, bastará con añadir a nuestro fichero ‘.env’ estas configuraciones:
TTRSS_PLUGINS=mailer_smtp,auth_internal,nginx_xaccel,note TTRSS_SMTP_FROM_NAME='NOMBRE DEL REMITENTE' TTRSS_SMTP_FROM_ADDRESS= CO**************@DO*****.ESO TTRSS_SMTP_SERVER=SERVIDOR_SMTP:587 TTRSS_SMTP_LOGIN= US*****@DO*****.ESO TTRSS_SMTP_PASSWORD=CONTRASEÑA TTRSS_SMTP_SECURE=tls TTRSS_SMTP_SKIP_CERT_CHECKS=yes TTRSS_DIGEST_SUBJECT='ASUNTO DEL CORREO'
And nothing, regeneramos los contenedores con los cambios realizados, aunque me pongo a pensar y quizá con reiniciar el contenedor valdría, total, What:
sudo docker compose up -d
Si queréis cambiar la plantilla del correo, para hacerlo customizado, tendréis que editar el fichero /home/usuario/tinytinyrss/digest_template_html.txt, vaya o donde hayáis creado la carpeta de ‘tinytinyrss’, y con código HTML lo tendremos en un periquete:
<!-- $BeginBlock digest --> <p style='font-family:Roboto Slab; font-size:14px'>Buenos días,</p> <p style='font-family:Roboto Slab; font-size:14px'>Te enviamos las últimas noticias y novedades, Please, presta atención:</p> <!-- $BeginBlock feed --> <b><p style='font-family:Roboto Slab'>${FEED_TITLE}</p></b> <ul> <!-- $BeginBlock article --> <li style='font-family:Roboto Slab; font-size:14px'><a href="${ARTICLE_LINK}">${ARTICLE_TITLE}</a> <div><em>${ARTICLE_LABELS}</em></div> <div>${ARTICLE_EXCERPT}</div> <!-- $EndBlock article --> </ul> <!-- $EndBlock feed --> <p>Y aquí ponéis vuestra firma</p> <!-- $EndBlock digest -->
Well, ¿chulo? Ahora no tenemos excusa para no estar al día de todo lo que sucede a nuestro alrededor, de las últimas noticias de ciberseguridad, de nuestros sitios IT de referencia (como pueda ser este blog 😉 😉 ), de cuando el producto de turno tiene un update… As usual, es mezclar cosas, dar ideas y posibilidades de mejorar nuestra organización en nuestros departamentos, as usual, que seáis felices y comáis perdices!