Compare commits
10 commits
f5062ae552
...
a7a98e23cb
Author | SHA1 | Date | |
---|---|---|---|
a7a98e23cb | |||
d8eb3bcef5 | |||
3f3bd797c4 | |||
aaa2d7ae4a | |||
fb551c651d | |||
64d5eef9c0 | |||
69135b8fe9 | |||
7919c173e2 | |||
f9802c8a5b | |||
bf92961e83 |
27 changed files with 265 additions and 37 deletions
|
@ -18,23 +18,19 @@ jobs:
|
|||
with:
|
||||
node-version: 19
|
||||
|
||||
- name: Install rsync
|
||||
run: |
|
||||
apt-get update
|
||||
apt-get install -y rsync
|
||||
env:
|
||||
SSH_PRIVATE_KEY: ${{secrets.SSH_KEY}}
|
||||
SSH_KNOWN_HOSTS: ${{secrets.SSH_KNOWN_HOSTS}}
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm install
|
||||
|
||||
- name: Build app
|
||||
run: npm run build
|
||||
- name: Install PM2
|
||||
run: npm i -g pm2
|
||||
|
||||
- name: Add Deploy Key to SSH
|
||||
run: |
|
||||
mkdir ~/.ssh
|
||||
echo "${{ secrets.SSH_KEY }}" >> ~/.ssh/id_ed25519_embroideryviewer
|
||||
chmod 400 ~/.ssh/id_ed25519_embroideryviewer
|
||||
echo -e "Host embroideryviewer\n\tUser embroideryviewer\n\tHostname 45.76.5.44\n\tIdentityFile ~/.ssh/id_ed25519_embroideryviewer\n\tStrictHostKeyChecking No" >> ~/.ssh/config
|
||||
mkdir -p ~/.ssh
|
||||
echo "${{ secrets.SSH_KEY }}" >> ./deploy.key
|
||||
sudo chmod 600 ./deploy.key
|
||||
echo "${{ secrets.SSH_KNOWN_HOSTS}}" > ~/.ssh/known_hosts
|
||||
|
||||
- name: Upload changes to server
|
||||
run: rsync -avz --progress dist/ embroideryviewer:web/prod
|
||||
- name: Deploy
|
||||
run: pm2 deploy ecosystem.config.cjs production
|
||||
|
|
34
ecosystem.config.cjs
Normal file
34
ecosystem.config.cjs
Normal file
|
@ -0,0 +1,34 @@
|
|||
module.exports = {
|
||||
apps: [
|
||||
{
|
||||
name: 'embroidery-viewer',
|
||||
script: './build/index.js',
|
||||
time: true,
|
||||
instances: 1,
|
||||
autorestart: true,
|
||||
max_restarts: 50,
|
||||
watch: false,
|
||||
max_memory_restart: '1G',
|
||||
env: {
|
||||
NODE_ENV: 'production',
|
||||
},
|
||||
},
|
||||
],
|
||||
deploy: {
|
||||
production: {
|
||||
user: 'deployer',
|
||||
host: '45.76.5.44',
|
||||
key: 'deploy.key',
|
||||
ref: 'origin/main',
|
||||
repo: 'git@git.leomurca.xyz:leomurca/embroidery-viewer.git',
|
||||
path: '/home/deployer/embroidery-viewer',
|
||||
'pre-deploy': 'rm package-lock.json && npm i',
|
||||
'post-deploy':
|
||||
'npm run build && pm2 reload ecosystem.config.cjs --only acelera-alagoas-prod --env production && pm2 save',
|
||||
env: {
|
||||
PORT: 7017,
|
||||
NODE_ENV: 'production',
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
|
@ -1,4 +1,9 @@
|
|||
{
|
||||
"title": "ℹ About Embroidery Viewer",
|
||||
"content": "<p>Hi there! 👋</p><p><strong>⭐️ Embroidery Viewer</strong> was born out of a simple need — helping someone I care about. 💖</p><p>My girlfriend loves embroidery, but she often struggled to find an easy and free way to preview her embroidery design files before stitching them. Most tools she tried were either paid, overly complex, or required technical knowledge — and she’s not a techie.</p><p>So, to make things easier for her (and others like her), I decided to build this web application.</p><p>Over the course of a few weeks, I created <strong>Embroidery Viewer</strong> — a lightweight, fast, and free tool that lets you view embroidery files directly in your browser. No installation, no setup, and no tech hurdles. Just upload your file and see your design.</p><p>It’s not a super sophisticated tool, but it solves the problem it was meant to solve: making embroidery file previews accessible to everyone.</p><p>If this tool has helped you too, that makes me really happy! I plan to continue improving it based on feedback from users like you.</p><p>Thanks for stopping by — and happy stitching! 🧵✨</p>"
|
||||
"content": "<p>Hi there! 👋</p><p><strong>⭐️ Embroidery Viewer</strong> was born out of a simple need — helping someone I care about. 💖</p><p>My girlfriend loves embroidery, but she often struggled to find an easy and free way to preview her embroidery design files before stitching them. Most tools she tried were either paid, overly complex, or required technical knowledge — and she’s not a techie.</p><p>So, to make things easier for her (and others like her), I decided to build this web application.</p><p>Over the course of a few weeks, I created <strong>Embroidery Viewer</strong> — a lightweight, fast, and free tool that lets you view embroidery files directly in your browser. No installation, no setup, and no tech hurdles. Just upload your file and see your design.</p><p>It’s not a super sophisticated tool, but it solves the problem it was meant to solve: making embroidery file previews accessible to everyone.</p><p>If this tool has helped you too, that makes me really happy! I plan to continue improving it based on feedback from users like you.</p><p>Thanks for stopping by — and happy stitching! 🧵✨</p>",
|
||||
"seo.title": "ℹ About Embroidery Viewer – The Story Behind the Tool",
|
||||
"seo.description": "Learn the story behind Embroidery Viewer — a free, online tool created to make embroidery file previews simple, fast, and accessible to everyone.",
|
||||
"seo.keywords": "about embroidery viewer, embroidery viewer story, free embroidery viewer, why embroidery viewer was created, who created embroidery viewer, online embroidery viewer, free embroidery tool, embroidery viewer about",
|
||||
"seo.url": "https://embroideryviewer.xyz/about",
|
||||
"seo.image": "https://embroideryviewer.xyz/og/about.png"
|
||||
}
|
||||
|
|
|
@ -9,5 +9,10 @@
|
|||
"copy.failed": "Copy Failed!",
|
||||
"monero.description": "Private and secure donation option.",
|
||||
"paypal.description": "Want to show support in a friendly way?",
|
||||
"paypal.link": "Open Donation link"
|
||||
"paypal.link": "Open Donation link",
|
||||
"seo.title": "💖 Donate – Support Embroidery Viewer",
|
||||
"seo.description": "Help keep Embroidery Viewer free and improving by making a donation. Choose from Bitcoin, Monero, PayPal, or other secure options to support ongoing development and hosting.",
|
||||
"keywords": "donate embroidery viewer, support embroidery viewer, embroidery viewer donations, help embroidery viewer, fund embroidery viewer, bitcoin donation embroidery, monero donation embroidery, paypal donation embroidery",
|
||||
"url": "https://embroideryviewer.xyz/donate",
|
||||
"image": "https://embroideryviewer.xyz/og/donate.png"
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
"cta.title": "🚀 Try It Now",
|
||||
"cta.cta": "🧵 Open Viewer",
|
||||
"cta.cta.description": "the fastest <strong>Free Online Embroidery File Viewer</strong>.",
|
||||
"seo.title": "🧵 Free Online Embroidery File Viewer - Fast, Private & No Signup",
|
||||
"seo.title": "🏠 Free Online Embroidery File Viewer - Fast, Private & No Signup",
|
||||
"seo.description": "Upload and preview embroidery files instantly with Embroidery Viewer. Supports DST, PES, JEF, EXP, VP3 and more. No installs, no uploads – 100% browser-based and free.",
|
||||
"seo.keywords": "embroidery viewer, online embroidery viewer, embroidery file preview, DST viewer, PES viewer, free embroidery tool, JEF viewer, EXP embroidery, VP3 embroidery viewer, embroidery preview tool, browser embroidery renderer, convert embroidery to PNG",
|
||||
"seo.url": "https://embroideryviewer.xyz",
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
{
|
||||
"title": "🔐 Privacy Policy",
|
||||
"last.update": "Last updated: May 9, 2025",
|
||||
"content": "<p>At <strong>Embroidery Viewer</strong> (<a href=\"https://embroideryviewer.xyz\">embroideryviewer.xyz</a>), we respect your privacy and are committed to protecting any information you share while using our service.</p><h2>1. Personal Information</h2><p>Embroidery Viewer does <strong>not</strong> collect or store any personal information. You do not need to create an account, and we do not ask for your name, email address, or any identifying details.</p><h2>2. File Uploads</h2><p>When you upload an embroidery file to the viewer, the file is processed in your browser or temporarily on our server (if required) for preview purposes only. <strong>No uploaded files are stored, saved, or shared.</strong></p><p>Please avoid uploading any copyrighted or sensitive material unless you have permission to use it.</p><h2>3. Analytics</h2><p>We use <strong>Umami</strong> to collect anonymous usage statistics about our website, such as the number of visitors, page views, device types, and referral sources. This data helps us understand how the site is being used and improve it over time.</p><p>Umami is a privacy-friendly, cookie-free analytics tool. It does <strong>not</strong> track users across sites, collect personal data, or use cookies. All data is aggregated and anonymized.</p><h2>4. Cookies</h2><p>Embroidery Viewer does <strong>not</strong> use cookies or other tracking mechanisms in your browser.</p><h2>5. Third-Party Services</h2><p>We do not use third-party advertising, embed external trackers, or share data with third parties.</p><h2>6. Changes to This Policy</h2><p>We may update this Privacy Policy from time to time. All updates will be posted on this page with the updated date.</p><h2>7. Contact</h2><p>If you have any questions about this Privacy Policy, you can reach us at <a href=\"mailto:leo@leomurca.xyz\">leo@leomurca.xyz</a>.</p>"
|
||||
"content": "<p>At <strong>Embroidery Viewer</strong> (<a href=\"https://embroideryviewer.xyz\">embroideryviewer.xyz</a>), we respect your privacy and are committed to protecting any information you share while using our service.</p><h2>1. Personal Information</h2><p>Embroidery Viewer does <strong>not</strong> collect or store any personal information. You do not need to create an account, and we do not ask for your name, email address, or any identifying details.</p><h2>2. File Uploads</h2><p>When you upload an embroidery file to the viewer, the file is processed in your browser or temporarily on our server (if required) for preview purposes only. <strong>No uploaded files are stored, saved, or shared.</strong></p><p>Please avoid uploading any copyrighted or sensitive material unless you have permission to use it.</p><h2>3. Analytics</h2><p>We use <strong>Umami</strong> to collect anonymous usage statistics about our website, such as the number of visitors, page views, device types, and referral sources. This data helps us understand how the site is being used and improve it over time.</p><p>Umami is a privacy-friendly, cookie-free analytics tool. It does <strong>not</strong> track users across sites, collect personal data, or use cookies. All data is aggregated and anonymized.</p><h2>4. Cookies</h2><p>Embroidery Viewer does <strong>not</strong> use cookies or other tracking mechanisms in your browser.</p><h2>5. Third-Party Services</h2><p>We do not use third-party advertising, embed external trackers, or share data with third parties.</p><h2>6. Changes to This Policy</h2><p>We may update this Privacy Policy from time to time. All updates will be posted on this page with the updated date.</p><h2>7. Contact</h2><p>If you have any questions about this Privacy Policy, you can reach us at <a href=\"mailto:leo@leomurca.xyz\">leo@leomurca.xyz</a>.</p>",
|
||||
"seo.title": "🔐 Privacy Policy - Embroidery Viewer",
|
||||
"seo.description": "Learn how Embroidery Viewer respects your privacy. No personal data collected, files processed locally or temporarily, anonymous analytics only, no cookies or trackers used.",
|
||||
"seo.keywords": "privacy policy, data protection, embroidery viewer privacy, file uploads privacy, anonymous analytics, no cookies, user privacy, privacy-friendly analytics, data security, embroideryviewer.xyz",
|
||||
"seo.url": "https://embroideryviewer.xyz/privacy-policy",
|
||||
"seo.image": "https://embroideryviewer.xyz/og/privacy-policy.png"
|
||||
}
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
{
|
||||
"title": "📝 Terms of Service",
|
||||
"update": "May 9, 2025",
|
||||
"content": "<p>Welcome to <strong>Embroidery Viewer</strong> (<a href=\"https://embroideryviewer.xyz\">embroideryviewer.xyz</a>). By accessing or using this website, you agree to be bound by the following Terms of Service. If you do not agree with any part of these terms, please do not use the site.</p><h2>1. Description of Service</h2><p>Embroidery Viewer is a free, browser-based tool that allows users to preview embroidery design files online. The service is intended for personal, non-commercial use.</p><h2>2. Use of the Service</h2><p>You agree to use the service only for lawful purposes. You are solely responsible for any content (including embroidery files) you upload, and you confirm that you have the legal right to use, view, and process those files.</p><p>You agree not to upload any files that are illegal, offensive, infringe on intellectual property rights, or contain malicious code.</p><h2>3. File Processing</h2><p>Files uploaded to Embroidery Viewer are processed either directly in your browser or temporarily on our servers. Files are not stored permanently, shared, or backed up.</p><p>While we aim to keep your content secure, you acknowledge that no system is 100% secure and you use the service at your own risk.</p><h2>4. No Warranty</h2><p>This service is provided \"as is\" and \"as available\" without any warranties, express or implied. We do not guarantee that the service will be uninterrupted, secure, or error-free.</p><h2>5. Limitation of Liability</h2><p>Embroidery Viewer shall not be held liable for any damages resulting from the use or inability to use the service, including but not limited to loss of data, loss of profits, or other incidental or consequential damages.</p><h2>6. Modifications to the Service</h2><p>We reserve the right to modify, suspend, or discontinue the service at any time without notice. We may also update these Terms of Service from time to time. Continued use of the service after changes constitutes your acceptance of the new terms.</p><h2>7. Governing Law</h2><p>These Terms shall be governed by and interpreted in accordance with the laws of Brazil, without regard to its conflict of law principles.</p><h2>8. Contact</h2><p>If you have any questions about these Terms of Service, feel free to contact us at <a href=\"mailto:leo@leomurca.xyz\">leo@leomurca.xyz</a>.</p>"
|
||||
"content": "<p>Welcome to <strong>Embroidery Viewer</strong> (<a href=\"https://embroideryviewer.xyz\">embroideryviewer.xyz</a>). By accessing or using this website, you agree to be bound by the following Terms of Service. If you do not agree with any part of these terms, please do not use the site.</p><h2>1. Description of Service</h2><p>Embroidery Viewer is a free, browser-based tool that allows users to preview embroidery design files online. The service is intended for personal, non-commercial use.</p><h2>2. Use of the Service</h2><p>You agree to use the service only for lawful purposes. You are solely responsible for any content (including embroidery files) you upload, and you confirm that you have the legal right to use, view, and process those files.</p><p>You agree not to upload any files that are illegal, offensive, infringe on intellectual property rights, or contain malicious code.</p><h2>3. File Processing</h2><p>Files uploaded to Embroidery Viewer are processed either directly in your browser or temporarily on our servers. Files are not stored permanently, shared, or backed up.</p><p>While we aim to keep your content secure, you acknowledge that no system is 100% secure and you use the service at your own risk.</p><h2>4. No Warranty</h2><p>This service is provided \"as is\" and \"as available\" without any warranties, express or implied. We do not guarantee that the service will be uninterrupted, secure, or error-free.</p><h2>5. Limitation of Liability</h2><p>Embroidery Viewer shall not be held liable for any damages resulting from the use or inability to use the service, including but not limited to loss of data, loss of profits, or other incidental or consequential damages.</p><h2>6. Modifications to the Service</h2><p>We reserve the right to modify, suspend, or discontinue the service at any time without notice. We may also update these Terms of Service from time to time. Continued use of the service after changes constitutes your acceptance of the new terms.</p><h2>7. Governing Law</h2><p>These Terms shall be governed by and interpreted in accordance with the laws of Brazil, without regard to its conflict of law principles.</p><h2>8. Contact</h2><p>If you have any questions about these Terms of Service, feel free to contact us at <a href=\"mailto:leo@leomurca.xyz\">leo@leomurca.xyz</a>.</p>",
|
||||
"seo.title": "📝 Terms of Service - Embroidery Viewer",
|
||||
"seo.description": "Read the Terms of Service for Embroidery Viewer. Personal use, upload rules, file processing, warranty disclaimers, liability limitations, and governing law.",
|
||||
"seo.keywords": "terms of service, terms of use, personal use, file upload, file processing, warranty disclaimer, liability limitation, Brazilian law, embroideryviewer.xyz",
|
||||
"seo.url": "https://embroideryviewer.xyz/terms-of-service",
|
||||
"seo.image": "https://embroideryviewer.xyz/og/terms-of-service.png"
|
||||
}
|
||||
|
|
|
@ -10,5 +10,10 @@
|
|||
"stitches": "Stitches",
|
||||
"dimensions": "Dimensions (x, y)",
|
||||
"download": "Download image",
|
||||
"warning.copyright": "Do not upload copyrighted material you do not own or have rights to."
|
||||
"warning.copyright": "Do not upload copyrighted material you do not own or have rights to.",
|
||||
"seo.title": "🧵 Free Online Embroidery File Viewer – Fast, Private & No Signup",
|
||||
"seo.description": "Upload and preview your embroidery files instantly with Embroidery Viewer. Supports DST, PES, JEF, EXP, VP3, and more. No installs, no uploads – 100% browser-based and free.",
|
||||
"seo.keywords": "embroidery viewer, online embroidery viewer, embroidery file preview, DST viewer, PES viewer, free embroidery tool, JEF viewer, EXP embroidery, VP3 embroidery viewer, embroidery preview tool, browser embroidery renderer, convert embroidery to PNG",
|
||||
"seo.url": "https://embroideryviewer.xyz/viewer",
|
||||
"seo.image": "https://embroideryviewer.xyz/og/viewer.png"
|
||||
}
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
{
|
||||
"title": "ℹ Sobre o Embroidery Viewer",
|
||||
"content": "<p>Oi! 👋</p><p><strong>⭐️ Embroidery Viewer</strong> nasceu de uma necessidade simples — ajudar alguém que eu amo. 💖</p><p>Minha namorada adora bordado, mas ela sempre teve dificuldades para encontrar uma maneira fácil e gratuita de visualizar os arquivos de design de bordado antes de começar a costurar. A maioria das ferramentas que ela tentou eram pagas, muito complexas ou exigiam conhecimento técnico — e ela não é da área de tecnologia.</p><p>Então, para facilitar a vida dela (e de outras pessoas como ela), decidi criar este aplicativo web.</p><p>Ao longo de algumas semanas, criei o <strong>Embroidery Viewer</strong> — uma ferramenta leve, rápida e gratuita que permite visualizar arquivos de bordado diretamente no navegador. Sem instalação, sem configuração e sem obstáculos técnicos. Basta enviar o arquivo e ver o design.</p><p>Não é uma ferramenta super sofisticada, mas resolve o problema para o qual foi criada: tornar a visualização de arquivos de bordado acessível para todos.</p><p>Se essa ferramenta também te ajudou, isso me deixa muito feliz! Pretendo continuar melhorando com base no feedback de usuários como você.</p><p>Obrigado por visitar — e bons bordados! 🧵✨</p>"
|
||||
"content": "<p>Oi! 👋</p><p><strong>⭐️ Embroidery Viewer</strong> nasceu de uma necessidade simples — ajudar alguém que eu amo. 💖</p><p>Minha namorada adora bordado, mas ela sempre teve dificuldades para encontrar uma maneira fácil e gratuita de visualizar os arquivos de design de bordado antes de começar a costurar. A maioria das ferramentas que ela tentou eram pagas, muito complexas ou exigiam conhecimento técnico — e ela não é da área de tecnologia.</p><p>Então, para facilitar a vida dela (e de outras pessoas como ela), decidi criar este aplicativo web.</p><p>Ao longo de algumas semanas, criei o <strong>Embroidery Viewer</strong> — uma ferramenta leve, rápida e gratuita que permite visualizar arquivos de bordado diretamente no navegador. Sem instalação, sem configuração e sem obstáculos técnicos. Basta enviar o arquivo e ver o design.</p><p>Não é uma ferramenta super sofisticada, mas resolve o problema para o qual foi criada: tornar a visualização de arquivos de bordado acessível para todos.</p><p>Se essa ferramenta também te ajudou, isso me deixa muito feliz! Pretendo continuar melhorando com base no feedback de usuários como você.</p><p>Obrigado por visitar — e bons bordados! 🧵✨</p>",
|
||||
"seo.title": "ℹSobre o Embroidery Viewer - Por que esta ferramenta foi criada",
|
||||
"seo.description": "Conheça a história por trás do Embroidery Viewer — uma ferramenta gratuita e online criada para tornar a visualização de arquivos de bordado simples, rápida e acessível a todos.",
|
||||
"seo.keywords": "sobre embroidery viewer, história do embroidery viewer, visualizador de bordado gratuito, motivo da criação do embroidery viewer, quem criou o embroidery viewer, visualizador online de bordado, ferramenta gratuita para bordado, embroidery viewer sobre",
|
||||
"seo.url": "https://embroideryviewer.xyz/about",
|
||||
"seo.image": "https://embroideryviewer.xyz/og/about.png"
|
||||
}
|
||||
|
|
|
@ -9,5 +9,10 @@
|
|||
"copy.failed": "Falha na Cópia!",
|
||||
"monero.description": "Opção de doação privada e segura.",
|
||||
"paypal.description": "Quer demonstrar apoio de uma forma amigável?",
|
||||
"paypal.link": "Abrir Link de Doação"
|
||||
"paypal.link": "Abrir Link de Doação",
|
||||
"seo.title": "💖 Doe – Apoie o Embroidery Viewer",
|
||||
"seo.description": "Ajude a manter o Embroidery Viewer gratuito e em constante melhoria fazendo uma doação. Escolha entre Bitcoin, Monero, PayPal ou outras opções seguras para apoiar o desenvolvimento e hospedagem.",
|
||||
"seo.keywords": "doar embroidery viewer, apoie embroidery viewer, doações embroidery viewer, ajudar embroidery viewer, financiar embroidery viewer, doação bitcoin embroidery, doação monero embroidery, doação paypal embroidery",
|
||||
"url": "https://embroideryviewer.xyz/doar",
|
||||
"image": "https://embroideryviewer.xyz/og/doar.png"
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
"cta.title": "🚀 Experimente agora",
|
||||
"cta.cta": "🧵 Abrir visualizador",
|
||||
"cta.cta.description": "o <strong>visualizador de arquivos de bordado online gratuito</strong> mais rápido.",
|
||||
"seo.title": "🧵 Visualizador de Bordado Online Grátis - Rápido, Privado e Sem Cadastro",
|
||||
"seo.title": "🏠 Visualizador de Bordado Online Grátis - Rápido, Privado e Sem Cadastro",
|
||||
"seo.description": "Envie e visualize arquivos de bordado instantaneamente com o Embroidery Viewer. Compatível com DST, PES, JEF, EXP, VP3 e mais. Sem instalações, sem uploads – 100% no navegador e gratuito.",
|
||||
"seo.keywords": "visualizador de bordado, visualizador online de bordado, visualizar arquivos de bordado, visualizar DST, visualizar PES, ferramenta gratuita de bordado, visualizador JEF, bordado EXP, visualizador VP3, pré-visualização de bordado, renderizador de bordado no navegador, converter bordado em PNG",
|
||||
"seo.url": "https://embroideryviewer.xyz",
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
{
|
||||
"title": "🔐 Política de Privacidade",
|
||||
"last.update": "Última atualização: 9 de maio de 2025",
|
||||
"content": "<p>No <strong>Embroidery Viewer</strong> (<a href=\"https://embroideryviewer.xyz\">embroideryviewer.xyz</a>), respeitamos sua privacidade e estamos comprometidos em proteger qualquer informação que você compartilhe ao usar nosso serviço.</p><h2>1. Informações Pessoais</h2><p>O Embroidery Viewer <strong>não</strong> coleta nem armazena informações pessoais. Você não precisa criar uma conta e não pedimos seu nome, e-mail ou qualquer dado identificável.</p><h2>2. Envio de Arquivos</h2><p>Quando você envia um arquivo de bordado para o visualizador, o arquivo é processado no seu navegador ou temporariamente em nosso servidor (se necessário) apenas para fins de visualização. <strong>Nenhum arquivo enviado é armazenado, salvo ou compartilhado.</strong></p><p>Evite enviar materiais sensíveis ou protegidos por direitos autorais, a menos que tenha permissão para usá-los.</p><h2>3. Análises</h2><p>Utilizamos o <strong>Umami</strong> para coletar estatísticas anônimas de uso do site, como número de visitantes, visualizações de página, tipos de dispositivo e fontes de acesso. Esses dados nos ajudam a entender como o site está sendo utilizado e melhorá-lo com o tempo.</p><p>O Umami é uma ferramenta de análise que respeita a privacidade, não usa cookies e não rastreia os usuários entre sites. Todos os dados são agregados e anonimizados.</p><h2>4. Cookies</h2><p>O Embroidery Viewer <strong>não</strong> utiliza cookies ou outros mecanismos de rastreamento em seu navegador.</p><h2>5. Serviços de Terceiros</h2><p>Não utilizamos publicidade de terceiros, nem incorporamos rastreadores externos, nem compartilhamos dados com terceiros.</p><h2>6. Alterações nesta Política</h2><p>Podemos atualizar esta Política de Privacidade ocasionalmente. Todas as atualizações serão publicadas nesta página com a data de modificação.</p><h2>7. Contato</h2><p>Se você tiver dúvidas sobre esta Política de Privacidade, entre em contato pelo e-mail <a href=\"mailto:leo@leomurca.xyz\">leo@leomurca.xyz</a>.</p>"
|
||||
"content": "<p>No <strong>Embroidery Viewer</strong> (<a href=\"https://embroideryviewer.xyz\">embroideryviewer.xyz</a>), respeitamos sua privacidade e estamos comprometidos em proteger qualquer informação que você compartilhe ao usar nosso serviço.</p><h2>1. Informações Pessoais</h2><p>O Embroidery Viewer <strong>não</strong> coleta nem armazena informações pessoais. Você não precisa criar uma conta e não pedimos seu nome, e-mail ou qualquer dado identificável.</p><h2>2. Envio de Arquivos</h2><p>Quando você envia um arquivo de bordado para o visualizador, o arquivo é processado no seu navegador ou temporariamente em nosso servidor (se necessário) apenas para fins de visualização. <strong>Nenhum arquivo enviado é armazenado, salvo ou compartilhado.</strong></p><p>Evite enviar materiais sensíveis ou protegidos por direitos autorais, a menos que tenha permissão para usá-los.</p><h2>3. Análises</h2><p>Utilizamos o <strong>Umami</strong> para coletar estatísticas anônimas de uso do site, como número de visitantes, visualizações de página, tipos de dispositivo e fontes de acesso. Esses dados nos ajudam a entender como o site está sendo utilizado e melhorá-lo com o tempo.</p><p>O Umami é uma ferramenta de análise que respeita a privacidade, não usa cookies e não rastreia os usuários entre sites. Todos os dados são agregados e anonimizados.</p><h2>4. Cookies</h2><p>O Embroidery Viewer <strong>não</strong> utiliza cookies ou outros mecanismos de rastreamento em seu navegador.</p><h2>5. Serviços de Terceiros</h2><p>Não utilizamos publicidade de terceiros, nem incorporamos rastreadores externos, nem compartilhamos dados com terceiros.</p><h2>6. Alterações nesta Política</h2><p>Podemos atualizar esta Política de Privacidade ocasionalmente. Todas as atualizações serão publicadas nesta página com a data de modificação.</p><h2>7. Contato</h2><p>Se você tiver dúvidas sobre esta Política de Privacidade, entre em contato pelo e-mail <a href=\"mailto:leo@leomurca.xyz\">leo@leomurca.xyz</a>.</p>",
|
||||
"seo.title": "🔐 Política de Privacidade - Embroidery Viewer",
|
||||
"seo.description": "Saiba como o Embroidery Viewer respeita sua privacidade. Nenhum dado pessoal é coletado, arquivos processados localmente ou temporariamente, análises anônimas, sem cookies ou rastreadores.",
|
||||
"seo.keywords": "política de privacidade, proteção de dados, privacidade embroidery viewer, upload de arquivos, análises anônimas, sem cookies, privacidade do usuário, análises que respeitam a privacidade, segurança de dados, embroideryviewer.xyz",
|
||||
"seo.url": "https://embroideryviewer.xyz/privacy-policy",
|
||||
"seo.image": "https://embroideryviewer.xyz/og/privacy-policy.png"
|
||||
}
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
{
|
||||
"title": "📝 Termos de Serviço",
|
||||
"update": "Última atualização: 9 de maio de 2025",
|
||||
"content": "<p>Bem-vindo ao <strong>Embroidery Viewer</strong> (<a href=\"https://embroideryviewer.xyz\">embroideryviewer.xyz</a>). Ao acessar ou utilizar este site, você concorda em estar vinculado aos seguintes Termos de Serviço. Se você não concordar com qualquer parte destes termos, por favor, não utilize o site.</p><h2>1. Descrição do Serviço</h2><p>O Embroidery Viewer é uma ferramenta gratuita baseada em navegador que permite aos usuários visualizar arquivos de design de bordado online. O serviço é destinado ao uso pessoal e não comercial.</p><h2>2. Uso do Serviço</h2><p>Você concorda em usar o serviço apenas para fins legais. Você é o único responsável por qualquer conteúdo (incluindo arquivos de bordado) que enviar, e confirma que tem o direito legal de usar, visualizar e processar esses arquivos.</p><p>Você concorda em não enviar arquivos que sejam ilegais, ofensivos, infrinjam direitos de propriedade intelectual ou contenham código malicioso.</p><h2>3. Processamento de Arquivos</h2><p>Os arquivos enviados para o Embroidery Viewer são processados diretamente em seu navegador ou temporariamente em nossos servidores. Os arquivos não são armazenados permanentemente, compartilhados ou backupados.</p><p>Embora tenhamos o objetivo de manter seu conteúdo seguro, você reconhece que nenhum sistema é 100% seguro e você utiliza o serviço por sua conta e risco.</p><h2>4. Sem Garantia</h2><p>Este serviço é fornecido \"como está\" e \"como disponível\", sem quaisquer garantias, expressas ou implícitas. Não garantimos que o serviço será ininterrupto, seguro ou sem erros.</p><h2>5. Limitação de Responsabilidade</h2><p>O Embroidery Viewer não será responsabilizado por quaisquer danos resultantes do uso ou da impossibilidade de usar o serviço, incluindo, mas não se limitando a, perda de dados, perda de lucros ou outros danos incidentais ou consequenciais.</p><h2>6. Modificações no Serviço</h2><p>Reservamo-nos o direito de modificar, suspender ou descontinuar o serviço a qualquer momento, sem aviso prévio. Podemos também atualizar estes Termos de Serviço de tempos em tempos. O uso contínuo do serviço após as mudanças constitui sua aceitação dos novos termos.</p><h2>7. Lei Aplicável</h2><p>Estes Termos serão regidos e interpretados de acordo com as leis do Brasil, sem levar em consideração seus princípios de conflitos de leis.</p><h2>8. Contato</h2><p>Se você tiver qualquer dúvida sobre estes Termos de Serviço, sinta-se à vontade para entrar em contato conosco pelo e-mail <a href=\"mailto:leo@leomurca.xyz\">leo@leomurca.xyz</a>.</p>"
|
||||
"content": "<p>Bem-vindo ao <strong>Embroidery Viewer</strong> (<a href=\"https://embroideryviewer.xyz\">embroideryviewer.xyz</a>). Ao acessar ou utilizar este site, você concorda em estar vinculado aos seguintes Termos de Serviço. Se você não concordar com qualquer parte destes termos, por favor, não utilize o site.</p><h2>1. Descrição do Serviço</h2><p>O Embroidery Viewer é uma ferramenta gratuita baseada em navegador que permite aos usuários visualizar arquivos de design de bordado online. O serviço é destinado ao uso pessoal e não comercial.</p><h2>2. Uso do Serviço</h2><p>Você concorda em usar o serviço apenas para fins legais. Você é o único responsável por qualquer conteúdo (incluindo arquivos de bordado) que enviar, e confirma que tem o direito legal de usar, visualizar e processar esses arquivos.</p><p>Você concorda em não enviar arquivos que sejam ilegais, ofensivos, infrinjam direitos de propriedade intelectual ou contenham código malicioso.</p><h2>3. Processamento de Arquivos</h2><p>Os arquivos enviados para o Embroidery Viewer são processados diretamente em seu navegador ou temporariamente em nossos servidores. Os arquivos não são armazenados permanentemente, compartilhados ou backupados.</p><p>Embora tenhamos o objetivo de manter seu conteúdo seguro, você reconhece que nenhum sistema é 100% seguro e você utiliza o serviço por sua conta e risco.</p><h2>4. Sem Garantia</h2><p>Este serviço é fornecido \"como está\" e \"como disponível\", sem quaisquer garantias, expressas ou implícitas. Não garantimos que o serviço será ininterrupto, seguro ou sem erros.</p><h2>5. Limitação de Responsabilidade</h2><p>O Embroidery Viewer não será responsabilizado por quaisquer danos resultantes do uso ou da impossibilidade de usar o serviço, incluindo, mas não se limitando a, perda de dados, perda de lucros ou outros danos incidentais ou consequenciais.</p><h2>6. Modificações no Serviço</h2><p>Reservamo-nos o direito de modificar, suspender ou descontinuar o serviço a qualquer momento, sem aviso prévio. Podemos também atualizar estes Termos de Serviço de tempos em tempos. O uso contínuo do serviço após as mudanças constitui sua aceitação dos novos termos.</p><h2>7. Lei Aplicável</h2><p>Estes Termos serão regidos e interpretados de acordo com as leis do Brasil, sem levar em consideração seus princípios de conflitos de leis.</p><h2>8. Contato</h2><p>Se você tiver qualquer dúvida sobre estes Termos de Serviço, sinta-se à vontade para entrar em contato conosco pelo e-mail <a href=\"mailto:leo@leomurca.xyz\">leo@leomurca.xyz</a>.</p>",
|
||||
"seo.title": "📝 Termos de Serviço - Embroidery Viewer",
|
||||
"seo.description": "Leia os Termos de Serviço do Embroidery Viewer. Uso pessoal, regras de upload, processamento de arquivos, isenção de garantias, limitações de responsabilidade e legislação aplicável.",
|
||||
"seo.keywords": "termos de serviço, condições de uso, uso pessoal, upload de arquivos, processamento de arquivos, isenção de garantias, limitações de responsabilidade, legislação brasileira, embroideryviewer.xyz",
|
||||
"seo.url": "https://embroideryviewer.xyz/termos-de-servico",
|
||||
"seo.image": "https://embroideryviewer.xyz/og/termos-de-servico.png"
|
||||
}
|
||||
|
|
|
@ -10,5 +10,10 @@
|
|||
"rejected": "Arquivos recusados",
|
||||
"stitches": "Pontos",
|
||||
"download": "Baixar imagem",
|
||||
"warning.copyright": "Não carregue material protegido por direitos autorais que você não possui ou sobre os quais não tenha direitos."
|
||||
"warning.copyright": "Não carregue material protegido por direitos autorais que você não possui ou sobre os quais não tenha direitos.",
|
||||
"seo.title": "🧵 Visualizador Online Gratuito de Arquivos de Bordado – Rápido, Privado e Sem Cadastro",
|
||||
"seo.description": "Faça upload e visualize seus arquivos de bordado instantaneamente com o Embroidery Viewer. Suporta DST, PES, JEF, EXP, VP3 e muito mais. Sem instalações, sem upload para servidor – 100% baseado no navegador e gratuito.",
|
||||
"seo.keywords": "visualizador de bordado, visualizador online de bordado, pré-visualização de arquivos de bordado, visualizador DST, visualizador PES, ferramenta gratuita de bordado, visualizador JEF, bordado EXP, visualizador VP3, ferramenta de pré-visualização de bordado, renderizador de bordado no navegador, converter bordado para PNG",
|
||||
"seo.url": "https://embroideryviewer.xyz/viewer",
|
||||
"seo.image": "https://embroideryviewer.xyz/og/viewer.png"
|
||||
}
|
||||
|
|
|
@ -5,8 +5,8 @@ export function load() {
|
|||
title: 'home.seo.title',
|
||||
description: 'home.seo.description',
|
||||
keywords: 'home.seo.keywords',
|
||||
url: 'https://embroideryviewer.xyz/about',
|
||||
image: 'https://embroideryviewer.xyz/og/about.jpg',
|
||||
url: 'home.seo.url',
|
||||
image: 'home.seo.image',
|
||||
},
|
||||
};
|
||||
}
|
||||
|
|
12
src/routes/about/+page.js
Normal file
12
src/routes/about/+page.js
Normal file
|
@ -0,0 +1,12 @@
|
|||
/** @type {import('./$types').PageLoad} */
|
||||
export function load() {
|
||||
return {
|
||||
metadata: {
|
||||
title: 'about.seo.title',
|
||||
description: 'about.seo.description',
|
||||
keywords: 'about.seo.keywords',
|
||||
url: 'about.seo.url',
|
||||
image: 'about.seo.image',
|
||||
},
|
||||
};
|
||||
}
|
|
@ -1,7 +1,16 @@
|
|||
<script>
|
||||
import { t } from '$lib/translations';
|
||||
|
||||
import Seo from '$lib/components/Seo.svelte';
|
||||
|
||||
/** @type {import('./$types').PageProps} */
|
||||
let { data } = $props();
|
||||
|
||||
const metadata = data.metadata;
|
||||
</script>
|
||||
|
||||
<Seo {...metadata} />
|
||||
|
||||
<section aria-labelledby="about-heading">
|
||||
<h1 id="about-heading">{$t('about.title')}</h1>
|
||||
|
||||
|
|
12
src/routes/donate/+page.js
Normal file
12
src/routes/donate/+page.js
Normal file
|
@ -0,0 +1,12 @@
|
|||
/** @type {import('./$types').PageLoad} */
|
||||
export function load() {
|
||||
return {
|
||||
metadata: {
|
||||
title: 'donate.seo.title',
|
||||
description: 'donate.seo.description',
|
||||
keywords: 'donate.seo.keywords',
|
||||
url: 'donate.seo.url',
|
||||
image: 'donate.seo.image',
|
||||
},
|
||||
};
|
||||
}
|
|
@ -5,6 +5,13 @@
|
|||
import monero from '$lib/assets/monero.svg';
|
||||
import paypal from '$lib/assets/paypal.svg';
|
||||
|
||||
import Seo from '$lib/components/Seo.svelte';
|
||||
|
||||
/** @type {import('./$types').PageProps} */
|
||||
let { data } = $props();
|
||||
|
||||
const metadata = data.metadata;
|
||||
|
||||
const BTC_ADDRESS = 'bc1qpc4lpyr6stxrrg3u0k4clp4crlt6z4j6q845rq';
|
||||
const XMR_ADDRESS =
|
||||
'8A9iyTskiBh6f6GDUwnUJaYhAW13gNjDYaZYJBftX434D3XLrcGBko4a8kC4pLSfiuJAoSJ7e8rwP8W4StsVypftCp6FGwm';
|
||||
|
@ -31,6 +38,8 @@
|
|||
}
|
||||
</script>
|
||||
|
||||
<Seo {...metadata} />
|
||||
|
||||
<section aria-labelledby="donate-title" class="donate-container">
|
||||
<header>
|
||||
<h1 id="donate-title">{$t('donate.title')}</h1>
|
||||
|
|
12
src/routes/privacy-policy/+page.js
Normal file
12
src/routes/privacy-policy/+page.js
Normal file
|
@ -0,0 +1,12 @@
|
|||
/** @type {import('./$types').PageLoad} */
|
||||
export function load() {
|
||||
return {
|
||||
metadata: {
|
||||
title: 'privacy.policy.seo.title',
|
||||
description: 'privacy.policy.seo.description',
|
||||
keywords: 'privacy.policy.seo.keywords',
|
||||
url: 'privacy.policy.seo.url',
|
||||
image: 'privacy.policy.seo.image',
|
||||
},
|
||||
};
|
||||
}
|
|
@ -1,7 +1,15 @@
|
|||
<script>
|
||||
import { t } from '$lib/translations';
|
||||
import Seo from '$lib/components/Seo.svelte';
|
||||
|
||||
/** @type {import('./$types').PageProps} */
|
||||
let { data } = $props();
|
||||
|
||||
const metadata = data.metadata;
|
||||
</script>
|
||||
|
||||
<Seo {...metadata} />
|
||||
|
||||
<section aria-labelledby="privacy-policy-heading">
|
||||
<h1 id="privacy-policy-heading">{$t('privacy.policy.title')}</h1>
|
||||
<p><em>{$t('privacy.policy.last.update')}</em></p>
|
||||
|
|
41
src/routes/sitemap.xml/+server.js
Normal file
41
src/routes/sitemap.xml/+server.js
Normal file
|
@ -0,0 +1,41 @@
|
|||
export async function GET() {
|
||||
const baseUrl = 'https://embroideryviewer.xyz';
|
||||
|
||||
const pages = [
|
||||
'',
|
||||
'about',
|
||||
'donate',
|
||||
'terms-of-service',
|
||||
'privacy-policy',
|
||||
'viewer',
|
||||
];
|
||||
|
||||
const urls = pages
|
||||
.map(
|
||||
(page) => `
|
||||
<url>
|
||||
<loc>${baseUrl}/${page}</loc>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>`,
|
||||
)
|
||||
.join('');
|
||||
|
||||
const xml = `<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<urlset
|
||||
xmlns="https://www.sitemaps.org/schemas/sitemap/0.9"
|
||||
xmlns:xhtml="https://www.w3.org/1999/xhtml"
|
||||
xmlns:mobile="https://www.google.com/schemas/sitemap-mobile/1.0"
|
||||
xmlns:news="https://www.google.com/schemas/sitemap-news/0.9"
|
||||
xmlns:image="https://www.google.com/schemas/sitemap-image/1.1"
|
||||
xmlns:video="https://www.google.com/schemas/sitemap-video/1.1"
|
||||
>
|
||||
${urls}
|
||||
</urlset>`.trim();
|
||||
|
||||
return new Response(xml, {
|
||||
headers: {
|
||||
'Content-Type': 'application/xml',
|
||||
},
|
||||
});
|
||||
}
|
12
src/routes/terms-of-service/+page.js
Normal file
12
src/routes/terms-of-service/+page.js
Normal file
|
@ -0,0 +1,12 @@
|
|||
/** @type {import('./$types').PageLoad} */
|
||||
export function load() {
|
||||
return {
|
||||
metadata: {
|
||||
title: 'terms.of.service.seo.title',
|
||||
description: 'terms.of.service.seo.description',
|
||||
keywords: 'terms.of.service.seo.keywords',
|
||||
url: 'terms.of.service.seo.url',
|
||||
image: 'terms.of.service.seo.image',
|
||||
},
|
||||
};
|
||||
}
|
|
@ -1,7 +1,15 @@
|
|||
<script>
|
||||
import { t } from '$lib/translations';
|
||||
import Seo from '$lib/components/Seo.svelte';
|
||||
|
||||
/** @type {import('./$types').PageProps} */
|
||||
let { data } = $props();
|
||||
|
||||
const metadata = data.metadata;
|
||||
</script>
|
||||
|
||||
<Seo {...metadata} />
|
||||
|
||||
<section aria-labelledby="tos-heading">
|
||||
<h1 id="tos-heading">{$t('terms.of.service.title')}</h1>
|
||||
<p><em>{$t('terms.of.service.update')}</em></p>
|
||||
|
|
12
src/routes/viewer/+page.js
Normal file
12
src/routes/viewer/+page.js
Normal file
|
@ -0,0 +1,12 @@
|
|||
/** @type {import('./$types').PageLoad} */
|
||||
export function load() {
|
||||
return {
|
||||
metadata: {
|
||||
title: 'viewer.seo.title',
|
||||
description: 'viewer.seo.description',
|
||||
keywords: 'viewer.seo.keywords',
|
||||
url: 'viewer.seo.url',
|
||||
image: 'viewer.seo.image',
|
||||
},
|
||||
};
|
||||
}
|
|
@ -4,16 +4,20 @@
|
|||
import CardList from '$lib/components/CardList.svelte';
|
||||
import Dropzone from '$lib/components/Dropzone.svelte';
|
||||
import FileList from '$lib/components/FileList.svelte';
|
||||
import Seo from '$lib/components/Seo.svelte';
|
||||
|
||||
import { filterFiles } from '$lib/utils/filterFiles';
|
||||
import { supportedFormats } from '$lib/format-readers';
|
||||
|
||||
/** @type {File[] | []} */
|
||||
let acceptedFiles = [];
|
||||
/** @type {File[] | []} */
|
||||
let rejectedFiles = [];
|
||||
|
||||
let areAcceptedFilesRendered = false;
|
||||
/**
|
||||
* @type {File[]}
|
||||
*/
|
||||
let acceptedFiles = $state([]);
|
||||
/**
|
||||
* @type {File[]}
|
||||
*/
|
||||
let rejectedFiles = $state([]);
|
||||
let areAcceptedFilesRendered = $state(false);
|
||||
|
||||
const fileRequirements = {
|
||||
supportedFormats: Object.values(supportedFormats).map((f) => f.ext),
|
||||
|
@ -35,8 +39,8 @@
|
|||
* @param {Event | DragEvent} evt
|
||||
*/
|
||||
function onChange(evt) {
|
||||
acceptedFiles = null;
|
||||
rejectedFiles = null;
|
||||
acceptedFiles = [];
|
||||
rejectedFiles = [];
|
||||
areAcceptedFilesRendered = false;
|
||||
|
||||
const changedFiles =
|
||||
|
@ -65,8 +69,15 @@
|
|||
if (el) el.click();
|
||||
}
|
||||
}
|
||||
|
||||
/** @type {import('./$types').PageProps} */
|
||||
let { data } = $props();
|
||||
|
||||
const metadata = data.metadata;
|
||||
</script>
|
||||
|
||||
<Seo {...metadata} />
|
||||
|
||||
<form
|
||||
id="form"
|
||||
enctype="multipart/form-data"
|
||||
|
|
2
static/robots.txt
Normal file
2
static/robots.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
User-agent: *
|
||||
Sitemap: https://www.embroideryviewer.xyz/sitemap.xml
|
Loading…
Add table
Reference in a new issue