Archivo

Archivo para la categoría ‘Software’

De Ubuntu 18.04 Server a cliente Kodi

miércoles, 15 de abril de 2020 Sin comentarios

Partiendo del hecho de que una Ubuntu Server carece de interfaz gráfica tal cual la conocemos habitualmente, a la hora de instalar un Kodi y que sea lo único que aparezca se hace algo laborioso.

Instalaremos Kodi con lo siguiente:

add-apt-repository ppa:team-xbmc/ppa
apt install kodi

En caso de tener una tarjeta gráfica de Nvidia, instalaremos su driver propietario:

apt install ubuntu-drivers-common
ubuntu-drivers devices
ubuntu-drivers autoinstall

Observando los diferentes escritorios a los que podemos optar, yo elegí Lubuntu por su ligereza:

tasksel –list-task
tasksel install lubuntu-core
service lightdm start

Con lo anterior ya deberíamos tener una interfaz gráfica donde hacer login que hará que arranque Kodi nada más entrar. Para no necesitar introducir la contraseña podemos hacer que entre automáticamente creando un fichero «/etc/lightdm/lightdm.conf.d/50-myconfig.conf» que incluya lo siguiente:

[Seat:*]
autologin-user=nombre_de_usuario
autologin-user-timeout=0

Sin embargo, nos encontraremos con problemas para hacer passthrough de sonido a través del HDMI de la gráfica. Tendremos que crear un script que se inicie con la sesión que recoja estos comandos:

echo autospawn = no > $HOME/.config/pulse/client.conf
pulseaudio –kill > /dev/null 2>&1

 

Software libre para servicios en red

domingo, 5 de abril de 2020 Sin comentarios

Desde la comunidad Self-Hosted de Reddit encontré un repertorio lleno de alternativas de software libre para cubrir las necesidades que se nos puedan pasar por la cabeza y que podemos implantar con mayor o menor dificultad en nuestro servidor. Desde luego sirve como buen punto de partida cuando sabemos que queremos algo pero no sabemos por dónde empezar a probar proyectos.

Servidor Airsonic

sábado, 4 de abril de 2020 Sin comentarios

Airsonic es un fork de Subsonic. Es software libre, programado en Java y permite hacer streaming por HTTP de una gran multitud de formatos de música. Lo que más me gusta es que me permite explorar mi colección de música bajo la estructura de carpetas, nada de etiquetas.

Requiere tener instaladas una serie de dependencias:

apt install wget openjdk-8-jre ffmpeg

La instalación no es complicada:

useradd airsonic

mkdir -p /opt/airsonic

cd /opt/airsonic

wget https://github.com/airsonic/airsonic/releases/download/v10.5.0/airsonic.war

ln -s /usr/bin/ffmpeg

chown -R airsonic:airsonic /opt/airsonic

Y para que arranque al inicio crearemos un script de este estilo («nano /etc/systemd/system/airsonic.service»):

[Unit]
Description=Airsonic Media Server
After=remote-fs.target network.target
AssertPathExists=/opt/airsonic

[Service]
Type=simple
Environment=»JAVA_JAR=/opt/airsonic/airsonic.war»
Environment=»JAVA_OPTS=-Xmx700m»
Environment=»AIRSONIC_HOME=/opt/airsonic»
Environment=»PORT=8080″
Environment=»CONTEXT_PATH=/airsonic»
Environment=»JAVA_ARGS=»
EnvironmentFile=-/etc/default/airsonic
ExecStart=/usr/bin/java \
$JAVA_OPTS \
-Dairsonic.home=${AIRSONIC_HOME} \
-Dserver.context-path=${CONTEXT_PATH} \
-Dserver.port=${PORT} \
-jar ${JAVA_JAR} $JAVA_ARGS
User=airsonic
Group=airsonic

# See https://www.freedesktop.org/software/systemd/man/systemd.exec.html
# for details
DevicePolicy=closed
DeviceAllow=char-alsa rw
NoNewPrivileges=yes
PrivateTmp=yes
PrivateUsers=yes
ProtectControlGroups=yes
ProtectKernelModules=yes
ProtectKernelTunables=yes
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
RestrictNamespaces=yes
RestrictRealtime=yes
SystemCallFilter=~@clock @debug @module @mount @obsolete @privileged @reboot @setuid @swap
ReadWritePaths=/opt/airsonic

# You can uncomment the following line if you’re not using the jukebox
# This will prevent airsonic from accessing any real (physical) devices
PrivateDevices=yes

# You can change the following line to `strict` instead of `full`
# if you don’t want airsonic to be able to
# write anything on your filesystem outside of AIRSONIC_HOME.
ProtectSystem=full

# You can uncomment the following line if you don’t have any media
# in /home/…. This will prevent airsonic from ever reading/writing anything there.
ProtectHome=true

# You can uncomment the following line if you’re not using the OpenJDK.
# This will prevent processes from having a memory zone that is both writeable
# and executeable, making hacker’s lifes a bit harder.
#MemoryDenyWriteExecute=yes

[Install]
WantedBy=multi-user.target

Y si necesitamos añadir algún tipo de configuración especial crearemos un fichero con «nano /etc/default/airsonic» que, en principio, lleva el siguiente contenido:

# Set the location of the standalone war to use
JAVA_JAR=/opt/airsonic/airsonic.war

# Set any java opts separated by spaces
JAVA_OPTS=-Xmx700m

# Set a different location for the airsonic home.
# If this path is /opt/libresonic or even contains «libresonic»,
# the data from a previous libresonic can be used as is (i.e. without
# renaming libresonic.properties,db/libresonic*, etc
AIRSONIC_HOME=/opt/airsonic

# Change the port to listen on
PORT=8080

# Change the path that is listened to on
CONTEXT_PATH=/airsonic

# Add any java args. These are different than JAVA_OPTS in that
# they are passed directly to the program. The default is empty:
#JAVA_ARGS=

# Note that there are several settings for spring boot, not explicitly listed
# here, but can be used in either JAVA_OPTS or JAVA_ARGS. The full list
# can be found here:
# https://docs.spring.io/spring-boot/docs/1.4.5.RELEASE/reference/htmlsingle/#common-application-properties
# For example to set debug across the board:
#JAVA_ARGS=–debug

# Or to change the IP address that is listened to:
#JAVA_ARGS=–server.address=127.0.0.1

Habilitaremos el servicio:

systemctl daemon-reload

systemctl start airsonic

systemctl enable airsonic

Reiniciando Plasma de KDE sin reiniciar el sistema

sábado, 23 de noviembre de 2019 Sin comentarios

A veces el uso de una versión inestable del entorno de escritorio puede hacer que éste sufra algún tipo de error que fuerce su cerrado y nos deje sin barra de tareas. Si en dicha ocasión reiniciar el ordenador es un inconveniente, siempre nos quedará la posibilidad de, en versiones Plasma superiores a la 5.10, usar los siguiente comandos desde un terminal o desde ALT+F2:

kquitapp5 plasmashell
kstart5 plasmashell

En versiones inferiores a Plasma 5.10, supuestamente (no lo he probado) se deben utilizar los siguientes comandos:

killall plasmashell
kstart plasmashell

Categories: GNU/Linux, Software Libre Tags: , ,

Jellyfin como sustituto de Plex

sábado, 9 de noviembre de 2019 Sin comentarios

Jellyfin es un gestor de contenido multimedia que permite hacer streaming de nuestra música, películas, series, etc. Es como un sustituto de Plex y Emby (del cual proviene) de código totalmente abierto y gratuito.

Existe una imagen preparado con él en Turnkey que nos permite tener funcionando el sistema en cuestión de pocos minutos.

Si queremos tener la posibilidad de trascodificar nuestro contenido puede ser que nos salga el siguiente error al querer utilizar, por ejemplo, nuestro navegador:

PlaybackErrorNoCompatibleStream

Para darle solución sólo tendremos que instalar ffmpeg de la siguiente forma:

apt install ffmpeg

Después, desde el panel de control de Jellyfin dentro de la sección de «Reproducción» tendremos que poner la siguiente ruta en «Ruta de FFmpeg:»:

/usr/bin/ffmpeg

Seafile con editor para ofimática

miércoles, 23 de octubre de 2019 Sin comentarios

Si tenemos funcionando un servidor de Seafile para tener nuestros documentos siempre a mano como alternativa a NextCloud, podemos dotarlo de un complemento que nos permitirá visualizar y editar ficheros en línea del tipo .odt, .docx, etc. Para ello sólo tenemos que seguir unas instrucciones bastantes básicas como usuario root para el supuesto caso de que tengamos Debian:

curl -sL https://deb.nodesource.com/setup_8.x | bash –

apt update

apt dist-upgrade

apt-get install postgresql

su postgres

psql -c «CREATE DATABASE onlyoffice;»

psql -c «CREATE USER onlyoffice WITH password ‘onlyoffice’;»

psql -c «GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;»

exit

apt-get install redis-server

apt-get install rabbitmq-server

apt-get install npm nginx-extras

apt install dirmngr

apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv-keys CB2DE8E5

echo «deb https://download.onlyoffice.com/repo/debian squeeze main» | tee /etc/apt/sources.list.d/onlyoffice.list

apt-get update

apt-get install onlyoffice-documentserver

Después deberemos editar un fichero de configuración ( conf/seahub_settings.py ) de nuestro servidor Seafile para que derive al otro la apertura de este tipo de documentos. Concretamente hay que añadir lo siguiente:

# Enable Only Office
ENABLE_ONLYOFFICE = True
VERIFY_ONLYOFFICE_CERTIFICATE = False
ONLYOFFICE_APIJS_URL = ‘http://mi-servidor/web-apps/apps/api/documents/api.js’
ONLYOFFICE_FILE_EXTENSION = (‘doc’, ‘docx’, ‘ppt’, ‘pptx’, ‘xls’, ‘xlsx’, ‘odt’, ‘fodt’, ‘odp’, ‘fodp’, ‘ods’, ‘fods’)
ONLYOFFICE_EDIT_FILE_EXTENSION = (‘docx’, ‘pptx’, ‘xlsx’)

Sólo nos quedaría reiniciar los servicios de Seafile y ya debería dejarnos consultar y editar los documentos desde la interfaz web.

Haciendo un wget sobre Google Drive

miércoles, 26 de diciembre de 2018 Sin comentarios

Si nos vemos ante la necesidad de descargar un fichero alojado en Google Drive desde línea de comandos, existe una pequeña utilidad escrita en Perl que será ideal.

Tan sólo tenemos que seguir estas pautas que dejó su autor:

wget https://raw.githubusercontent.com/pavanjadhaw/gdown.pl/master/gdown.pl && chmod u+x gdown.pl

./gdown.pl "enlace de Google Docs" fichero.zip

 

Categories: Software Libre Tags: ,

Editor online

jueves, 3 de mayo de 2018 Sin comentarios

Para probar lenguajes de programación nuevos sin tener que instalar nada de manera sencilla, hay disponible de forma gratuita y sin necesidad de registrarse una web llamada Rept.it

Por el contrario, si lo que queremos es un entorno aún más completo, con posibilidad de levantar un servidor accesible desde el exterior e instalar algunas dependencias necesarias, podemos contar de manera gratuita (aunque tiene planes más completos) con C9.io.

Categories: Software Tags:

¿WordPress te pregunta por una cuenta FTP?

viernes, 21 de abril de 2017 Sin comentarios

Instalas WordPress en tu propio servidor y cuando intentas instalar un plugin o actualizar la versión te sale una pantalla en la que te solicita la introducción de los datos de acceso por FTP. Esto es síntoma de que los permisos sobre la carpeta «wp-content» no son correctos o que el sistema de auto-detección de modo de escritura que incorpora WordPress no termina de funcionar correctamente en tu configuración.

Podemos intentar saltarnos ese sistema de auto-detección si estamos seguros de que los permisos son correctos en la carpeta «wp-content». Para ello tendremos que indicarle el método en el fichero «wp-config.php»

define(‘FS_METHOD’, ‘direct’);

Categories: Software Libre Tags:

Dando a Vivaldi soporte para H.264, MP3 y AAC

miércoles, 1 de junio de 2016 Sin comentarios

Vivaldi es un navegador web desarrollado por parte del equipo inicial de Opera. Utiliza el motor de Chrome e intenta ser todo lo personalizable posible. Yo lo he encontrado como una alternativa fabulosa al alto consumo de recursos de Firefox.

La única pega que me ha hecho plantearme el seguir usándolo ha sido su falta de soporte de recursos multimedia en H.264. Pero, por suerte, tiene solución compilando la librería FFMPEG que incorpora Chromium. Los pasos a seguir están expuestos aquí pero para ciertos sistemas (OpenSuse) resultan incompletos.

Instalamos los elementos básicos para poder compilar aplicaciones en nuestro sistema:

zypper in -t pattern devel_basis

Definimos en una variable la versión del motor de Chrome que está utilizando nuestra versión instalada de Vivaldi (la podemos encontrar en el menú Ayuda->Acerca de):

CHRVER=50.0.2661.102

Descargamos el código fuente de Chromium para esa versión y lo descomprimimos:

wget http://commondatastorage.googleapis.com/chromium-browser-official/chromium-$CHRVER.tar.xz

tar xf chromium-$CHRVER.tar.xz

cd chromium-$CHRVER

Instalamos unas cuantas dependencias que necesitaremos:

zypper install git libXi-devel libXcursor-devel libXcomposite-devel libXrandr-devel libXtst-devel libXScrnSaver-devel pciutils-devel dbus-1-devel gconf2-devel libgnome-keyring-devel mozilla-nss-devel libffi-devel-gcc5 libexif-devel binutils-gold

Descargamos una serie de herramientas que nos ayudarán en el proceso de compilación y estableceremos una variable para indicar dónde se encuentran:

git clone –depth 1 https://chromium.googlesource.com/chromium/tools/depot_tools.git

export PATH=»$PATH:`pwd`/depot_tools»

El comando «pkg-config –variable pc_path pkg-config» nos mostrará los directorios donde se buscan las librerías pc:

/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:/opt/kde3/lib64/pkgconfig

Si no está «/usr/lib64/pkgconfig/», añadimos la ruta con el siguiente comando:

export PKG_CONFIG_PATH=/usr/lib64/pkgconfig/

Ejecutamos los siguientes scripts que, aunque deberían ejecutarse automáticamente, no siempre lo hacen:

./build/linux/sysroot_scripts/install-sysroot.py –running-as-hook

./build/linux/sysroot_scripts/install-sysroot.py –arch i386

./build/linux/sysroot_scripts/install-sysroot.py –arch amd64

Preparamos la compilación de la librería FFMPEG:

touch chrome/test/data/webui/i18n_process_css_test.html

./build/gyp_chromium –depth . -Dcomponent=shared_library -Dffmpeg_branding=ChromeOS -Dclang=0

Configuramos nuestro compilador para que soporte diferentes plataformas:

export C_INCLUDE_PATH=/usr/include/$(gcc -print-multiarch)

Y a compilar:

ninja -C out/Release ffmpeg

Finalmente, para su instalación sólo tendremos que ejecutar lo siguiente:

install out/Release/lib/libffmpeg.so /opt/vivaldi/libffmpeg.so

Para probar los resultados podemos visitar la siguiente página que nos mostrará una serie de vídeos con distinto formato para que comprobemos la compatibilidad de nuestro navegador.

Categories: Software Tags: , ,