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
storagee cadaboot volumeocupa 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 > selecionastaff> clica no-no canto inferior esquerdo > selecionaeveryone> muda oprivilege/privilégioparano access/sem acesso> emname & extensions/nome e extensãoeu gosto de remover a extensão.key> só clicar nox/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
- 2 dedos/botão direito no arquivo >
no 🪟
- 2 dedos/botão direito no arquivo >
propriedades/alt + enter> removo o.keydo nome > marco/check os atributossomente leituraeoculto>ok> apareceu pop up ? só da enter
- 2 dedos/botão direito no arquivo >
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_keycom o caminho da sua chave SSH q vc baixou da Oracle
Instalando o Appwrite
caso queira pular a
pré-instalaçãoeinstalação, basta usar o comandocurl -fsSL https://gitlab.com/mazieri/get_appwrite/-/raw/main/appwrite_installer_br.sh | sudo bashdo script q fiz q ta nesse repo, dai é só seguir com após-instalação
Pré-instalação do Appwrite | Instalando requisitos
sudo su
↳ virar
root/adm
yum -y update && yum -y upgrade
↳ atualizar tudo | o
-yfaz 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/basepara a instalação dodocker
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
dockeriniciar junto com o sistema (caso vc precise reiniciar a VM)
docker run hello-world
↳ só pra testar o
dockere 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
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)
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)
uma senha gigante, crie uma e não a compartilhei (eu sugiro usar geradores de senhas e colocar o 100+ caracteres)
url/endereço personalizado de site
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
Instance detailsq fica embaixo deGeneral information> clica no link em frente aVirtual cloud networkq ta com o nome da rede q vc colocou ao criar a VM > emSubnetsclica 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) > emSecurity Listsclica emDefault Security List for...> emIngress Rules(já vão ter 3 regras) clica no botão cinza grande q temAdd Ingress Rulesem
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 esquerdoAdd Ingress Rulesagora vc já consegue acessar a dashboard do appwrite em
https://ENDEREÇO-IP-DO-SEU-SERVIDORcriar 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
em
Add Ingress Rules>Source CIDR=0.0.0.0/0>Destination Port Range=Xsendo q quero recomendar essas 3TCP 587 para o serviço de email
TCP 3310 para o clamav (pra ativar o clamav, precisa descomentar a "parte dele" no
docker-compose.yml)
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
.envou nodocker-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 --helpnã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 x86comOracle Linux 9nabuild + recente, ficam bugadas e travadas, então eu pego abuild + antigae 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)

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



