5.8 KiB
Duniter con RaspberryPi en casa
Work in progress
Instalar Raspbian
https://www.raspberrypi.com/software/operating-systems/
Bajar operating system Raspberry Pi OS Lite
Flashear la imagen con Etcher o parecido.
Botar el Pi
username: pi
password: raspberry
Contraseña usuario pi
IMPORTANT!!
Todo el mundo conoce la contraseña raspberry
. Es muy importante cambiarla por una más fuerte y guardarla en un sitio seguro. Házlo ahora, sino tu Pi será hackeado.
sudo raspi-config
1. System options
S3 Password
Zona horaria
dpkg-reconfigure tzdata
Network interface names
sudo raspi-config
6. Advanced options
A4 Netork interface names -> Enable
Ahora la interfaz de red cableado se llama eth0
SSH
sudo raspi-config
5. Interface options
P2 SSH -> Enable
Conectar al Pi desde tu portatil
ssh pi@192.168.1.??
mkdir ~/.ssh
touch ~/.ssh/authorized_keys
Copiar su clave publica desde tu PC hasta el fichero authorized_keys
en el Pi.
Ahora puedes conectar via SSH sin contraseña.
Ya que puedes acceder con tu clave, desactivamos el acceso SSH empleando contraseñas.
sudo nano /etc/ssh/sshd_conf
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
IP fija
Necesitamos saber
- el nombre de la interfaz de red por cable:
eth0
- el IP de un servidor DNS
- el IP que queremos asignar al Pi
IP de un servidor DNS
cat /etc/dhcpcd.conf
En mi caso es el 192.168.1.1
el IP que queremos asignar al Pi
Debemos escoger un IP dentro del rango de nuestra red doméstica
En mi caso voy por el 192.168.1.32
Configurar el IP estática
sudo nano /etc/dhcpcd.conf
Al final del fichero
# Example static IP configuration:
interface eth0
static ip_address=192.168.1.33/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
Y rebotar
sudo reboot
Configuración del router
TODO
DNS dinámico
El IP de casa no es fijo. No cambia mucho, pero sí cambia. Entonces necesitamos una manera mantener sincronizado la resolución de nombre con el IP de casa.
Si tienes contratado un dominio con Gandi por ejemplo, ellos tienen instrucciones sobre como hacerlo. Aqui un ejemplo con un dominio gestionado por afraid.org
Crea una tarea cron crontab -e
y añade una entrada
# ┌───────────── minute (0 - 59)
# │ ┌───────────── hour (0 - 23)
# │ │ ┌───────────── day of the month (1 - 31)
# │ │ │ ┌───────────── month (1 - 12)
# │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday;
# │ │ │ │ │ 7 is also Sunday on some systems)
# │ │ │ │ │
# │ │ │ │ │
# * * * * * <command to execute>
0, 30 * * * * sleep 7 ; wget --no-check-certificate -O - https://freedns.afraid.org/dynamic/update.php?SmhB-super-top-secret-key-E5NjA >> /tmp/freedns_my_funky_domain_com.log 2>&1 &
Cada 30 minutos se comprueba y acutaliza si es necesario.
Letsencrypt Cert
sudo apt-get install certbot
sudo certbot certonly --standalone -d sis.crabdance.com
Nginx
sudo apt-get install nginx
sudo nano /etc/nginx/sites-available/duniter
server {
listen 80;
server_name mi-nodo-duniter.org;
rewrite ^(.*) https://mi-nodo-duniter.org$1 permanent;
}
server {
listen 443 ssl;
server_name mi-nodo-duniter.org;
ssl_certificate /etc/letsencrypt/live/mi-nodo-duniter.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mi-nodo-duniter.org/privkey.pem;
ssl_stapling on;
ssl_stapling_verify on;
location / {
proxy_pass http://localhost:10901;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
}
location /ws2p {
proxy_pass http://localhost:20901;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Instalar Duniter
https://git.duniter.org/nodes/typescript/duniter/-/releases/v1.8.0
Bajamos Linux (Raspbian buster) armv7l - Server [53.6 Mo]
porque ya hemos instalado Raspbian buster en el Pi.
cd /tmp/
wget https://............./duniter-server-v1.8.0-linux-armv7l.deb
sudo dpkg -i duniter-server-*-linux-x64.deb
Se ha creado un usuario duniter
. Su home es /var/lib/duniter
Config
https://duniter.org/en/wiki/duniter/commands/
Ejecuta los comando así
sudo -u duniter <cmd>
Añade tus claves
sudo -u duniter duniter wizard key
Red
sudo -u duniter duniter wizard network
IPv4 interface: Selecciona eth0
IPv6 interface: Yo pongo None
porque no tengo IP6 en casa
Port: 10901
Remote IPv4: (encuentro mi IP en https://www.whatismyip.com/)
Remote port: 443
Does this server have a DNS name? Yes
sudo -u duniter duniter sync g1.duniter.org 443
Esto solo tardó 20 pico segundos. No puede ser.
https://forum.duniter.org/t/synchroniser-duniter-plus-rapidement/7689
sudo su
cd /usr/local/bin/
wget https://forja.laloka.org/MonedaLliure/Raspberry/raw/branch/main/sync_duniter.sh -O sync_duniter.sh
chmod +x sync_duniter.sh
sudo -u duniter sync_duniter.sh --help
sudo -u duniter sync_duniter.sh
Y así ha tardado un buen ratio... horas. bien.