REQ: Suporte para backup S3 em um serviço como Backblaze

Gostaria de suporte para backup em um destino Backblaze.

No momento, não consigo definir um endpoint como: s3.eu-central-003.backblazeb2.com

Caso você ainda não tenha visto isso: Configure an S3 compatible object storage provider for uploads

Não, eu não tinha… Agora tenho :slight_smile:

Mas, por outro lado, é necessário um doutorado para conseguir fazer uma coisa simples. Para a próxima versão, a Usabilidade do Admin pode ser um problema.

O Discourse tem muitos recursos avançados, mas eles também são avançados demais para um usuário comum (eu ::slight_smile: )

A propósito, quero apenas que o backup seja armazenado remotamente, fora do servidor.

Não há necessidade de fazer upload de imagens etc., pois elas são armazenadas em uma CDN. Meu fórum não é grande nem tem um uso tão intenso…

Está hospedado em um droplet simples de 5 dólares…

Ah, isso deve ser bem simples então. Embora, se não for muito grande, talvez seja menos trabalhoso usar o AWS S3? O preço deles não é ruim para armazenamento, é apenas um pouco caótico para a largura de banda.

Acho que você só precisaria colocar isso no seu app.yml com as informações corretas e reconstruir. Está excluindo as partes destinadas a uploads de usuários. Você não precisaria incluir a outra parte after_assets_precompile do tutorial.

Basta fazer SSH no seu servidor como root e executar:
cd /var/discourse
nano containers/app.yml

Use as setas do teclado para mover o cursor e cole as informações abaixo logo abaixo da parte do arquivo que diz: #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

  DISCOURSE_S3_REGION: "us-west-002"
  DISCOURSE_S3_INSTALL_CORS_RULE: false
  DISCOURSE_S3_ENDPOINT: https://s3.us-west-002.backblazeb2.com
  DISCOURSE_S3_ACCESS_KEY_ID: myaccesskey
  DISCOURSE_S3_SECRET_ACCESS_KEY: mysecretkey
  DISCOURSE_S3_BACKUP_BUCKET: falcoland-files/backup
  DISCOURSE_BACKUP_LOCATION: s3

Certifique-se de inserir as informações corretas para a região, endpoint, chave de acesso, chave secreta e nome do bucket de backup.

Pressione ctrl+o e confirme para salvar, depois pressione ctrl+x para sair. Em seguida, execute:
./launcher rebuild app

Estou bastante confiante de que funcionará bem.

Visto que você está na Digital Ocean, seria uma boa ideia fazer um backup antes de fazer isso, para que seja fácil reverter se algo der errado.

Obrigado pela descrição, @markersocial

Fui até https://secure.backblaze.com/b2_buckets.htm e criei um novo bucket.

Em seguida, fui até App Keys para criar uma nova chave de aplicativo para acesso.

Após a criação, você recebe temporariamente uma informação como a abaixo — esteja ciente de que isso só é exibido uma vez:

Com base nisso, usei:

DISCOURSE_S3_REGION: “s3.eu-central-003”
DISCOURSE_S3_INSTALL_CORS_RULE: false
DISCOURSE_S3_ENDPOINT: https://s3.eu-central-003.backblazeb2.com
DISCOURSE_S3_ACCESS_KEY_ID: myaccesskey
DISCOURSE_S3_SECRET_ACCESS_KEY: mysecretkey
DISCOURSE_S3_BACKUP_BUCKET: my_buckets_Name
DISCOURSE_BACKUP_LOCATION: s3

Depois fiz um rebuild após criar um snapshot do meu droplet no Digital Ocean.

./launcher rebuild app

Em seguida, fui até /admin/backups e fiz um backup.

[2020-08-27 09:25:57] Criando arquivo: studmed-dk-2020-08-27-092518-v20200820232017.tar.gz
[2020-08-27 09:25:57] Verificando se o arquivo já existe…
[2020-08-27 09:25:57] pg_dump: executando SEQUENCE SET topic_allowed_users_id_seq
[2020-08-27 09:25:57] Criando arquivo vazio…
[2020-08-27 09:25:57] Arquivando dump de dados…
[2020-08-27 09:25:59] Arquivando uploads…
[2020-08-27 09:26:06] Removendo diretório tmp ‘/var/www/discourse/tmp/backups/default/2020-08-27-092518’…
[2020-08-27 09:26:06] Comprimindo arquivo com gzip, isso pode levar algum tempo…
[2020-08-27 09:26:31] Fazendo upload do arquivo…
[2020-08-27 09:26:41] Executando o after_create_hook para o backup…
[2020-08-27 09:26:41] Excluindo backups antigos…
[2020-08-27 09:26:41] Limpando arquivos…
[2020-08-27 09:26:41] Removendo arquivo do armazenamento local…
[2020-08-27 09:26:41] Removendo sobras do ‘.tar’…
[2020-08-27 09:26:41] Marcando backup como concluído…
[2020-08-27 09:26:41] Atualizando estatísticas do disco…
[2020-08-27 09:26:42] Notificando ‘frold’ sobre o fim do backup…
[2020-08-27 09:26:53] Concluído!

Depois fui até o Backblaze para ver se algo aconteceu lá:

Devo a você uma :beers:

Ótimo trabalho! Se mais alguém acabar aqui, acredito que, se você fornecer uma chave que possa criar buckets, o Discourse até criará o bucket para você.

Fechado, pois isso é suportado nativamente ao seguir Usando Armazenamento de Objetos para Uploads (S3 e Clones)