Pues bueno, aqui es un poco para poner lo que tengo montado y las cosas que voy cambiando. Voy a copiar un poco lo que puse en el hilo de Ideas! Ya que apenas ha cambiado, y los cambios los voy a ir poniendo en respuest a este hilo. Aqui se pueden hacer comentarios y criticas a como lo estoy haciendo y asi podemos aprender juntitos.
Objetivo
Tengo dos objetivos claros con lo de la automatizacion, lo primero es hacerme la vida mas facil (plex) y lo segudo desarrollar mas rapido para poder hacerme la vida mas facil.
- El primer objetivo es facil, coger herramientas que ya estan hechas en la mayoria de casos y configurarlas un poquito para que hagan lo que quieres.
- El segundo no es tan facil ya que no suele haber ya hecho algo que se adapte a todas mis necesidades (y me guste su estilo), asi que seria cosa de hacerlo yo. Para esto, tengo que automatizar startup de proyectos, deployments... etc.
Mi setup
Tecnologias
- Docker: Instalar Docker en Synology es easy
- Kotlin: Estoy usando Kotlin multiplataforma para todo lo que estoy haciendo, hay cosas que solo las hago para la JVM pero en general estoy tirando para ejecutables nativos.
- Gradle: Para hacer build de los proyectos e incluso ejecutar algunos de los procesos
Contenedores
Todo esta automatizado en este aspecto, estoy usando docker compose y tengo un archivo con toda la configuracion de los contenedores. Que se actualizan una vez a la semana de madrugada, y se levantan solos cuando hago un commit a ese fichero en concreto.
- Bazarr: Subtitulos para las series
- Gilab-runner: El runner de gitlab para integracion continua (es necesario si quieres usar CI)
- Gitlab: Tengo todos mis proyectos personales que no quiero que esten en Github (gorrito de papel de plata incoming)
- Grafana: Visor de datos, normalmente metricas, pero lo he adaptado para pillar datos de postgres sobre mis transacciones bancarias)
- Jackett: Agregador de APIs para torrenting
- Nginx: Routing desde subdominios hasta los puertos (del tipo: plex.mydomain.com)
- Plex: Tengo plex pass (lifetime) y lo uso para las series que no estan en Netflix (y Anime)
- Postgres: Monitorizacion, ahora mismo solo es para los bancos pero tengo alguna que otra idea por medio
- Radarr: Una vez configurado, se baja las peliculas automaticamente
- Runners: Estas son las imagenes que levanta el gitlab-runner y que son (o no) reutilizables, se borran cada X y sin problema.
- Sonarr: Igual que Radarr, pero para las series
Lo que yo tengo
- Las series y las peliculas se bajan automaticamente y me envian un mensaje a Telegram cuando estan disponibles en Plex.
- Plugin para firefox que envia lo que veo desde Netflix hacia Trakt.tv
- Las transacciones de los bancos las exporto y las subo al proyecto donde se meten en el postgres y puedo ver datos en grafana del tipo: Ahorros totales, gastos totales, ahorro mensual... etc
- WIP: Estoy trabajando en un templater, basicamente quiero un template para proyectos que hago (normalmente dentro del NAS) y poder crear proyectos en cuestion de segundos. Los templates estan alojados en Github y cada uno puede tener los suyos propios, por ejemplo quiero tener un template que es un servicio con Ktor en nativo y el packaging vaya en docker asi solo me preocupo de escribir el codigo que necesito en vez de todo el wrapper cada vez. Una especie de mvn-archetype pero sin ser esa basura. (Aunque esto me esta llevando mas de lo que me gustaria)
- Dotfiles: Tengo todas mis dotfiles en Gitlab y tengo la configuracion comun en un sitio y ademas en cada uno de los sistemas que uso, tengo comandos y cosas especificas:
- NAS: Tengo comandos para los gitlab runners etc
- Mac: Cosas del mac
- WSL Ubuntu: Mierdas de ubuntu
- Internamente tengo ejecutables para manejar mis proyectos, lo tengo todo configurado en un JSON. Cada proyecto tiene un alias y puedo hacer build, update y clear sin tan siquiera estar en ese directorio: build dotfiles, o para navegar facilmente al proyecto cdp dotfiles. Todo tiene autocompletado asi que no me tengo ni que acordar de los nombres
- Para el mac tengo Alfred, bastante curioso el programita ya que ahora puedo ejecutar builds etc con el Cmd+Space, ademas de tener todos mis favoritos (uso el mac para programar), y URLs como search engines en vez de todo en Firefox.