# Check list VPS

Una vez habilitado el servidor en el proveedor de turno, hay una serie de pasos que sigo normalmente.

### Actualizar
```
apt update && apt upgrade
``` 

### Cambiar la contraseña de root
```
passwd
``` 

### Agregar un nuevo usuario
```
adduser karlos
``` 

### Dar privilegios de root
```
usermod -aG sudo karlos
``` 

### Crear llaves ssh

```
ssh-keygen
``` 

### Copiar al servidor

```
ssh-copy-id karlos@remote_host

``` 

### Configuraciones adicionales de SSH
Editar el archivo **/etc/ssh/sshd_config** para: 
- Cambiar puerto (Port)
- Deshabilitar el acceso con contraseña (PasswordAuthentication)
- Deshabilitar el acceso root (PermitRootLogin)
- Limitar usuarios con acceso (AllowUsers karlos)

Finalmente reiniciar el servicio 

```
systemctl restart ssh
``` 
### Docker   
Eliminar versiones antiguas

```
sudo apt-get remove docker docker-engine docker.io containerd runc
``` 
Actualizar índice de paquetes e instalar complementos

```
sudo apt-get update
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
``` 
Agregar llave GPG
```
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
```

Agregar repositorio
```
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```

Instalar
```
sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io
```

Verificar instalación
````
sudo docker run hello-world
```
Permisos de ejecución
```
sudo usermod -aG docker $USER
```
Volver a iniciar sesión


### Docker Compose
Descargar ejecutable

```
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

``` 
Asignar permisos

```
sudo chmod +x /usr/local/bin/docker-compose

``` 
Verificar instalación

```
docker-compose --version

``` 


Con estos pasos tengo un servidor con todo listo para empezar a levantar diferentes servicios.

Para más detalles de las opciones utilizadas se pueden consultar los artículos de referencia.



## Referencias
[Primeros pasos con tu VPS](https://atareao.es/tutorial/servidor-virtual/primeros-pasos-con-tu-vps/)  
[How to Change User Password in Ubuntu [Beginner’s Tutorial]](https://itsfoss.com/change-password-ubuntu/)   
[Initial Server Setup with Ubuntu 20.04](https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-20-04)  
[How to Set Up SSH Keys on Ubuntu 20.04](https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys-on-ubuntu-20-04)  
[Configuración de ssh. Simplifica tus conexiones en Ubuntu, Linux Mint, etc](https://atareao.es/ubuntu/configuracion-de-ssh/)  
[Install Docker Engine on Ubuntu](https://docs.docker.com/engine/install/ubuntu/)  
[Tutorial de Docker](https://atareao.es/tutorial/docker/)  
[How To Install and Use Docker Compose on Ubuntu 20.04](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-compose-on-ubuntu-20-04)  
