NOTICIAS

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

Your browser does not support the audio element.


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 http://ift.tt/1NxLqvJ 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://ift.tt/1IC6M8t
# 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

/**
* RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
* LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: http://ift.tt/2iw9uDv
/*
var disqus_config = function () {
this.page.url = PAGE_URL; // Replace PAGE_URL with your page’s canonical URL variable
this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page’s unique identifier variable
};
*/
(function() { // DON’T EDIT BELOW THIS LINE
var d = document, s = d.createElement(‘script’);
s.src = ‘http://ift.tt/2p6Qmft&#8217;;
s.setAttribute(‘data-timestamp’, +new Date());
(d.head || d.body).appendChild(s);
})();

Please enable JavaScript to view the comments powered by Disqus.

//https-angelbcn-github-io-ugeek.disqus.com/count.js

<img src="http://ift.tt/2pJ9jc3" height="1" width="1" alt="" /><br><br>

uGeek http://ift.tt/2p6CbqI