Mostrando entradas con la etiqueta terminal. Mostrar todas las entradas
Mostrando entradas con la etiqueta terminal. Mostrar todas las entradas

14 de febrero de 2022

Github por consola usando personal token

Desde agosto de 2021 ya no se puede usar el usuario y contraseña para hacer operaciones desde la consola y es necesario usar un token personal.

Evidentemente, memorizar un token (o varios) es una locura, con lo que cachearlo de una forma segura es la más adecuado.

Existen varias formas de lograrlo. Se puede usar Github CLI, pero personalmente prefiero usar git que es más genérico.

Creando el token

Lo primero que hace falta es crear un token. Sobre nuestra foto de perfil pinchamos y seguimos esta ruta:

Settings > Developer settings > Personal access tokens

Le pongo un nombre al nuevo token, la caducidad y marco sólo el scope "repo"

NOTA: Dependiendo de lo que se use pueden hacer falta marcar otras opciones como workflow, si las necesitamos se rechazará por ejemplo nuestro push y nos indicará si tenemos que dar más permisos que implicaría crear de nuevo otro token.

En mi caso me creo uno por dispositivo, servicio u ocasión (como en un ordenador compartido para una demo) y así puedo tener más controlado los que están activos y en caso de creer que está comprometido puedo revocarlo. Así que le pongo el nombre del dispositivo y en mi ordenador trabajo habitual lo pongo sin caducidad.

Al crear el token lo copiamos, porque luego desaparece, y lo usamos para comprobar que funciona en el mismo lugar que antes introducíamos la contraseña.

Hacemos la prueba clonando un repositorio usando HTTP.

NOTA: En esta guía usamos la forma más simple para un usuario particular. Hay muchas formas distintas que cada uno tendrá evaluar si son más adecuadas (SSH, doble factor, etc...).

Cacheando las credenciales

Hay varios métodos para guardar credenciales con la ayuda de git.

Mi preferido es configurar el archivo para almacenarlas para mi usuario en mi home con el comando:

git config --global credential.helper 'store --file ~/.mis-credenciales-git'

Una vez configurado, se utiliza la primera vez el nombre de usuario y el token como contraseña y ya estará almacenado.

Si lo hacemos global hay que tener en cuenta que almacenará, en claro, todas las credenciales que usemos en todos los repositorios (github, gitlab, etc...). Se puede ver lo que ha guardado simplemente abriendo el fichero.

Si por cualquier razón pensáramos que el archivo está comprometido simplemente se anula el token en github (ojo si contiene más credenciales). Si ya no quisiéramos usar un fichero para el cacheo es buena idea borrarlo.

16 de febrero de 2021

Streaming con OBS en LAN

El objetivo de esta guía es hacer streaming de un equipo en una red LAN. Se va a usar un equipo con tarjeta gráfica NVIDIA (usando una GTX 750Ti, comprobar que tiene NVENC la tarjeta gráfica) y Ubuntu (probado en Ubuntu 18.04).

Se instala OBS: https://obsproject.com

Se ejecuta el asistente de OBS para ver configuración recomendada. Si detecta NVENC es que se puede codificar con la tarjeta NVIDIA, si no hay que instalar los drivers apropiados:

sudo ubuntu-drivers autoinstall

Con esto ya debería ejecutarse el asistente y salir NVENC.

Después hay que montarse un servidor web para servir el video. Uso nginx como en este post: https://obsproject.com/forum/threads/broadcasting-in-a-lan.20637

OBS uses the rtmp protocol to stream. This depends on servers to distribute the stream to the viewers, thats where nginx fits in. You can run it on any of the two machines and under windows just fine.

Lets say PC1 has the lan ip 192.168.0.5 and PC2 has .0.6, we run nginx on PC1 (with a simple configuration file that has one application called "live1" which awaits your stream). In OBS on PC1 we setup a livestream to a custom service and can use rtmp://127.0.0.1/live1 or rtmp://192.168.0.5/live1 for the server address.
As playpath use "camera" without the quotes. You probably already configured your scenes in OBS (added the Camera) so you could now start streaming.

On the second PC, load up VLC and use open network stream. As the address this time we have to use rtmp://192.168.0.5/live1/camera so we combine the network ip with the application and the playpath so VLC can request the stream from nginx. So after clicking Play, you should see your camera feed.
For nginx, I host a compiled package for Windows at http://rtmp.jack0r.com/ it comes with an example config file so is pretty much ready to go. (Has the live1 app already) Of course if you have a question, just post it below and if you want some more general guides about nginx check out: http://www.helping-squad.com/server/

En mi caso lo hago con docker:

  1. Instalar docker: https://docs.docker.com/engine/install/ubuntu
  2. Y uso esta imagen: https://hub.docker.com/r/tiangolo/nginx-rtmp
  3. Una vez arrancado el nginx voy a OBS a la Configuración de Emisión y elijo la opción Personalizado/Custom. En servidor pongo rtmp://127.0.0.1/live y en clave pongo el nombre de la escena para emitir (en el ejemplo pongo prueba)
  4. Luego en otro ordenador de la LAN abro VLC y uso la ubicación de red rtmp://<ip como 192.168.?.?>/live/<clave - así que ponemos prueba>
  5. El video me llega con retraso de algunos segundos pero se ve muy bien
  6. Habría que probar con las gráficas integradas a ver si es suficiente. Por ejemplo para un aula de informática con ordenadores donde es suficiente ver el código a pocos FPS y sin audio no debería haber problemas. Si se dispone de dos monitores en cada puesto es mejor que usar un proyector.

12 de marzo de 2017

Recortar y convertir un video por línea de comandos con VLC

Reconozco que me gustan los comandos. Me permiten hacer más cosas, con más detalle y con menos trabajo que ir haciendo clicks en una GUI. Su único inconveniente es saber cómo hacerlo.


Esta entrada es un comando que permitirá recortar y convertir un fichero de video en otro en H264/mp3.

Éste es el comando (formateado un poco para ver los detalles):

"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"
   C:\origen.avi --start-time="5" --stop-time="30"
   :sout="#transcode{
      vcodec=h264,
      acodec=mp3,
      ab=128,
      scale=1,
      channels=2,
      samplerate=44100}
   :std{
      access=file,
      mux=mp4,
      dst=C:\destino.mp4}"

Lo que hace es abrir VLC con el fichero "origen.avi" que se convertirá según las opciones de codificación marcadas desde segundo 5 al 30 del vídeo (hace un recorte)

13 de julio de 2014

Instalar Steam en Debian

Gracias a que Steam no se ha olvidado de los jugadores de Linux quizás necesitas instalarlo en Debian y puede que te hallas encontrado un problema de dependencias: el instalador que se descarga directamente de la web de Steam requiere libc6 >= 2.15 y en los repositorios estables de Debian dan como la última versión la 2.13 así que intentos de actualización habituales no solucionaran el problema.


Debes tener cuidado con los cambios que vayas a hacer ya que es una librería muy importante de la que dependen muchos paquetes y puedes cargarte la máquina si no lo haces con cuidado.
Por suerte en GitHub se ha colgado otro instalador que añade al original de Valve la solución a estas dependencias.
Para instalarlo utiliza la terminal con los siguientes comandos:

wget https://github.com/GhostSquad57/Steam-Installer-for-Wheezy/raw/master/steam-debian_1.0.0.49-7_all.deb
sudo dpkg -i steam-debian_1.0.0.49-7_all.deb

Pero si por ejemplo es una instalación nueva puede salirte que no tienes dos paquetes necesarios: "realpath" y "curl". Así pues:

sudo aptitude install realpath
sudo aptitude install curl

Con estos pasos me funciono con una instalación limpia de Debian 7.6. Si lo hacéis de esta forma el script completo desatendido para ejecutar como administrador sería:

aptitude -y install realpath
aptitude -y install curl
wget https://github.com/GhostSquad57/Steam-Installer-for-Wheezy/raw/master/steam-debian_1.0.0.49-7_all.deb
dpkg -i steam-debian_1.0.0.49-7_all.deb

NOTA: si vuestra distribución es de 64bits también deberéis añadir la arquitectura de 32 para que os funcione:

sudo dpkg --add-architecture i386
sudo apt-get update

Espero que os sirva, nos vemos en Steam.

Información obtenida de crunchbang.

5 de agosto de 2012

VirtualBox: Copiando Discos


Buenas a todos:

Después de un largo paréntesis en mis entradas por motivos varios, traigo una solución a un problema que seguro que os habéis encontrado trasteando con VirtualBox.

Yo empecé con la virtualización de equipos usando VirtualPC (Microsoft). Es sencillo y para el que quiera poco más que tener una máquina con la que trastear usando software nuevo o emular alguna antigua por ejemplo, pues sirve. Si tienes un poco más de conocimientos y quieres hacer algo más avanzado (además de usar una solución abierta) seguramente ya te hayas pasado a VirtualBox.
Cualquier máquina con VirtualPC puedes pasarla a VirtualBox. Yo lo que suelo hacer es crear una nueva máquina en VirtualBox y enchufarle el disco duro de la antigua. Haciendo esto corres el riesgo de que en varias máquinas "clonadas manualmente" por uno mismo, al querer registrar los distintos dispositivos virtuales de almacenamiento, se presente un error que diga que el UUID (Identificador Universal Único) del disco que quieres añadir ya existe.

Esto es porque al copiar los discos duros como archivos en el sistema de archivos del huésped se copian con su UUID. Por tanto en vez de copiarlos hay que clonarlos o, en caso de que no puedas hacer esto, cambiarles el UUID.

Eso podemos hacerlo usando la línea de comandos con VBoxManage. Con GNU/Linux no deberíais tener problemas con ejecutarlo en la terminal directamente. Con Windows lo primero es encontrar dónde está ese ejecutable porque lo normal es que no esté en nuestra variable $PATH. En Windows 7 deberíais encontrarlo en C:/Program Files/Oracle/VirtualBox. Si es así los comandos para las dos opciones serían:


Sólo para Windows (ponernos en el directorio de trabajo apropiado):
cd "C:/Program Files/Oracle/VirtualBox"
NOTA: Las comillas son importantes para que el comando incluya los espacios de la ruta.

Para Clonar HDD Virtual:
VBoxManage clonehd <path del HDD a clonar> <path del destino del HDD clonado>

Para Cambiar UUID del medio:
VBoxManage internalcommands sethduuid <path del HDD para cambiar su UUID>

Con cualquiera de las dos opciones vuestro HDD virtual tendrá un nuevo UUID y podrá ser registrado correctamente por VirtualBox.

Aquí he comentado dos aplicaciones de virtualización, pero hay más. Una de las más conocidas es VMWare pero es de pago (y bastante cara) y creo que sólo compensa para virtualización de servidores. Como entiendo que con los tiempos que corren el ahorro es importante, recomiendo VirtualBox. Además las máquinas de VMWare también se pueden traer a VirtualBox.

Espero os haya servido.

4 de abril de 2012

Linux por Terminal Server

Actualmente en mi casa tengo un equipo pepino, uno muy antiguo (carca) y un netbook (para cuando estoy tirado en el sillón o los viajes). Con el pepino va todo muy bien, corres varias máquinas virtuales haciendo experimentos distintos y va como la seda. Con el carca ya es otro cantar. A veces te dan pequeños ataques de ira esperando a que haga lo que quieres, incluso teniendo Ubuntu puesto (estoy pensando en darle una oportunidad a Macpup, derivado de Puppy Linux con escritorio Enlightenment E17 un tamaño de 164 Mb y que corre entero en RAM, ya os contaré).

Un día pensé que podía tirar de escritorio remoto sobre una máquina virtual en mi equipo pepino desde uno de los otros dos para aprovechar mejor la capacidad de computación (el PC antiguo por si esta ocupado el grande y el netbook por si no quiero levantarme del sillón)
No son las máquinas reales que tengo XD 
Quería que esa máquina virtual fuera Linux. Probé compartir el escritorio que era lo que más a mano se veía, pero rápidamente fue descartado por tener que logearte primero, la imagen no iba bien y cargaba más la red. Nada elegante.

En mi trabajo se usa Windows. Estoy acostumbrado a usar Terminal Server que usa el protocolo RDP y estaba interesado en incluirlo en la solución, por si acaso. Además buscaba que no tuviera que instalar nada en los equipos que utilizaran este servicio.

Después de probar y buscar varias cosas elegí instalar en Linux la aplicación xrdp combinado con TightVNC.

La instalación es sencilla si se respeta instalar primero TightVNC y luego xrdp. En Ubuntu sería lo siguiente

sudo apt-get install tightvncserver
sudo apt-get install xrdp
sudo reboot

Sólo hay dos problemas:
  1. Con el escritorio Gnome habrá que usar el editor gconf-editor para poner false en la variable /apps/gnome_settings_daemon/plugins/keyboard o tendremos problemas con funciones del teclado (Nota: para Ubuntu 12.04 parece que no hay este problema)
  2. No hay soporte para teclado español en xrdp así que habrá que usar una configuración inglesa. 
Una vez esto hecho sólo debemos abrir nuestra aplicación de "Conexión a Escritorio Remoto" con la dirección IP del equipo en el que instalamos Tightvnc y xrdp.
Conexión a Escritorio remoto de Windows 
Nos saldrá un login para xrdp donde pondremos en Module sesman-Xvnc y el usuario y contraseña un usuario del sistema host (donde instalamos el xrdp).
Login para xrdp 
Después de esto ya podéis disfrutar de la velocidad del pepino en el sillón o tu viejo PC. Yo estoy muy contento con ello. Espero comentarios.

Gracias a Javier Andrés Alonso y su blog (enlace a entrada) por enseñarme esta vía que es la mejor de todas las gratuitas que he probado.

Un saludo a todos.

Compárteme

Entradas populares