049. Instalando Syncthing en Ubuntu, Antergos y Raspberry Pi

Publicado por Angel

Tags: , Antergos , PC , Raspberry , instalación , podcast , syncthing , ubuntu ,

Suscribete al Blog RSS del Blog
Suscribete al Podcast RSS ITunes ivoox

syncthing En el siguiente post os explicaré como instalar Syncthing en Ubuntu, Antergos o Raspberry Pi.

Como explico en el audio, Syncthing no solo sincroniza carpetas entre dispositovos, servidores, etc… Si no que además, podremos hacer esta sicronización con la sencillez de no tener que abrir puertos y creando backups de versiones de todos los archivos, decidiendo el numero de versiones que queremos que se creen tanto en un dispositivo, como en otro.

Vamos con la instalación en los diferente dispositivos:

Antergos

sudo pacman -S syncthing syncthing-gtk

Ubuntu, Raspbian o derivadas de debian

Añadimos el repositorio

curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
sudo echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list

Actualizamos los repositorio y comenzamos la instalación

sudo apt-get update 
sudo apt-get install syncthing

Ahora ya podemos lanzar la aplicación

syncthing

Se abrirá nuestro navegador automáticamente o lo abriremos nosotros, y para acceder a la interfaz web escribiremos localhost:8384

Hasta aquí, el proceso de instalación es igual en todas las distros derivadas de debian. Para que Syncthing se inicie cada vez que arranquemos el sistema operativo, escribimos en la terminal:

systemctl --user enable syncthing.service

Reiniciamos y comprovamos el estado con:

systemctl --user status syncthing.service

Si da error:

sudo systemctl start service

Si estamos utilizando Raspbian Lite, la terminal nos devolverá un error, ya que el método para que inicie cada vez que reiniciemos nuestra Raspberry Pi es diferente.

Raspbian Lite

Lo primero que debemos hacer, si queremos acceder desde otro dispositivo a la interfaz web de Syncthing, dentro de nuestra red local, es editar un archivo de configuración mediante SSH. Introduciremos esta línea en la Terminal y añadiremos la ip de nuestra Raspberry Pi, en lugar de 127.0.0.1.

sudo nano ~/.config/syncthing/config.xml

Cambiamos aquí la ip

<gui enabled="true" tls="false">
    <address>127.0.0.1:8384</address>
</gui>

Ahora creamos un script:

sudo nano /etc/init.d/syncthing

Copiamos esto:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          Syncthing
# Required-Start:    $local_fs $remote_fs $network
# Required-Stop:     $local_fs $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Syncthing
# Description:       Syncthing is for backups
### END INIT INFO
 
 
# Documentation available at
# http://refspecs.linuxfoundation.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptfunc.html
# Debian provides some extra functions though
. /lib/lsb/init-functions
 
 
DAEMON_NAME="syncthing"
DAEMON_USER=pi
DAEMON_PATH="/usr/bin/syncthing"
DAEMON_OPTS=""
DAEMON_PWD="${PWD}"
DAEMON_DESC=$(get_lsb_header_val $0 "Short-Description")
DAEMON_PID="/var/run/${DAEMON_NAME}.pid"
DAEMON_NICE=0
DAEMON_LOG='/var/log/syncthing'
 
[ -r "/etc/default/${DAEMON_NAME}" ] && . "/etc/default/${DAEMON_NAME}"
 
do_start() {
  local result
 
	pidofproc -p "${DAEMON_PID}" "${DAEMON_PATH}" > /dev/null
	if [ $? -eq 0 ]; then
		log_warning_msg "${DAEMON_NAME} is already started"
		result=0
	else
		log_daemon_msg "Starting ${DAEMON_DESC}" "${DAEMON_NAME}"
		touch "${DAEMON_LOG}"
		chown $DAEMON_USER "${DAEMON_LOG}"
		chmod u+rw "${DAEMON_LOG}"
		if [ -z "${DAEMON_USER}" ]; then
			start-stop-daemon --start --quiet --oknodo --background \
				--nicelevel $DAEMON_NICE \
				--chdir "${DAEMON_PWD}" \
				--pidfile "${DAEMON_PID}" --make-pidfile \
				--exec "${DAEMON_PATH}" -- $DAEMON_OPTS
			result=$?
		else
			start-stop-daemon --start --quiet --oknodo --background \
				--nicelevel $DAEMON_NICE \
				--chdir "${DAEMON_PWD}" \
				--pidfile "${DAEMON_PID}" --make-pidfile \
				--chuid "${DAEMON_USER}" \
				--exec "${DAEMON_PATH}" -- $DAEMON_OPTS
			result=$?
		fi
		log_end_msg $result
	fi
	return $result
}
 
do_stop() {
	local result
 
	pidofproc -p "${DAEMON_PID}" "${DAEMON_PATH}" > /dev/null
	if [ $? -ne 0 ]; then
		log_warning_msg "${DAEMON_NAME} is not started"
		result=0
	else
		log_daemon_msg "Stopping ${DAEMON_DESC}" "${DAEMON_NAME}"
		killproc -p "${DAEMON_PID}" "${DAEMON_PATH}"
		result=$?
		log_end_msg $result
		rm "${DAEMON_PID}"
	fi
	return $result
}
 
do_restart() {
	local result
	do_stop
	result=$?
	if [ $result = 0 ]; then
		do_start
		result=$?
	fi
	return $result
}
 
do_status() {
	local result
	status_of_proc -p "${DAEMON_PID}" "${DAEMON_PATH}" "${DAEMON_NAME}"
	result=$?
	return $result
}
 
do_usage() {
	echo $"Usage: $0 {start | stop | restart | status}"
	exit 1
}
 
case "$1" in
start)   do_start;   exit $? ;;
stop)    do_stop;    exit $? ;;
restart) do_restart; exit $? ;;
status)  do_status;  exit $? ;;
*)       do_usage;   exit  1 ;;
esac

Damos poderes de ejecución

sudo chmod +x /etc/init.d/syncthing

Habilitamos que inicie cada vez que reiniciemos

sudo update-rc.d syncthing defaults

Ahora podemos iniciar así

sudo service syncthing start
Written on April 30, 2017