Cómo instalar Appwrite con Docker en Ubuntu 22.04
Appwrite es un servidor back-end gratuito y de código abierto que ofrece las API básicas necesarias para crear cualquier aplicación empaquetada como un conjunto de contenedores Docker fáciles de usar. Ayuda a los desarrolladores móviles a crear aplicaciones avanzadas mucho más rápido. Appwrite te ahorra el 70% del tiempo y los costes necesarios para crear una aplicación moderna. Ofrece una interfaz web sencilla y fácil de usar que te ayuda a hacer un seguimiento del uso de tu API backend y a gestionar los recursos de tu proyecto desde un navegador web.
En este post, te mostraremos cómo instalar el servidor Appwrite con Docker en Ubuntu 22.04.
Requisitos previos
- Un servidor que ejecute Ubuntu 22.04.
- Una contraseña de root configurada en el servidor.
Añadir repositorio Docker
Por defecto, la última versión de Docker no está disponible en el repositorio por defecto de Ubuntu. Así que tendrás que instalarla desde el repositorio oficial de Docker:
Primero, instala todas las dependencias necesarias con el siguiente comando:
apt install apt-transport-https ca-certificates curl software-properties-common -y
Una vez instalados todos los paquetes, descarga y añade la clave GPG de Docker con el siguiente comando:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
A continuación, añade el repositorio oficial de Docker con el siguiente comando:
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu jammy stable"
Una vez añadido el repositorio Docker, puedes verificar el repositorio añadido utilizando el siguiente comando:
apt-cache policy docker-ce
Obtendrás la siguiente salida:
docker-ce: Installed: (none) Candidate: 5:20.10.17~3-0~ubuntu-jammy Version table: 5:20.10.17~3-0~ubuntu-jammy 500 500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages 5:20.10.16~3-0~ubuntu-jammy 500 500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages 5:20.10.15~3-0~ubuntu-jammy 500 500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages 5:20.10.14~3-0~ubuntu-jammy 500 500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages 5:20.10.13~3-0~ubuntu-jammy 500 500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
Instalar Docker CE
Ahora, instala el paquete Docker CE ejecutando el siguiente comando:
apt install docker-ce -y
Una vez instalado Docker CE, puedes verificar la versión de Docker CE con el siguiente comando:
docker --version
Deberías ver la siguiente salida:
Docker version 20.10.17, build 100c701
También puedes verificar el estado del Docker con el siguiente comando:
systemctl status docker
Deberías ver la siguiente salida:
? docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2022-08-28 05:52:18 UTC; 47s ago TriggeredBy: ? docker.socket Docs: https://docs.docker.com Main PID: 2719 (dockerd) Tasks: 7 Memory: 30.3M CPU: 312ms CGroup: /system.slice/docker.service ??2719 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock Aug 28 05:52:18 ubuntu2204 dockerd[2719]: time="2022-08-28T05:52:18.379341986Z" level=info msg="scheme \"unix\" not registered, fallback to d> Aug 28 05:52:18 ubuntu2204 dockerd[2719]: time="2022-08-28T05:52:18.379467088Z" level=info msg="ccResolverWrapper: sending update to cc: {[{u> Aug 28 05:52:18 ubuntu2204 dockerd[2719]: time="2022-08-28T05:52:18.379593467Z" level=info msg="ClientConn switching balancer to \"pick_first> Aug 28 05:52:18 ubuntu2204 dockerd[2719]: time="2022-08-28T05:52:18.427861369Z" level=info msg="Loading containers: start." Aug 28 05:52:18 ubuntu2204 dockerd[2719]: time="2022-08-28T05:52:18.620267088Z" level=info msg="Default bridge (docker0) is assigned with an > Aug 28 05:52:18 ubuntu2204 dockerd[2719]: time="2022-08-28T05:52:18.713742709Z" level=info msg="Loading containers: done." Aug 28 05:52:18 ubuntu2204 dockerd[2719]: time="2022-08-28T05:52:18.744925054Z" level=info msg="Docker daemon" commit=a89b842 graphdriver(s)=> Aug 28 05:52:18 ubuntu2204 dockerd[2719]: time="2022-08-28T05:52:18.745338168Z" level=info msg="Daemon has completed initialization" Aug 28 05:52:18 ubuntu2204 systemd[1]: Started Docker Application Container Engine. Aug 28 05:52:18 ubuntu2204 dockerd[2719]: time="2022-08-28T05:52:18.805663866Z" level=info msg="API listen on /run/docker.sock"
Instalar Appwrite en Ubuntu 22.04
Ahora puedes instalar Appwrite ejecutando el siguiente comando:
docker run -it --rm --volume /var/run/docker.sock:/var/run/docker.sock --volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw --entrypoint="install" appwrite/appwrite:0.12.1
Este comando descargará todas las imágenes necesarias para Appwrite y creará un contenedor. Durante el proceso, se te pedirá que elijas el puerto HTTP y HTTPS del servidor:
83577bffd893: Pull complete 9722b4cda70e: Pull complete bede3c89f2f3: Pull complete 0bb0dd9a25cc: Pull complete d431a0cda7a4: Pull complete bd9edd8b939c: Pull complete 24ccf9e70cfd: Pull complete bc8aa3e29770: Pull complete 4ee3909c4974: Pull complete 359c5d4ab0a2: Pull complete 97ffe4879aea: Pull complete 42e96d223d26: Pull complete c12fc543b73f: Pull complete e25a36152792: Pull complete e672f91535ad: Pull complete f4a1c11b6f1d: Pull complete 9df8264116e7: Pull complete f3c7599812dd: Pull complete cf51f2dd9e94: Pull complete Digest: sha256:ddc9e53482252df4eb2e0ff90a7efff6cec5346b34240f664ac24e582dc65071 Status: Downloaded newer image for appwrite/appwrite:0.12.1 Starting Appwrite installation... Choose your server HTTP port: (default: 80) Choose your server HTTPS port: (default: 443) Choose a secret API key, make sure to make a backup of your key in a secure location (default: 'your-secret-key')
Proporciona los puertos que prefieras y pulsa la tecla Intro. Se te pedirá que proporciones tu nombre de host de Appwrite:
Enter your Appwrite hostname (default: 'localhost') appwrite.example.com Provide your hostname and press the Enter key. Once the Appwrite has been installed, you will get the following output: Enter a DNS A record hostname to serve as a CNAME for your custom domains. You can use the same value as used for the Appwrite hostname. (default: 'localhost') appwrite.example.com Running "docker-compose -f /usr/src/code/appwrite/docker-compose.yml up -d --remove-orphans --renew-anon-volumes" Appwrite installed successfully
Ahora puedes verificar todas las imágenes Docker descargadas con el siguiente comando:
docker images
Obtendrás la siguiente salida:
REPOSITORY TAG IMAGE ID CREATED SIZE mariadb 10.7 b0408ef424b9 4 days ago 415MB traefik 2.5 865923368a9f 7 months ago 101MB appwrite/appwrite 0.12.1 5dd87572d61b 7 months ago 492MB appwrite/runtime-for-java 16.0 80cb53a883d9 14 months ago 327MB appwrite/runtime-for-node 16.0 dd69334e816d 14 months ago 116MB appwrite/runtime-for-ruby 3.0 553408e76d3d 14 months ago 62.6MB appwrite/runtime-for-python 3.9 98f1967126b5 14 months ago 47.6MB appwrite/runtime-for-php 8.0 e6c8c40bd069 14 months ago 86.3MB appwrite/telegraf 1.2.0 b524e292d428 15 months ago 127MB redis 6.0-alpine3.12 933c79ea2511 19 months ago 31.6MB appwrite/influxdb 1.0.0 8c1dd387596e 22 months ago 248MB
Puedes ver todos los contenedores en ejecución con el siguiente comando:
docker ps
Obtendrás una lista de todos los contenedores en ejecución en la siguiente salida:
NAMES a496ce91c5ed traefik:2.5 "/entrypoint.sh --pr…" 33 seconds ago Up 30 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp appwrite-traefik 36c7df33b630 appwrite/appwrite:0.12.1 "worker-database" 44 seconds ago Up 33 seconds 80/tcp appwrite-worker-database 66e36ce68586 appwrite/appwrite:0.12.1 "worker-functions" 45 seconds ago Up 33 seconds 80/tcp appwrite-worker-functions 5011d448b1ed appwrite/appwrite:0.12.1 "realtime" 45 seconds ago Up 33 seconds 80/tcp appwrite-realtime 84e117d48e23 appwrite/appwrite:0.12.1 "docker-php-entrypoi…" 45 seconds ago Up 33 seconds 80/tcp appwrite 95465c386e19 appwrite/appwrite:0.12.1 "worker-audits" 45 seconds ago Up 34 seconds 80/tcp appwrite-worker-audits c0ddb48e3d0c appwrite/appwrite:0.12.1 "worker-certificates" 45 seconds ago Up 33 seconds 80/tcp appwrite-worker-certificates 0cc2c6f401d8 appwrite/appwrite:0.12.1 "worker-webhooks" 45 seconds ago Up 33 seconds 80/tcp appwrite-worker-webhooks 47a519fa6e6d appwrite/appwrite:0.12.1 "worker-deletes" 45 seconds ago Up 37 seconds 80/tcp appwrite-worker-deletes af354030c8f7 appwrite/appwrite:0.12.1 "usage" 45 seconds ago Up 37 seconds 80/tcp appwrite-usage f25b1832b3bc appwrite/appwrite:0.12.1 "schedule" 46 seconds ago Up 40 seconds 80/tcp appwrite-schedule f5c7c025ecb3 appwrite/appwrite:0.12.1 "maintenance" 46 seconds ago Up 41 seconds 80/tcp appwrite-maintenance e25d6b28b033 appwrite/appwrite:0.12.1 "worker-mails" 46 seconds ago Up 38 seconds 80/tcp appwrite-worker-mails 1c927b29732f appwrite/telegraf:1.2.0 "/entrypoint.sh tele…" 48 seconds ago Up 45 seconds 8092/udp, 8125/udp, 8094/tcp appwrite-telegraf 7d8e644afba3 mariadb:10.7 "docker-entrypoint.s…" 48 seconds ago Up 45 seconds 3306/tcp appwrite-mariadb 21e8c76c53a0 appwrite/influxdb:1.0.0 "/entrypoint.sh infl…" 48 seconds ago Up 46 seconds 8086/tcp appwrite-influxdb 5b136250c71f redis:6.0-alpine3.12 "docker-entrypoint.s…" 48 seconds ago Up 46 seconds 6379/tcp appwrite-redis
Accede a la interfaz web de Appwrite
Ahora, abre tu navegador web y accede a la interfaz web de Appwrite utilizando la URL https://appwrite.example.com. Serás redirigido a la página de registro de Appwrite:
Introduce tu nombre, dirección de correo electrónico, contraseña y haz clic en el botón Registrarse. Deberías ver el panel de control de Appwrite en la página siguiente:
Haz clic en el botón Crear Proyecto para crear tu primer proyecto. Deberías ver la siguiente página:
Proporciona tu ID de proyecto, el nombre del proyecto y haz clic en el botón Crear. Entrarás en la página de tu proyecto:
Ahora, necesitarás añadir una plataforma para construir tu aplicación. Haz clic en el botón Añadir Plataforma. Deberías ver la siguiente página:
Proporciona el nombre de tu aplicación, el nombre del host y haz clic en el botón Registrar. Deberías ver la siguiente página:
Conclusión
Enhorabuena! has instalado correctamente Appwrite con Docker en Ubuntu 22.04. Ya puedes desplegar tu primera aplicación web o móvil en la plataforma Appwrite. No dudes en preguntarme si tienes alguna duda.