Plataforma de E-commerce Auto-hospedada para Artistas
Uma aplicação de e-commerce auto-hospedada construída com Ruby on Rails para ajudar artistas a venderem seu trabalho sem marketplaces de terceiros.
Website e Aplicação de E-commerce
Esta é uma aplicação de e-commerce auto-hospedada projetada para mostrar o trabalho de um artista e eliminar a dependência de plataformas de terceiros para vendas.
🔗 App ao Vivo: The Art of Jaleh
Código encontrado aqui: https://github.com/AngelLozan/aoj
🎨 Recursos
- Usuário Admin Único: Restrito a um usuário para gerenciar conteúdo.
- Exibição e Vendas de Obras de Arte: Visitantes podem navegar e comprar arte diretamente.
- Integração Printify: Automatiza pedidos de impressão sob demanda.
- Pagamentos Seguros: Integrado com PayPal sandbox para testes.
- Auto-hospedagem no Digital Ocean: Controle total sobre hospedagem e implantação.
🔑 Administração de Conta
- Este app é projetado para um único usuário admin.
- Credenciais de admin devem ser criadas via console Rails.
- O admin pode atualizar seu email e senha dentro da UI.
⚙️ Configuração e Implantação
1️⃣ Implantando no Digital Ocean
Criar um Droplet
- Escolha um App Marketplace Rails ao configurar seu droplet.
Faça SSH no droplet:
1
ssh root@<droplet-ip>
(Opcional) Configure um atalho SSH:
1 2 3 4
Host <app-name> User root HostName <droplet-ip> IdentityFile ~/.ssh/<key-name>
Agora você pode conectar usando:
1
ssh <app-name>
Atualizar Pacotes
1
sudo apt-get update
Modificar Configuração Nginx
1
nano /etc/nginx/sites-available/rails
Altere
root /home/rails/rails_app/public;para:1
root /home/<app-name>/public;
Atualize o nome do servidor:
1
server_name <your-domain> www.<your-domain>;
Adicione ao bloco
location /:1 2
proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";
Alterar Diretório de Trabalho
1
nano /etc/systemd/system/rails.service
Atualize:
1 2
WorkingDirectory=/home/<app-name> ExecStart= /bin/bash -lc 'bundle exec puma -e production'
Configuração DNS (Digital Ocean)
- Adicione Registros A para seu domínio:
1 2 3
ns1.digitalocean.com ns2.digitalocean.com ns3.digitalocean.com
Clonar e Configurar App
1
2
3
git clone <repo-url>
sudo chmod 777 -R <app-name>
cd <app-name>
Instalar Dependências
1
2
bundle install
yarn install
Configurar Variáveis ENV
- Instale Figaro:
1
bundle exec figaro install
- Mova valores
.envparaconfig/application.yml:1
EXAMPLE_ENV_VAR: value
Configuração do Banco de Dados
1
2
3
RAILS_ENV=production rails db:create
RAILS_ENV=production rails db:migrate
RAILS_ENV=production rails db:seed
Pré-compilar Assets
1
RAILS_ENV=production bundle exec rake assets:precompile
Obter Certificado SSL
1
sudo certbot --nginx -d <your-domain> -d www.<your-domain>
Reiniciar Serviços
1
2
3
sudo systemctl daemon-reload
sudo systemctl restart nginx
sudo systemctl restart rails.service
🔄 Atualizando e Solucionando Problemas
Buscando Código Mais Recente
1
2
git fetch
git pull
Verificando Status do Serviço
1
2
sudo systemctl status rails.service
sudo systemctl status nginx
Visualizando Logs
1
2
3
journalctl -u rails.service -b
cd <app-name>
tail -f log/production.log
🛍️ Integração API Printify
Com uma configuração de loja API personalizada, o Printify não lida com publicação. Use a API para buscar dados de produtos e criar listagens manualmente.
- Use API Printify para:
- Recuperar dados de produtos
- Definir status de publicação do produto
- Desbloquear produtos travados
Para suporte: apiteam[@]printify.com
🛠️ Testes
Workflows GHA
- Atualmente desabilitados devido a problemas de conexão Cloudinary.
- Para habilitar, mova workflows de
./testpara./github/.
Executando Testes
1
2
rails db:test:purge
rails test
Testando PayPal Sandbox
- Use uma data futura para expiração, por exemplo, 10/24.
🎨 Obras de Arte
As obras de arte usadas neste projeto consistem em mockups originais fornecidos pelo artista para visualizar o design final do site.
🚀 Conclusão
Esta aplicação de e-commerce auto-hospedada fornece aos artistas uma loja online totalmente controlada, evitando taxas e restrições de terceiros. Com uma configuração segura e auto-hospedada no Digital Ocean, esta solução garante uma experiência de compra suave para clientes e capacidades completas de gerenciamento para o artista.
🔗 App ao Vivo: The Art of Jaleh
