Files
UBUNTU-TIPS/README.md

7.3 KiB

ubunti_tips

Tips y configuraciones de ubuntu

Eligir terminal por defecto ubuntu

    sudo update-alternatives --config x-terminal-emulator

Instalar docker

sudo apt-get install docker-ce
# Compose ayuda a crear instalaciones de varios contenedores
sudo apt-get install docker-compose

Permitir correr docker sin sudo

    sudo groupadd docker
    sudo gpasswd -a $USER docker
    newgrp docker
    
    

Detener todos los contenedores

docker stop $(docker ps -a -q)

borrar todos los contenedores

docker rm $(docker ps -a -q)

imagen docker ayuda

docker run -d -p 80:80 docker/getting-started

cambiar temporales Docker

sudo vim /etc/default/docker
# Agregar esta linea al final con la ruta de tu disco externo montado
export DOCKER_TMPDIR="/mnt/storage/docker-tmp"

Comandos básicos

INSTALAR EMQX DOCKER

    docker run -d --name emqx -p 18083:18083 -p 1883:1883 -p 8083:8083 -p 8084:8084 -e EMQX_ALLOW_ANONYMOUS=false emqx/emqx:latest

EMQX DOCKER_COMPOSE

Instalamos la version 4.2.3 ya que en posteriores no soporta el plugin emqx_auth_username

ToDo:

  • Buscar solucion emqx_auth_username

docker-compose.yml

version: "2.0"
services:
  emqx:
    container_name: emqx_iot
    image: emqx/emqx:latest
    #restart: always

    ports:
      - 18083:18083
      - 18084:18084
      - 1883:1883
      - 8883:8883
      - 8083:8083
      - 8084:8084
      - 8085:8081

    environment:
       EMQX_NAME: mi-emqtt
       EMQX_HOST: 127.0.0.1
       EMQX_ALLOW_ANONYMOUS: "false"
       EMQX_NOMATCH: "deny"
       TZ: "America/Bogota"
       EMQX_DASHBOARD__DEFAULT_USER__PASSWORD: "pass_dasboard"
       EMQX_DASHBOARD__DEFAULT_USER__LOGIN: "mdchaparror"
       EMQX_AUTH__USER__1__USERNAME: "mdchaparror"
       EMQX_AUTH__USER__1__PASSWORD: "pass_clientes_mtt"
       EMQX_LOADED_PLUGINS: "emqx_auth_username,emqx_recon,emqx_retainer,emqx_management,emqx_dashboard"

Abrir puertos en ubuntu

ufw allow from any to any port 18083 proto tcp

Instalar Portainer

     docker volume create portainer_data
     docker run -d \
     --name Portainer \
     --restart=always \
     -p 9000:9000 \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v portainer_data:/data \
     portainer/portainer

https://domology.es/instalacion-docker-parte-1-dockerportainer/

PORTAINER EN LA RASPBERRY

sudo docker pull portainer/portainer-ce:latest
sudo docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

RPI-MONITOR

    docker run --device=/dev/vchiq --device=/dev/vcsm-cma --volume=/opt/vc:/opt/vc --volume=/boot:/boot --volume=/sys:/dockerhost/sys:ro --volume=/etc:/dockerhost/etc:ro --volume=/proc:/dockerhost/proc:ro --volume=/usr/lib:/dockerhost/usr/lib:ro -p=8888:8888 --name="rpi-monitor" -d  michaelmiklis/rpi-monitor:latest

Home Assistant

docker run --init -d --name="home-assistant" -e "TZ=America/Bogota" -v /home/pi/docker/config:/config --net=host homeassistant/raspberrypi3-homeassistant:stable

Instalar Gitea

Descargar repositorio de gitea

git clone https://github.com/go-gitea/gitea.git

Editar Fichero DockerFile

Cambiar linea: FROM golang:1.10-alpine3.7 AS build-env por FROM resin/raspberrypi3-alpine-golang AS build-env

y la linea: FROM alpine:3.7 por FROM resin/raspberrypi3-alpine:3.7

Construir la imagen: docker build -t mdchaparror/gitea .

Crear archivo docker-compose.yml

version: "2"

networks:
  gitea:
    external: false

services:
  server:
    image: mdchaparror/gitea
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
    restart: always
    networks:
      - gitea
    volumes:
      - ./gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "5000:3000"
      - "222:22"

Ejecutar: docker-compose up -d

Backup Raspberry

Crear Imagen

Mirar el disco correspondiente a la sd

sudo fdisk -l

sudo dd bs=4M if=/dev/sdd | gzip > imagen_rasp1_back_`date +%Y-%M-d`.gz

Restaurar imagen

La imagen se puede restaurar imagen ya sea con dd o con balenaEtcher

gzip -dc image.gz | sudo dd bs=4M of=/dev/sdd

Virtualbox

Para poder usar los dispositivos usb en virtualBox añadir usuario al grupo de virtualboxusers

    sudo usermod -a -G vboxusers  mdchaparror

Instalar NODERED

***docker-compose.yml

version: 2
services:
  nodered:
    container_name: Node-red
    image: nodered/node-red:latest
    ports:
     - 1880:1880
    volumes:
     - ./gitea:/data
    
    

Mongo

sudo systemctl status mongodb

Heroku

  • login: heroku login
  • subir aplicacion git push heroku master

Variables de entorno

  • ver las variables de entorno heroku config
  • añadir una variable heroku config:set VARIABLE=valor
  • borrar una variable heroku config:unset VARIABLE
  • obtener una variable heroku config:get VARIABLE

Despliegue APP FINANZAS

    heroku config:set BASE_URL="https://finanzasm.herokuapp.com/api"
    heroku config:set MONGOOSE_URI="mongodb+srv://mdchaparror:un260874@cluster0-4fhc1.mongodb.net/test?retryWrites=true"
    heroku config:set REGISTER="true"    
    heroku config:set CLOUDINARY_CLUD_NAME="mdchaparror"
    heroku config:set CLOUDINARY_API_KEY="491878952588461"
    heroku config:set CLOUDINARY_API_SECRET="KvpO_0WLT8dVXCKOhEPXWNllg1w"
    heroku config:set TOKEN_SECRET="api finanzas mdchaparror @4050#"
    
    git add .
    git push heroku master
    

Instalar Mongo ubuntu 22:04

    curl -LO http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1-1ubuntu2.1~18.04.20_amd64.deb
    sudo dpkg -i ./libssl1.1_1.1.1-1ubuntu2.1~18.04.20_amd64.deb
    

Habilitar ufw

    sudo ufw app list #lista las app permitidas
    sudo ufw allow OpenSSH # habilta comunicacion ssh 
    sudo ufw allo port # habilita un puerto
    sudo ufw deny port # bloquea el puerto
    sudo ufw enable #habilita el firewall
    

Conocer que programa esta usando determinado puerto

sudo netstat -tulpn | grep :puerto_buscado

Despliegue fly.io

fly launch
fly deploy
fly status

  flyctl secrets set BASE_URL="https://finanzasm.fly.dev/api/"
  flyctl secrets set CLOUDINARY_API_KEY="491878952588461"
  flyctl secrets set CLOUDINARY_API_SECRET="KvpO_0WLT8dVXCKOhEPXWNllg1w"
  flyctl secrets set CLOUDINARY_CLUD_NAME="mdchaparror"
  flyctl secrets set MONGOOSE_URI="mongodb+srv://mdchaparror:un260874@cluster0-4fhc1.mongodb.net/test?retryWrites=true"
  flyctl secrets set REGISTER=true
  flyctl secrets set REGISTER=true
  flyctl secrets set TOKEN_SECRET="api finanzas mdchaparror @4050#"
  

SSH

COpiar llave SSH

ssh-copy-id <USERNAME>@<IP-ADDRESS>

o

cat ~/.ssh/id_rsa.pub | ssh <USERNAME>@<IP-ADDRESS> 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'

https://www.raspberrypi.com/documentation/computers/remote-access.html#passwordless-ssh-access