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 cadaboot 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 > selecionastaff
> clica no-
no canto inferior esquerdo > selecionaeveryone
> muda oprivilege/privilégio
parano access/sem acesso
> emname & extensions/nome e extensão
eu 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.key
do nome > marco/check os atributossomente leitura
eoculto
>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_key
com o caminho da sua chave SSH q vc baixou da Oracle
Instalando o Appwrite
caso queira pular a
pré-instalação
einstalação
, basta usar o comandocurl -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 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
-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 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
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
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 details
q fica embaixo deGeneral information
> clica no link em frente aVirtual cloud network
q ta com o nome da rede q vc colocou ao criar a VM > emSubnets
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) > emSecurity Lists
clica emDefault Security List for...
> emIngress Rules
(já vão ter 3 regras) clica no botão cinza grande q temAdd Ingress Rules
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 esquerdoAdd Ingress Rules
agora vc já consegue acessar a dashboard do appwrite em
https://ENDEREÇO-IP-DO-SEU-SERVIDOR
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
em
Add Ingress Rules
>Source CIDR
=0.0.0.0/0
>Destination Port Range
=X
sendo 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
.env
ou 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 --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
comOracle Linux 9
nabuild + recente
, ficam bugadas e travadas, então eu pego abuild + 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)
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