Files
UBUNTU-TIPS/README.md

261 lines
6.9 KiB
Markdown

# ubunti_tips
Tips y configuraciones de ubuntu
## Eligir terminal por defecto ubuntu
sudo update-alternatives --config x-terminal-emulator
## Instalar docker
```sh
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
```sh
sudo groupadd docker
sudo gpasswd -a $USER docker
newgrp docker
```
### imagen docker ayuda
```sh
docker run -d -p 80:80 docker/getting-started
```
### cambiar temporales Docker
```sh
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:
+ [x] 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_recon,emqx_retainer,emqx_management,emqx_dashboard,emqx_auth_mnesia"
### 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/](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](https://www.balena.io/etcher/)
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
```sh
version: 2
services:
nodered:
container_name: Node-red
image: nodered/node-red:latest
ports:
- 1880:1880
```
## 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
```sh
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
```sh
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
```sh
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
```sh
sudo netstat -tulpn | grep :puerto_buscado
```
## Despliegue fly.io
```sh
fly launch
fly deploy
fly status
```
```sh
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#"
```