|
1 | | -# Palmr. |
| 1 | +# 🌴 Palmr. - Open-Source File Transfer |
2 | 2 |
|
3 | | -Com a visão de simplificar a execução do projeto e permitir que ele seja executado em qualquer máquina, foi criado um script de inicialização para o docker compose.é necessário ter o docker e docker compose instalados para executar o projeto da maneira que vamos propor a seguir. Essa é a maneira mais simplificada de executar o projeto, porém não é a maneira recomendada para o modo de produção. |
| 3 | +<p align="center"> |
| 4 | + <img src="https://github.com/user-attachments/assets/dc2a105a-e66b-4db5-b56c-87d872a1edf8" alt="Palmr Logo" style="width: 100%;"> |
| 5 | +</p> |
4 | 6 |
|
5 | | -Temos duas maneiras de executar esse script, a primeira delas é executando o script via make file, e a segunda é executando o script diretamente. |
6 | | -Para executar via Make file, basta executar o comando abaixo: |
| 7 | +**Palmr.** is a **flexible** and **open-source** alternative to file transfer services like **WeTransfer**, **SendGB**, **Send Anywhere**, and **Files.fm**. |
7 | 8 |
|
8 | | -make gen-compose |
9 | 9 |
|
10 | | -Esse comando irá gerar o arquivo docker-compose.yml na raiz do projeto. Ele tem a principal funcionalidade de gerar senhas seguras para nosso Minio e Postgres. que são nossos object storage e banco de dados respectivamente. |
| 10 | +🔗 **For detailed documentation visit:** [Palmr. - Documentation](https://palmr-docs.kyantech.com.br) |
11 | 11 |
|
12 | | -O compose gerado é uma base e pode ser modificado a qualquer momento por você. Vale lembrar que ele é escrito para executar em seu ambiente local via localhost e não para produção ou ambientes de VPS. Mas o mesmo após gerado pode ser modificado e/ou desmembrado para ser hospedado em qualquer lugar |
| 12 | +## 📌 Why Choose Palmr.? |
13 | 13 |
|
14 | | -A segunda maneira de executar o script é executando o comando abaixo: |
| 14 | +- **Self-hosted** – Deploy on your own server or VPS. |
| 15 | +- **Full control** – No third-party dependencies, ensuring privacy and security. |
| 16 | +- **No artificial limits** – Share files without hidden restrictions or fees. |
15 | 17 |
|
16 | | -chmod +x ./scripts/generate-docker-compose.sh |
17 | | -./scripts/generate-docker-compose.sh |
| 18 | +## 🚀 Technologies Used |
18 | 19 |
|
19 | | -esse conjunto de comandos surgem com o mesmo efeito do make gen-compose. |
| 20 | +### **Palmr.** is built with a focus on **performance**, **scalability**, and **security**. |
20 | 21 |
|
21 | | -para executar o projeto após gerar o seu docker-compose.yaml basta executar o comando abaixo na raiz do projeto: |
| 22 | +<div align="center"> |
| 23 | + <img src="https://i.ibb.co/3Y8bhm7v/Captura-de-Tela-2025-04-03-s-10-56-12.png" style="width: 100%; border-radius: 15px;" /> |
| 24 | +</div> |
22 | 25 |
|
23 | | -docker compose up -d |
24 | 26 |
|
25 | | -e para acessar o palmr, em ambnte local basta acessar http://localhost:4173 |
| 27 | +### **Backend & API** |
| 28 | +- **Fastify (Node.js)** – High-performance API framework with built-in schema validation. |
| 29 | +- **PostgreSQL** – Reliable, secure, and scalable database solution. |
| 30 | +- **MinIO (Object Storage)** – AWS S3-compatible storage for high availability. |
26 | 31 |
|
27 | | -Para rodar em ambiente de produção, recomendamos utilizar Kubernetes, Docker Swarm ou algum orquestrador de containers similar. Para rodar localmente em sua máquina ou em algum ambiente de testes, você pode utilizar o Docker Compose com o arquivo docker-compose.yaml, que busca as imagens mais recentes do Palmr no Docker e as disponibiliza em algumas portas específicas, sendo elas: |
| 32 | +### **Frontend** |
| 33 | +- **React + TypeScript + Vite** – Modern, interactive, and fast web interface. |
28 | 34 |
|
29 | | -* Frontend: http://localhost:4173 |
30 | | -* Backend: http://localhost:3333 |
31 | | -* MinIO API: http://localhost:9000 |
32 | | -* MinIO Painel: http://localhost:9001 |
33 | | -* Database Postgres: http://localhost:5423 |
34 | 35 |
|
35 | | -Recomendamos que, nesta versão do docker-compose.yaml, nenhuma das portas de funcionamento do frontend e backend seja alterada. Consequentemente, nenhuma das URLs deve ser modificada, pois a imagem do frontend contém uma versão buildada configurada para funcionar na porta 4173, e, por motivos técnicos relacionados ao ReactJS, variáveis de ambiente que são executadas em runtime não podem ser alteradas. Por esse motivo, para garantir o bom funcionamento do sistema como foi planejado, mantenha o docker-compose.yaml inalterado. |
| 36 | +## 🛠️ How It Works |
36 | 37 |
|
37 | | -Caso queira fazer alterações nas portas em ambiente local e executar o projeto via Docker com Docker Compose, recomendamos o uso do arquivo docker-compose-dev.yaml, que faz a build com base nos arquivos do repositório clonado. No entanto, certifique-se de fazer todas as configurações corretas de portas e URLs, pois, caso contrário, o Palmr não irá funcionar como planejado para ser executado. |
| 38 | +1. **Web Interface** → Built with React, TypeScript, and Vite for a seamless user experience. |
| 39 | +2. **Backend API** → Fastify handles requests and interacts with storage. |
| 40 | +3. **Database** → PostgreSQL stores metadata and transactional data. |
| 41 | +4. **Storage** → MinIO ensures reliable file storage and retrieval. |
38 | 42 |
|
39 | | -Não recomendamos de maneira alguma o uso do docker-compose.yaml para ambientes produtivos ou em VPS, pois a tecnologia Docker Compose foi pensada para ambientes de desenvolvimento. |
40 | | -O que mais recomendamos para produção é o uso de Kubernetes, que deve ser configurado manualmente, pois o repositório não contém um modelo pronto para essa configuração. Outra maneira de colocar o software em ambiente produtivo é utilizando serviços separados, como, por exemplo: |
41 | 43 |
|
42 | | -* Hospedar o frontend na Vercel ou AWS Amplify. |
43 | | -* Hospedar o backend na Render.com ou serviços similares. |
44 | | -* Subir o MinIO separadamente em um servidor via Docker ou utilizar um serviço compatível com S3. |
45 | | -* Hospedar o banco de dados em um serviço como o Neon.tech. |
| 44 | +## 👨💻 Core Maintainers |
46 | 45 |
|
47 | | -O código é totalmente aberto, e você pode escolher a melhor maneira para fazer o deploy, mas atente-se às variáveis de ambiente (environment variables). A ideia de termos um docker-compose.yaml é apenas para facilitar o uso, a execução e os testes. |
| 46 | +| **Daniel Luiz Alves** | |
| 47 | +|------------------| |
| 48 | +| <img src="https://github.com/danielalves96.png" width="150px" alt="Daniel Luiz Alves" /> | |
48 | 49 |
|
| 50 | +</br> |
49 | 51 |
|
50 | | -na pasta composes temos a versão que usa o código local ao invés de buscar nossas imagens no docker hub. |
| 52 | +## ⭐ Star History |
51 | 53 |
|
52 | | -para executar essa versão, na raiz do projeto voce pode executar: |
| 54 | + <a href="https://www.star-history.com/#kyantech/Palmr&Date"> |
| 55 | + <picture> |
| 56 | + <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=kyantech/Palmr&type=Date&theme=dark" /> |
| 57 | + <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=kyantech/Palmr&type=Date" /> |
| 58 | + <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=kyantech/Palmr&type=Date" /> |
| 59 | + </picture> |
| 60 | + </a> |
53 | 61 |
|
54 | | -cp ./composes/docker-compose-local.yaml ./docker-compose.yaml |
| 62 | +## 🛠️ Contributing |
55 | 63 |
|
56 | | -e executar docker compose up -d |
| 64 | +For contribution guidelines, please refer to the [CONTRIBUTING.md](CONTRIBUTING.md) file. |
0 commit comments