Appwrite na Oracle Cloud

Appwrite na Oracle Cloud

quer colocar o Appwrite online, 0800 ? então bora !

Assumindo q vc já tenha uma conta na Oracle Cloud, é relativamente simples criar uma VM/VPS

e eu só vou indicar serviços/itens q sejam 0800 pra sempre (segundo a Oracle), blz ?

Criando a VM

Chegando onde se cria a VM

abra o menu sanduíche no canto superior esquerdo (do lado do nome Oracle Cloud) > compute > instaces > escolha o compartment no menu lateral um pouco pra baixo > create instance praticamente no meio da tela em cinza

Image e Shape

de um nome, agora desça até a parte image and shape, em image eu gosto de escolher o Oracle Linux 9 com a build + recente, mas ai é questão de gosto, fique a vontade para escolher outro Linux ou até, caso queira pagar a licença, o Windows, só q caso mude, os comandos provavelmente não serão os mesmo, então se liga nisso em !?... bom, agora no shape, temos 2 opções 0800, uma ARM (q é a Ampere) e outra x86 (q é a Specialty and previous generation)

  • se for de ARM

    • o limite é 4 núcleos/OCPUs | 24 GB RAM

    • cada núcleos/OCPUs da 1 Gbps de banda de rede

  • se for de x86 (pode ser só cmg, mas resolvi deixar esse aviso, as VMs x86 com Oracle Linux 9 na build + recente, ficam bugadas e travadas, então eu pego a build + antiga e só att)

    • o limite é 2 VMs separadas de 1 núcleos/OCPU | 1 GB RAM

    • cada VM vai ter 0.48 Gbps de banda de rede

caso vc não saiba, no 0800, temos 200GB de storage e cada boot volume ocupa obrigatoriamente 50GB no mínimo, logo, só podemos ter 4 VMs rodando sendo 0800... mas, vc pode deletar 1 VM e fazer outra quantas vezes quiser, blz ?

Networking

sugiro escolher create new virtual cloud network > dar nome > escolher create new public subnet > dar nome (ou deixa padrão msm, só acho q fica feio) > deixa assign a public IPv4 address

prefiro criar uma rede do 0, pra colocar as portas certinhas e deixar cada VM com uma rede separada, pq vai q eu preciso alterar a porta X e isso afetaria uma VM rodando redondinha, ai ia ser mó dor de cabeça pra separar uma delas criando uma rede com a VM já rodando... então, pra evitar isso, já crio agora e pronto

Add SSH Keys

generate a key pair for me > save private key (não preciso avisar pra nunca compartilhar essa chave privada né ?! e sugiro q guarde um backup dela em algum lugar seguro e de preferencia criptografado)

Boot Volume

Use in-transit encryption (só marcar e gg)

Arrumar a chave SSH + esperar uns 5min

a chave SSH q vc baixou vai vir "aberta", então antes de sair usando ela, sugiro vc "ocultar" q no é remover as permissões de leitura de geral, só deixando a sua

  • no 

    • 2 dedos/botão direito no arquivo > get info/obter informações > sharing & permissions/compartilhamento e permissões > cadeado no canto inferior direito > senha de adm > seleciona staff > clica no - no canto inferior esquerdo > seleciona everyone > muda o privilege/privilégio para no access/sem acesso > em name & extensions/nome e extensão eu gosto de remover a extensão .key > só clicar no x/fechar (no meu caso aparece o pop up pra confirmar a remoção da extensão, dou enter e gg) > renomeio para o nome q dei da VM > arrasto para a pasta oculta na Home .ssh
  • no 🪟

    • 2 dedos/botão direito no arquivo > propriedades/alt + enter > removo o .key do nome > marco/check os atributos somente leitura e oculto > ok > apareceu pop up ? só da enter

Acessando a VM

Instance access

só clicar no copy na frente do IP publico e substituir o ip_address no comando:

ssh opc@ip_address -i private_key

↳ substituir private_key com o caminho da sua chave SSH q vc baixou da Oracle

Instalando o Appwrite

caso queira pular a pré-instalação e instalação, basta usar o comando curl -fsSL https://gitlab.com/mazieri/get_appwrite/-/raw/main/appwrite_installer_br.sh | sudo bash do script q fiz q ta nesse repo, dai é só seguir com a pós-instalação

Pré-instalação do Appwrite | Instalando requisitos

sudo su

↳ virar root/adm

yum -y update && yum -y upgrade

↳ atualizar tudo | o -y faz a confirmação de tudo "automaticamente"

yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

↳ add repo/base para a instalação do docker

yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

↳ instalar o docker

systemctl start docker

↳ iniciar o docker

systemctl enable docker.service
systemctl enable containerd.service

↳ fazer o docker iniciar junto com o sistema (caso vc precise reiniciar a VM)

docker run hello-world

↳ só pra testar o docker e ter ctz q ta tudo redondinho

Instalação do Appwrite

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:1.3.7

↳ comando de instalação do appwrite

essas opções ↓ vão aparecer no terminal na mesma ordem daqui

  1. porta do servidor http, padrão é 80 (digita o nº q vc queira e de enter, ou só de enter pra manter o padrão)

  2. porta do servidor https, padrão é 443 (digita o nº q vc queira e de enter, ou só de enter pra manter o padrão)

  3. uma senha gigante, crie uma e não a compartilhei (eu sugiro usar geradores de senhas e colocar o 100+ caracteres)

  4. url/endereço personalizado de site

  5. url/endereço personalizado de site

Pós-instalação do Appwrite | Configurando rede/acesso

toda essa configuração de agora é feita na dashboard da sua VM na Oracle Cloud

  1. Instance details q fica embaixo de General information > clica no link em frente a Virtual cloud network q ta com o nome da rede q vc colocou ao criar a VM > em Subnets clica no link com o nome da sub rede (como vc criou junto com a VM, espero, só vai ter 1 msm, então, não tem erro) > em Security Lists clica em Default Security List for... > em Ingress Rules (já vão ter 3 regras) clica no botão cinza grande q tem Add Ingress Rules

  2. em Add Ingress Rules > Source CIDR = 0.0.0.0/0 > Destination Port Range = 80 > no canto inferior direito + Another Ingress Rules > Source CIDR = 0.0.0.0/0 > Destination Port Range = 443 > no canto inferior esquerdo Add Ingress Rules

  3. agora vc já consegue acessar a dashboard do appwrite em https://ENDEREÇO-IP-DO-SEU-SERVIDOR

  4. criar usuário admin (nas config padrões do docker-compose.yml, só permite a criação de 1 usuário admin, os outros terão q ser convidados via dashboard)

Personalização | Configurações extras

  1. em Add Ingress Rules > Source CIDR = 0.0.0.0/0 > Destination Port Range = X sendo q quero recomendar essas 3

    1. TCP 587 para o serviço de email

    2. TCP 3310 para o clamav (pra ativar o clamav, precisa descomentar a "parte dele" no docker-compose.yml)

    3. TCP 3000 para o grafana (pra ativar o grafada, precisar add ele no docker-compose.yml)

Comandos extras

docker stats

↳ vai mostar os containers rodando e os recursos q cada um deles ta usando

docker kill $(docker ps -q)

↳ pra matar/finalizar todos os conainers

docker compose stop

↳ parar os containers

docker compose up -d --remove-orphans --build --force-recreate --renew-anon-volumes

↳ pra resetar todos os containers e forçar a aplicação de todas as alterações feitas, sugiro utilizar esse comando toda vez q fizer alguma alteração no .env ou no docker-compose.yml

docker compose down -v

↳ parar e remover o appwrite (na dock do appwrite, eles chamam esse comando de desinstalação)


OBS #5

caso queira ler a doc oficinal, ela esta aqui

OBS #4

caso vc queira entender os comandos do docker compose, aqui está a documentação com as explicações, mas nada q um docker compose --help não "resolva"

OBS #3

vou tentar manter os script daqui sempre att

OBS #2

pode ser só cmg, mas resolvi deixar esse aviso, as VMs x86 com Oracle Linux 9 na build + recente, ficam bugadas e travadas, então eu pego a build + antiga e só att

OBS #1

provavelmente vai aparecer q está cobrando R$ 10 do boot volume, mas fica tranquilo q não ta, já fiz o teste várias vezes e nunca fui cobrado, inclusive, deixo sempre 4 VMs rodando e tudo 0800 (isso claro, dentro dos 200GB q são 0800 pra todas as contas)

mostrando q vai cobrar o preço do , mas nunca cobrou


Bom, acho q é isso, obrigado por ler !

Se eu falei alguma besteira, me corrija pf, e se tiver um tempo, se inscreva na minha newsletter e fique a vontade para se conectar

Como a minha classe favorita do Ragnarok, Super Aprendiz, sou um Eterno Aprendiz

n4 | v0.3

Did you find this article valuable?

Support Felipe Mazieri by becoming a sponsor. Any amount is appreciated!