Torrent en Raspberry Pi (Deluge & Transmission) con Apache

Actualizado a 3 de Septiembre de 2020

Instrucciones para instalar torrent manualmente en un servidor ya existente para proporcionarle más funcionalidad, en este caso estas son las instrucciones para los dos más populares, Deluge y Transmission.

Primero actualizar la Raspberry pi

sudo rpi-update
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Vamos a utilizar el cliente Deluge así que instalamos los paquetes:

sudo apt-get install deluged
sudo apt-get deluge-console

Ahora hay que arrancar el demonio en Linux y después lo paramos, esto es para que cree la configuración por defecto.

sudo deluged 
sudo pkill deluged

Primero un backup de la configuración original y editamos el archivo, al haber instalado con sudo los ficheros estarán en la carpeta /root.

sudo cp /root/.config/deluge/auth /root/.config/deluge/auth.old.nano
sudo nano /root/config/deluge/auth

Ahora hay que cambiar la línea que aparece en fichero con este formato user:password:level, esta cuenta sirve para administrar raspberry, en este caso usamos los valores por defecto de raspberry como ejemplo, donde 10 indica máximo nivel de permisos, pi:raspberry:10 y ahora arrancamos el demonio y arrancamos la consola.

sudo deluged 
sudo deluge-console

En esta consola arrancamos los siguientes comandos: config -s allow_remote True, esto habilita las conexiones remotas, para verificar el valor se puede usar el comando config allow_remote, para salir basta con usar exit.

Ahora reiniciar para hacer efectivos los cambios.

sudo pkill deluged
sudo deluged

En web de Deluge existen clientes de escritorio para instalar, pero en este caso vamos a usarlo vía web.

sudo apt-get install python-mako
sudo apt-get install deluge-web
sudo deluge-web &

El puerto por defecto es 8112, si se quiere cambiar se puede hacer con el siguiente comando, en el fichero cambiar la línea port por el puerto (superior a 1000), en este mismo fichero completamos la línea: «default_daemon»:»localhost:58846″

sudo pkill deluge-web
sudo nano /root/.config/deluge/web.conf

Ahora se puede acceder a la dirección web http://raspberry:8112 la cual abrirá una web con una contraseña que por defecto es deluge.

Después de esto es necesario reiniciar y arrancar de nuevo.

sudo pkill deluged
sudo deluged

Ahora solo queda configurar Deluge para que arranque en el inicio, para esto editamos el archivo /etc/rc.local y agregamos las siguientes líneas al final del archivo (antes de la línea exit 0)

sudo -u pi /usr/bin/python /usr/bin/deluged
sudo -u pi /usr/bin/python /usr/bin/deluge-web

Ahora vamos a instalar transmission:

Primero instalar los paquetes:

sudo apt-get update
sudo apt-get install transmission transmission-daemon

Ahora paramos el servicio para poder editar los ficheros de configuración

sudo service transmission-daemon stop

Ahora editamos el fichero:

sudo nano /etc/transmission-daemon/settings.json

Y modificamos los siguientes parámetros, en este caso los parámetros «download-dir» y «incomplete-dir» apuntan a la carpeta donde se guardará el torrent y la carpeta temporal donde se ubican mientras se van descargando. La carpeta «watch-dir» es la carpeta donde se dejan los torrent que se descargarán automaticamente.

"blocklist-enabled": true,
"blocklist-url": "http://john.bitsurge.net/public/biglist.p2p.gz",
"download-dir": "/mnt/samba/hdd/download", 
"incomplete-dir": "/mnt/samba/hdd/temp", 
"incomplete-dir-enabled": true, 
"rpc-password": "TuPassWord", 
"rpc-username": "transmission", 
"rpc-whitelist-enabled": false,
"watch-dir":"/mnt,
"rpc-host-whitelist-enabled": false,

Ahora tenemos que cambiar el usuario con el que se ejecuta para poder hacerlo con el usuario pi, esto es especialmente útil sobre todo si hemos usado el usuario pi para mapear una unidad de red o una unidad USB.

Primero detenemos el demonio.

service transmission-daemon stop

Cambiamos el usuario

sudo nano /etc/init.d/transmission-daemon

y cambiamos:

USER=debian-transmission por USER=pi

También tenemos que editar el siguiente fichero:

nano /etc/systemd/system/multi-user.target.wants/transmission-daemon.service

Y ponemos esto:

[Unit]
Description=Transmission BitTorrent Daemon
After=network.target
[Service]
User=pi
Type=forking
PIDFile=/var/lib/transmission-daemon/.config/transmission-daemon/trans.PID 
ExecStart=/usr/bin/transmission-daemon --pid-file /var/lib/transmission-daemon/.config/transmission-daemon/trans.PID --config-dir /var/lib/transmission-daemon/.config/transmission-daemon/ 
[Install] 
WantedBy=multi-user.target

Ahora creamos el archivo pid y configuramos los permisos:

touch /var/lib/transmission-daemon/.config/transmission-daemon/trans.PID 
chown pi.pi /var/lib/transmission-daemon/.config/transmission-daemon/trans.PID

Ahora cambiamos el propietario de los ficheros:

chown -R pi.pi /var/lib/transmission-daemon 
chown -R pi.pi /etc/transmission-daemon/settings.json 
chown -h pi.pi /var/lib/transmission-daemon/info/settings.json

La dirección por defecto para acceder es:

http://127.0.0.1:9091/transmission

Hay que tener en cuenta que el fichero settings.json se tiene que editar cuando el servicio esté parado de lo contrario al pararse sobreescribe con los cambios actuales.

Ahora vamos a ver como configurar estas rutas por algo más fácil de recordar, para ello en Apache creamos un virtual host que nos haga de proxy con el servidor de torrent, creamos un fichero en la carpeta /etc/apache2/sites-available/004-torrent.conf con el siguiente contenido, obviamente deberemos tener un sistema DNS que nos resuelva correctamente el nombre torrent, vamos a suponer que el servidor está en la dirección 192.168.1.4

 <VirtualHost torrent:80>
   ServerName torrent.domain
   ServerAlias torrent
   ProxyPreserveHost Off
   ProxyRequests On
   ProxyPass / http://192.168.1.4:9091/
   ProxyPassReverse / http://192.168.1.4:9091/
   CustomLog /var/log/apache2/torrent.log combined
   ErrorLog /var/log/apache2/torrent.error.log
 </VirtualHost>

Ahora habilitamos el sitio usando el archivo de configuración que hemos creado

sudo a2ensite 004-torrent.conf

Después de reiniciar el servidor podremos acceder al servidor torrent usando la dirección http://torrent

Finalmente es posible que haya problemas con las carpetas watch de torrent si están en un disco externo ya que es posible que no detecte los cambios, así que vamos a configurar una carpeta por samba para poder dejar los ficheros ahí, así que editamos el fichero /etc/samba/smb.conf e incluimos el siguiente contenido:

[torrent]
comment = Carpeta para dejar torrents que se descargarán automaticamente
path = /media/torrent
read only = No
force user = pi
force group = pi
create mask = 0660

En este caso estamos suponiendo que la carpeta donde se colocarán los torrent está en /media/torrent

En caso de reinstalar la aplicación si no aparecen todos los ficheros que hemos descargado previamente es porque tenemos que rellenar la carpeta torrents con todos los torrents que nos hayamos descargado, podemos copiar el contenido de la antigua carpeta torrents en la nueva.

Enlaces:

https://www.alvaroreig.com/como-configurar-un-proxy-inverso-con-apache/

https://www.vichaunter.org/como-se-hace/cambiar-nombre-usuario-transmission-linux

https://www.vichaunter.org/como-se-hace/instalar-configurar-transmission-raspbian-raspberry-pi

Torrent en Raspberry Pi (Deluge & Transmission) con Apache

Configuración servidor de impresión y escaner con Raspberry Pi

Con una impresora antigua y una Raspberry es posible crear un servidor de impresión, estos son los pasos:

Primero como siempre actualizar Raspberry.

sudo apt-get update
sudo apt-get upgrade

Ahora instalamos CUPS, el servidor de impresión por excelencia de UNIX.

sudo apt-get install cups

Esto nos creará un grupo de administración de impresoras llamado lpadmin, agregamos el usuario pi a este grupo, se puede elegir cualquier usuario y cuando se acceda a través de web será este el usuario que se tendrá que validar.

sudo usermod -a -G lpadmin pi

Tenemos que habilitar el acceso remoto más allá de localhost, para que se puedan administrar las impresoras desde otra máquina en la red de área local.

sudo cupsctl --remote-any
sudo /etc/init.d/cups restart

Ahora podemos probar la web, usando la dirección de la Raspberry y el puerto 631 que es el de defecto, si quisiéramos cambiar el puerto se puede editar desde /etc/cups/cupsd.conf en la línea marcada como Port.

Si no tenemos instalado samba, estos serían los pasos rápidos:

sudo apt-get install samba

Ahora hay que editar el archivo de configuración de samba para agregar la entrada de la impresora, realmente esta entrada ya está creada solo hay que verificar que sea igual que esta:

# CUPS printing.  
[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = yes
read only = yes
create mask = 0700

# Windows clients look for this share name as a source of downloadable
# printer drivers
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = no
guest ok = no

También tenemos que establecer correctamente el valor del parámetro workgroup y de wins support:

workgroup = my_workgroup
wins support = yes

Ahora reiniciamos samba para hacer efectivos estos cambios.

sudo /etc/init.d/samba restart

Ahora a través de la web accedemos a la sección de administración, desde allí agregamos una impresora con el botón «Add printer» posiblemente haya que acceder con la cuenta que hemos agregado anteriormente al grupo lpadmin, si CUPS es capaz de detectar la impresora la veremos aquí como una impresora local, la seleccionamos y continuamos, cambiamos nombre y descripción o aceptamos las que vienen por defecto y marcamos compartir impresora «Share this printer» con esto ya tendremos una impresora configurada en red.

Esta es una configuración por defecto que funcionará tanto para pcs como para dispositivos móviles.

Mas info:

https://pimylifeup.com/raspberry-pi-print-server/

 

Configuración servidor de impresión y escaner con Raspberry Pi

Configurando Raspberry Pi como servidor de música [Spotify]

Actualizado el 26 de Septiembre de 2022

Para configurar una Raspberry Pi y que funcione como servidor de música usando una cuenta de Spotify usaremos el paquete mopidy. Existen distribuciones ya preparadas con el servidor de música configurado pero en este caso estas instrucciones son para hacerlo sobre una distribución ya existente.

Primero hay que agregar el repositorio de mopidy y para ello primero agregamos las claves:
wget -q -O – https://apt.mopidy.com/mopidy.gpg | sudo apt-key add –

Ahora el repositorio (en este caso para una distribución jessie, habría que cambiar por la que corresponda):
sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/jessie.list

A continuación actualizar e instalar:

sudo apt-get update
sudo apt-get install python-spotify

Ahora instalamos el paquete de Spotify, según la página solo funciona para cuentas premium aunque hay gente que comenta que lo ha usado también para cuentas gratuitas:
sudo python3 -m pip install Mopidy-Spotify

Existen varias formas de arrancarlo, vamos a optar por hacerlo como servicio. Con este comando lo arrancaremos al inicio como servicio:
sudo systemctl enable mopidy

Otra opción para sistemas Debian es:
sudo dpkg-reconfigure mopidy

Estos son los clásicos comandos para arrancar, parar y reiniciar:

sudo service mopidy start
sudo service mopidy stop
sudo service mopidy restart

Ahora solo queda configurar el servidor web, viene instalado por defecto y lo configuramos en la siguiente ruta:
sudo nano /etc/mopidy/mopidy.conf

Creamos una sección [http]

[http]
enabled = true
hostname = ::
port = 6680

Lo único destacable aquí es que el nombre de host es «::» esto indica que escuchará en todas las direcciones IP, no hay validación de usuario así que cualquiera podrá acceder.

Y una sección para el usuario y contraseña de Spotify , los datos de client_id y client_secret se pueden obtener aquí.


username = hola
password = caracola
client_id = XXX
client_secret = YYY

Ahora si intentamos acceder al servidor y al puerto nos dirá que no hay cliente web instalado, existen varias alternativas.

Para poder instalar estos paquetes primero hay que instalar pip, un instalador de paquetes en Python:
sudo apt-get install python-pip

En este caso opto por Mopify y se instala con:
sudo pip install Mopidy-Mopify

Y en el fichero de configuración añadimos

[mopify]
enabled = true
debug = false

Si lo queremos actualizar:
sudo pip install –upgrade Mopidy-Mopify

También existe este otro cliente, más parecido a la interfaz de Spotify y más sencillo:
sudo pip install Mopidy-Iris

Para actualizar
sudo pip install –upgrade Mopidy-Iris

Y como configuración

[iris] 
enabled = true 
country = ES 
locale = es_ES

Es necesario reiniciar el servicio para ver los cambios, al acceder al servidor (http://servidor:6680) veremos el cliente.

Si queremos comprobar primero que el sonido está bien configurado podemos usar este comando:
aplay /usr/share/sounds/alsa/Front_Center.wav

Se pueden cambiar la salida de audio usando raspi-config (System->Audio)  o de forma manual junto con algunas otras opciones con alguno de estos dos métodos dependiendo de la versión:

Versión antigua

Usar HDMI si está conectado, sino jack de 3.5» (si este comando da un error probar con la versión nueva):
sudo amixer cset numid=3 0

Forzar usar solo jack de 3.5:
sudo amixer cset numid=3 1

Forzar usar solo HDMI:
sudo amixer cset numid=3 2

Para controlar el volumen se puede poner estos alias en ~/.bashrc
# Increase volume by 5%
alias volu=’amixer set PCM — $[$(amixer get PCM|grep -o [0-9]*%|sed ‘s/%//’)+5]%’
# Decrease volume by 5%
alias vold=’amixer set PCM — $[$(amixer get PCM|grep -o [0-9]*%|sed ‘s/%//’)-5]%’

O establecer directamente el valor con (donde 90% es el volumen deseado):
amixer sset PCM,0 90%

Version nueva

Para cambiar las opciones de audio hay que editar el fichero .asoundrc que tendremos en el directorio home del usuario, también podemos guardarlo en la ruta /etc/asound.conf en cuyo caso será para todos los usuarios, sino lo tenemos lo creamos:

pcm.!default {
  type asym
  playback.pcm {
    type plug
    slave.pcm "output"
  }
  capture.pcm {
    type plug
    slave.pcm "input"
  }
}

pcm.output {
  type hw
  card 0
}

ctl.!default {
  type hw
  card 0
}

Donde indica card 0 si ponemos card 1 usaremos la salida Headphones sino card 0 usará HDMI después de crear este fichero hay que reiniciar la sesión usando su pi si no lo hemos hemos en /etc/asound.conf

Para controlar el volumen se puede poner estos alias en ~/.bashrc, este ejemplo es para el jack de 3.5» sino se ha establecido la salida de jack usando el fichero anterior este comando dará error (igual para HDMI).
# Increase volume by 5%
alias volu=’amixer set Headphone — $[$(amixer get Headphone|grep -o [0-9]*%|sed ‘s/%//’)+5]%’
# Decrease volume by 5%
alias vold=’amixer set Headphone — $[$(amixer get Headphone|grep -o [0-9]*%|sed ‘s/%//’)-5]%’

Para HDMI haríamos:
# Increase volume by 5%
alias volu=’amixer set HDMI — $[$(amixer get HDMI |grep -o [0-9]*%|sed ‘s/%//’)+5]%’
# Decrease volume by 5%
alias vold=’amixer set HDMI — $[$(amixer get HDMI |grep -o [0-9]*%|sed ‘s/%//’)-5]%’

O establecer directamente el valor con (donde 90% es el volumen deseado) para el jack de 3.5»
amixer sset Headphone,0 90%

O para HDMI
amixer sset HDMI,0 90%

Acceso a la Web

Ahora solo queda acceder a la web con la ip y puerto configurado y elegir el cliente, es posible que haya que echar un vistazo a la configuración del cliente para ver que todo está correcto como dar acceso a spotify.

A veces el refresco de algunas playlist no funciona correctamente y puede ser necesario borrar cookies o recargar la página, se puede probar desde otra máquina para verificar si realmente refresca o no.

Ahora vamos a ver como configurar estas rutas por algo más fácil de recordar, para ello en Apache creamos un virtual host que nos haga de proxy con el servidor de spotify, creamos un fichero en la carpeta /etc/apache2/sites-available/003-spotify.conf con el siguiente contenido, obviamente deberemos tener un sistema DNS que nos resuelva correctamente el nombre spotify, vamos a suponer que el servidor está en la dirección 192.168.1.4

<VirtualHost spotify:80>
  ServerName spotify.domain
  SererAlias spotify
  ProxyPreserveHost On
  ProxyPass / http://192.168.1.4:6680/
  ProxyPassReverse / http://192.168.1.4:6680/
  CustomLog /var/log/apache2/spotify.log combined
  ErrorLog /var/log/apache2/spotify.error.log
</VirtualHost>

Para habilitar el sitio ejecutamos:

sudo a2ensite 004-spotify.conf

Fuentes:

https://github.com/mopidy/mopidy-spotify

https://www.mopidy.com/

Configurando Raspberry Pi como servidor de música [Spotify]

Desplegando en una Raspberry Pi Parte II (Git && Symfony)

Ahora que tenemos el entorno vamos a descargar los fuentes en la carpeta, evidentemente la carpeta donde desplegamos tiene que estar configurada en Apache, nos colocamos en la carpeta de despliegue y lanzamos un git clone, en este caso suponemos un hosting en BitBucket que nos descargará todo el código.

# git clone https://usuario@bitbucket.org/acme/coyote.git

Siguiendo los consejos de Symfony2 vamos a verificar que está todo correcto, para esto primero tenemos que instalar composer y que nos ponga al día todos los paquetes, es recomendable tener accesible el fichero composer.json para evitar tener que repetir configuraciones.

# sudo curl -sS https://getcomposer.org/installer | sudo php
# sudo php composer.phar install --no-dev --optimize-autoloader

El fichero composer.json tiene que estar accesible en la misma ruta ya que es el fichero que usará para descargar los paquetes correctos.

Puede dar un error de «ErrorException: proc_open(): fork failed – Cannot allocate memory» una forma de arreglarlo es crear una unidad swap con los siguientes comandos:

# sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
# sudo /sbin/mkswap /var/swap.1
# sudo /sbin/swapon /var/swap.1

Es recomendable que el fichero parameters.yml esté fuera del código fuente pero es necesario mantener parameters.yml.dist ya que en esta es donde se establecen los nuevos parámetros con sus valores por defecto. Después de esto los valores concretos de los parámetros se podrán modificar en parameteres.yml.

Es necesario una vez que se descarga la nueva versión desde git limpiar la cache y establecer de nuevos los permisos en la cache, para todos estos procesos se puede usar el siguiente script ubicándolo en la localización correcta.

# sudo git pull
# sudo php app/console cache:clear --env=prod
# sudo chown -R www-data:coyote app/cache

 

Desplegando en una Raspberry Pi Parte II (Git && Symfony)

Actualizando Raspberry Pi 2 a Jessie

Jessie trae características nuevas como por ejemplo PHP 5.6 que no estaba disponible en wheezy, si queremos tener esta versión o alguna otra solo disponible en Jessie tendremos que realizar el siguiente proceso, antes de nada es recomendable realizar un backup del sistema que en una raspberry es tan fácil como volcar la imagen de la tarjeta SD a disco (usando el comando dd en linux o Win32DiskImager en Windows).

Lo primero es actualizar la versión que tenemos (wheezy).

 # sudo apt-get update

# sudo apt-get upgrade

# sudo apt-get dist-upgrade

 Update actualiza la lista de paquetes, upgrade actualiza los paquetes y dist-upgrade actualiza toda la distribución (incluyendo kernel, librerías, loader, etc…)

Si no ha habido problemas pasamos al siguiente punto que consiste en actualizar la lista de repositorios, esta lista se encuentra en /etc/apt/sources.list, con el siguiente comando lo que hacemos es modificar la línea del repositorio que apunta a wheezy para que apunte a los repositorios de jessie.

# sed –i ‘s/wheezy/jessie/g’ /etc/apt/sources.list

Y dentro del fichero sources.list veremos lo siguiente:

deb http://mirrordirector.raspbian.org/raspbian jessie main firmware contrib non-free

Con esto le estamos diciendo que busque paquetes dentro de la distribución jessie para todos los componentes indicados (main, firmware,…)

Ahora procedemos a actualizar el sistema, durante la instalación se nos preguntará si queremos reiniciar los servicios afectados automáticamente, lo recomendable es que si pero teniendo en cuenta que no hay que deshabilitar el acceso root por SSH si no tenemos acceso físico a la raspberry, esto no es problema ya que por defecto el usuario root no está disponible en raspbian, durante el proceso se reiniciará el propio proceso ssh pero eso no nos cortará la conexión con un cliente ssh estilo putty.

La actualización la lanzamos con los siguientes comandos:

# sudo apt-get update

# sudo apt-get upgrade

# sudo apt-get dist-upgrade

Es posible que durante la instalación se nos indique que algunos archivos han sido modificados por otros paquetes y que versión del mismo queremos mantener, si la modificación no ha sido realizada por nosotros mismos actualizar suele ser una buena idea, en cualquier caso siempre se nos dará la opción de ver las diferencias.

Cuando terminamos repetimos el proceso de actualización para verificar que no hay paquetes pendientes, en caso de que nos aparecieran paquetes “retenidos” que no se instalan tendríamos que volver a lanzar la actualización de la distribución (dist-upgrade)

El proceso en si es bastante largo pero quitando alguna que otra pregunta de actualización de ficheros es bastante automático.

Finalmente reiniciamos.

# reboot

Información obtenida aquí

Actualizando Raspberry Pi 2 a Jessie

Servidor LAMP en Raspberry Pi 2

Cada vez aparecen más microdispositivos que ofrecen un buen rendimiento a bajo coste, uno de estos es raspberry pi (con papel estelar en la serie Mr. Robot), tiene múltiples posibilidades por ejemplo servir como VPN, servidor DHCP, DNS,… o servidor multimedia (con Torrent).

En este caso vamos a instalar un servidor LAMP de desarrollo usando la distribución Raspbian, Raspbian es muy fácil de instalar usando el sistema NOOBS tal y como se comenta en la propia página web, de hecho si solo queremos un servidor es muy recomendable instalar la versión lite que nos quitará el apartado gráfico.

Después de instalar tendremos un menú donde podremos modificar algunos valores, si queremos volver a invocarlo siempre podremos hacerlo a través de raspi-config (si hemos usado usado la versión lite tendremos que instalar este paquete vía sudo apt-get install rpi-update).

Una vez arrancado el sistema es recomendable actualizarlo, tanto el firmware del mismo a través de rpi-update (requiere reiniciar) como los paquetes a través de apt-get update && apt-get-upgrade.

Ya que vamos a instalar un servidor suele ser recomendable tener una dirección IP estática, para eso editaremos el archivo /etc/network/interfaces y en lugar de usar una dirección dinámica (DHCP) indicaremos los datos de nuestra interfaz, existe un artículo describiendo el proceso y nos quedará para la interfaz eth0 algo como:

iface eth0 inet static
address 192.168.1.3
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

Otra opción sería dejarlo en dinámico (con DHCP) y establecer en los servidores DHCP y DNS el nombre de manera estática, esto simplifica la gestión de red de las raspberry pero obliga a tener un servidor DHCP y DNS instalado.

Tras esto hay que tirar y levantar la interfaz vía ifdown eth0 &&  service networking restart && ifup eth0, tambien  es recomendable hacerlo por consola por si la interfaz no se levanta, si sale un error como ifdown: interface eth0 not configured, una opción es lanzar este comando y reiniciar la raspberry.

sudo ip addr flush dev eth0

Opcionalmente podemos querer cambiar el nombre de la raspberry esto lo haremos modificando el fichero /etc/hostname, si se cambia el nombre por defecto para el correcto descubrimiento de la propia raspberry hay que modificar también el fichero /etc/hosts.

Tras esto instalamos el entorno con: apt-get install apache2 php5 mysql-server en el caso de mysqlserver nos solicitará una contraseña de root para poder acceder al servidor, no es obligatorio pero si muy recomendable.

Suele ser útil crear un host virtual en apache en el cual indicaremos que las páginas PHP que ejecuta están almacenados en una unidad de red externa, de esta forma podremos editarlos desde otra máquina a la vez que se pueden acceder desde Apache, para esto podremos usar el host virtual por defecto que viene en la instalación, es más útil trabajar con virtuales porque así podemos aislar proyectos entre sí con sus propios nombres.

Solo hay que tener en cuenta que dentro del host virtual hay que añadir ServerName servidor donde servidor será el nombre que le hayamos dado al servidor virtual, aquí hay un trabajo con el DNS ya que por un lado en el propio archivo hosts del servidor tenemos que darlo de alta y de cara al exterior también tendremos que darlo de alta en el archivo hosts de cada máquina que quiera acceder a no ser que dispongamos de un servidor DNS a tal efecto.

Para mapear las carpetas de apache a una unidad de red solo tenemos que montar la unidad (mount -a) de red externa añadiéndolo a /etc/fstab tal que (en una línea):

//unidad/carpeta/cliente/proyecto /var/www/proyecto/  cifsuid=1000,gid=1000,username=user,password=pass,iocharset=utf8,auto 0 0

donde username y password son credenciales válidas de red, también se puede especificar un fichero externo de credenciales, para más información consultar man.

Una vez hecho esto ya podemos desarrollar, también podemos clonar un repositorio Git en la carpeta, por ejemplo Bitbucket que permite repositorios privados y también es compatible con Azure, aunque GitHub también es otra posibilidad.

Servidor LAMP en Raspberry Pi 2