chore: update environment variable configurations and documentation

- Updated docker-compose files to provide clearer environment variable options for S3 and filesystem encryption.
- Removed default values for ENABLE_S3 and DISABLE_FILESYSTEM_ENCRYPTION in favor of commented guidance for user customization.
- Incremented version numbers to 3.1.6-beta across all relevant package.json files.
- Enhanced documentation to reflect changes in configuration and deployment instructions, including UID/GID handling and storage options.
This commit is contained in:
Daniel Luiz Alves
2025-07-22 18:53:54 -03:00
parent 32f0a891ba
commit 6014b3e961
10 changed files with 230 additions and 207 deletions

View File

@@ -30,8 +30,6 @@ services:
```bash ```bash
docker run -d \ docker run -d \
--name palmr \ --name palmr \
-e ENABLE_S3=false \
-e DISABLE_FILESYSTEM_ENCRYPTION=true \
-p 5487:5487 \ -p 5487:5487 \
-p 3333:3333 \ -p 3333:3333 \
-v palmr_data:/app/server \ -v palmr_data:/app/server \

View File

@@ -3,224 +3,250 @@ title: Quick Start (Docker)
icon: "Rocket" icon: "Rocket"
--- ---
import { Callout } from "fumadocs-ui/components/callout";
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
import { Card, CardGrid } from "@/components/ui/card";
Welcome to the fastest way to deploy <span className="font-bold">Palmr.</span> - your secure, self-hosted file sharing solution. This guide will have you up and running in minutes, whether you're new to self-hosting or an experienced developer. Welcome to the fastest way to deploy <span className="font-bold">Palmr.</span> - your secure, self-hosted file sharing solution. This guide will have you up and running in minutes, whether you're new to self-hosting or an experienced developer.
Palmr. offers flexible deployment options to match your infrastructure needs. This guide focuses on Docker deployment with our recommended filesystem storage, perfect for most use cases. Palmr. offers flexible deployment options to match your infrastructure needs. This guide focuses on Docker deployment with our recommended filesystem storage, perfect for most use cases.
## Prerequisites ## Prerequisites
Ensure you have the following installed on your system: Before you begin, make sure you have:
- **Docker** - Container runtime ([installation guide](https://docs.docker.com/get-docker/)) - **Docker** - Container runtime ([installation guide](https://docs.docker.com/get-docker/))
- **Docker Compose** - Multi-container orchestration ([installation guide](https://docs.docker.com/compose/install/)) - **Docker Compose** - Multi-container orchestration ([installation guide](https://docs.docker.com/compose/install/))
- **2GB+ available disk space** for the application and your files
- **Port 5487** available for the web interface
- **Port 3333** available for API access (optional)
> **Platform Support**: Palmr. is developed on macOS and extensively tested on Linux servers. While we haven't formally tested other platforms, Docker's cross-platform nature should ensure compatibility. Report any issues on our [GitHub repository](https://github.com/kyantech/Palmr/issues). <Callout>
**Platform Support**: Palmr. is developed on macOS and extensively tested on Linux servers. While we haven't formally
tested other platforms, Docker's cross-platform nature should ensure compatibility. Report any issues on our [GitHub
repository](https://github.com/kyantech/Palmr/issues).
</Callout>
## Storage Options ## Storage Options
Palmr. supports two storage approaches for persistent data: Palmr. supports two storage approaches for persistent data:
### Named Volumes (Recommended) - **Named Volumes (Recommended)** - Docker-managed storage with optimal performance and no permission issues
- **Bind Mounts** - Direct host filesystem access, ideal for development and direct file management
**Best for**: Production environments, automated deployments ## Deployment Options
- ✅ **Managed by Docker**: No permission issues or manual path management Choose your storage method based on your needs:
- ✅ **Optimized Performance**: Docker-native storage optimization
- ✅ **Cross-platform**: Consistent behavior across operating systems
- ✅ **Simplified Backups**: Docker volume commands for backup/restore
### Bind Mounts <Tabs items={['Named Volumes (Recommended)', 'Bind Mounts']}>
<Tab value="Named Volumes (Recommended)">
Docker-managed storage that provides the best balance of performance, security, and ease of use:
**Best for**: Development, direct file access requirements - **No Permission Issues**: Docker handles all permission management automatically
- **Performance**: Optimized for container workloads with better I/O performance
- **Production Ready**: Recommended for production deployments
- ✅ **Direct Access**: Files stored in local directory you specify ### Configuration
- ✅ **Transparent Storage**: Direct filesystem access from host
- ✅ **Custom Backup**: Use existing file system backup solutions
- ⚠️ **Permission Considerations**: **Common Issue** - Requires UID/GID configuration (see troubleshooting below)
--- Create a `docker-compose.yml` file:
## Option 1: Named Volumes (Recommended) ```yaml
services:
palmr:
image: kyantech/palmr:latest
container_name: palmr
restart: unless-stopped
ports:
- "5487:5487" # Web interface
# - "3333:3333" # API (optional)
environment:
# Optional: Uncomment and configure as needed (if you don`t use, you can remove)
# - ENABLE_S3=true # Set to true to enable S3-compatible storage
# - DISABLE_FILESYSTEM_ENCRYPTION=true # Set to false to enable file encryption
# - ENCRYPTION_KEY=your-secure-key-min-32-chars # Required only if encryption is enabled
# - PALMR_UID=1000 # UID for the container processes (default is 1000)
# - PALMR_GID=1000 # GID for the container processes (default is 1000)
# - SECURE_SITE=false # Set to true if you are using a reverse proxy
# - DEFAULT_LANGUAGE=en-US # Default language for the application (optional, defaults to en-US)
volumes:
- palmr_data:/app/server
Named volumes provide the best performance and are managed entirely by Docker.
### Configuration
Use the provided `docker-compose.yaml` for named volumes:
```yaml
services:
palmr:
image: kyantech/palmr:latest
container_name: palmr
environment:
- ENABLE_S3=false
- DISABLE_FILESYSTEM_ENCRYPTION=true # Set to false to enable file encryption (ENCRYPTION_KEY becomes required)
# - ENCRYPTION_KEY=change-this-key-in-production-min-32-chars # CHANGE THIS KEY FOR SECURITY (REQUIRED if DISABLE_FILESYSTEM_ENCRYPTION is false)
# - SECURE_SITE=false # Set to true if you are using a reverse proxy
# - DEFAULT_LANGUAGE=en-US # Default language for the application (optional, defaults to en-US)
ports:
- "5487:5487" # Web interface
- "3333:3333" # API port (OPTIONAL EXPOSED - ONLY IF YOU WANT TO ACCESS THE API DIRECTLY)
volumes: volumes:
- palmr_data:/app/server # Named volume for the application data palmr_data:
restart: unless-stopped # Restart the container unless it is stopped ```
volumes: <Callout type="info">
palmr_data: **Having upload or permission issues?** Add `PALMR_UID=1000` and `PALMR_GID=1000` to your environment variables. Check our [UID/GID Configuration](/docs/3.1-beta/uid-gid-configuration) guide for more details.
``` </Callout>
> **Note:** If you haveing problem with uploading files, try to change the `PALMR_UID` and `PALMR_GID` to the UID and GID of the user running the container. You can find the UID and GID of the user running the container with the command `id -u` and `id -g`. in Linux systems the default user is `1000` and the default group is `1000`. For test you can add the environment variables below to the `docker-compose.yaml` file and restart the container. ### Deploy
```yaml ```bash
environment: docker-compose up -d
- PALMR_UID=1000 # UID for the container processes (default is 1000) ```
- PALMR_GID=1000 # GID for the container processes (default is 1000)
```
> **Note:** For more information about UID and GID, see our [UID/GID Configuration](/docs/3.1-beta/uid-gid-configuration) guide. </Tab>
<Tab value="Bind Mounts">
Direct mapping to host filesystem directories, providing direct file access:
### Deployment - **Direct Access**: Files are directly accessible from your host system
- **Development Friendly**: Easy to inspect, modify, or backup files manually
- **Platform Dependent**: May require UID/GID configuration, especially on NAS systems
```bash ### Configuration
docker-compose up -d
```
--- Create a `docker-compose.yml` file:
## Option 2: Bind Mounts ```yaml
services:
palmr:
image: kyantech/palmr:latest
container_name: palmr
restart: unless-stopped
ports:
- "5487:5487" # Web interface
# - "3333:3333" # API (optional)
environment:
# Optional: Uncomment and configure as needed (if you don`t use, you can remove)
# - ENABLE_S3=true # Set to true to enable S3-compatible storage
# - DISABLE_FILESYSTEM_ENCRYPTION=false # Set to false to enable file encryption
# - ENCRYPTION_KEY=your-secure-key-min-32-chars # Required only if encryption is enabled
# - PALMR_UID=1000 # UID for the container processes (default is 1000)
# - PALMR_GID=1000 # GID for the container processes (default is 1000)
# - SECURE_SITE=false # Set to true if you are using a reverse proxy
# - DEFAULT_LANGUAGE=en-US # Default language for the application (optional, defaults to en-US)
volumes:
- ./data:/app/server
```
Bind mounts store data in a local directory, providing direct file system access. <Callout type="info">
**Having upload or permission issues?** Add `PALMR_UID=1000` and `PALMR_GID=1000` to your environment variables. Check our [UID/GID Configuration](/docs/3.1-beta/uid-gid-configuration) guide for more details.
</Callout>
### Configuration ### Deploy
To use bind mounts, **replace the content** of your `docker-compose.yaml` with the following configuration (you can also reference `docker-compose-bind-mount-example.yaml` as a template): ```bash
docker-compose up -d
```
```yaml </Tab>
services: </Tabs>
palmr:
image: kyantech/palmr:latest
container_name: palmr
environment:
- ENABLE_S3=false
- DISABLE_FILESYSTEM_ENCRYPTION=true # Set to false to enable file encryption (ENCRYPTION_KEY becomes required)
# - ENCRYPTION_KEY=change-this-key-in-production-min-32-chars # CHANGE THIS KEY FOR SECURITY (REQUIRED if DISABLE_FILESYSTEM_ENCRYPTION is false)
# - PALMR_UID=1000 # UID for the container processes (default is 1000)
# - PALMR_GID=1000 # GID for the container processes (default is 1000)
# - SECURE_SITE=false # Set to true if you are using a reverse proxy
# - DEFAULT_LANGUAGE=en-US # Default language for the application (optional, defaults to en-US)
ports:
- "5487:5487" # Web port
- "3333:3333" # API port (OPTIONAL EXPOSED - ONLY IF YOU WANT TO ACCESS THE API DIRECTLY)
volumes:
# Bind mount for persistent data (uploads, database, temp files)
- ./data:/app/server # Local directory for the application data
restart: unless-stopped # Restart the container unless it is stopped
```
### Deployment ## Configuration
```bash Customize Palmr's behavior with these environment variables:
docker-compose up -d
```
> **Permission Configuration**: If you encounter permission issues with bind mounts (common on NAS systems), see our [UID/GID Configuration](/docs/3.1-beta/uid-gid-configuration) guide for automatic permission handling. | Variable | Default | Description |
| ------------------------------- | ------- | -------------------------------------------------------------------------------------------- |
| `ENABLE_S3` | `false` | Enable S3-compatible storage backends |
| `ENCRYPTION_KEY` | - | **Required when encryption is enabled**: 32+ character key for file encryption |
| `DISABLE_FILESYSTEM_ENCRYPTION` | `true` | Disable file encryption for better performance (set to `false` to enable encryption) |
| `SECURE_SITE` | `false` | Enable secure cookies for HTTPS/reverse proxy deployments |
| `DEFAULT_LANGUAGE` | `en-US` | Default application language ([see available languages](/docs/3.1-beta/available-languages)) |
| `PALMR_UID` | `1000` | User ID for container processes (helps with file permissions) |
| `PALMR_GID` | `1000` | Group ID for container processes (helps with file permissions) |
--- <Callout type="info">
**Performance First**: Palmr runs without encryption by default for optimal speed and lower resource usage—perfect for
most use cases.
</Callout>
## Environment Variables <Callout type="warn">
**Encryption Notice**: To enable encryption, set `DISABLE_FILESYSTEM_ENCRYPTION=false` and provide a 32+ character
`ENCRYPTION_KEY`. **Important**: This choice is permanent—switching encryption modes after uploading files will break
access to existing uploads.
</Callout>
Configure Palmr. behavior through environment variables: <Callout>
**Using a Reverse Proxy?** Set `SECURE_SITE=true` and check our [Reverse Proxy
Configuration](/docs/3.1-beta/reverse-proxy-configuration) guide for proper HTTPS setup.
</Callout>
| Variable | Default | Description | ### Generate Encryption Keys (Optional)
| ------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------- |
| `ENABLE_S3` | `false` | Enable S3-compatible storage |
| `ENCRYPTION_KEY` | - | **Required** (when encryption enabled): Minimum 32 characters for file encryption |
| `DISABLE_FILESYSTEM_ENCRYPTION` | `true` | Disable file encryption for direct filesystem access (set to false to enable encryption) |
| `SECURE_SITE` | `false` | Enable secure cookies for HTTPS/reverse proxy setups |
| `DEFAULT_LANGUAGE` | `en-US` | Set the default application language (see supported languages in docs [here](/docs/3.1-beta/available-languages)) |
| `PALMR_UID` | `1000` | Set the UID for the container processes (OPTIONAL - default is 1000) |
| `PALMR_GID` | `1000` | Set the GID for the container processes (OPTIONAL - default is 1000) |
> **🚀 Performance Optimized**: By default, Palmr stores files without encryption for optimal performance. This provides faster uploads/downloads and lower CPU usage, perfect for most use cases. Need file encryption? Generate a secure key:
> **🔐 Optional Encryption**: To enable file encryption, set `DISABLE_FILESYSTEM_ENCRYPTION=false` and provide an `ENCRYPTION_KEY` (minimum 32 characters). **Important**: Once you choose encryption or no encryption, this configuration is permanent for your deployment. Switching modes will break file access for existing uploads. Choose your strategy before uploading files. For more details on performance implications of encryption, see [Performance Considerations with Encryption](/docs/3.1-beta/architecture#performance-considerations-with-encryption).
> **🔗 Reverse Proxy**: If deploying behind a reverse proxy (Traefik, Nginx, etc.), set `SECURE_SITE=true` and review our [Reverse Proxy Configuration](/docs/3.1-beta/reverse-proxy-configuration) guide for proper setup.
### Generate Secure Encryption Keys (Optional)
Want to enable file encryption? Use our built-in generator to create cryptographically secure keys:
<KeyGenerator /> <KeyGenerator />
> **💡 Pro Tip**: By default, Palmr runs without encryption for optimal performance. If you need encryption for sensitive data, set `DISABLE_FILESYSTEM_ENCRYPTION=false` and use the generated key above as your `ENCRYPTION_KEY`. > **Pro Tip**: Only enable encryption if you're handling sensitive data. For most users, the default unencrypted mode provides better performance.
--- ## Access Your Instance
## Accessing Palmr. Once deployed, open Palmr in your browser:
Once deployed, access Palmr. through your web browser: - **Web Interface**: `http://localhost:5487` (local) or `http://YOUR_SERVER_IP:5487` (remote)
- **API Documentation**: `http://localhost:3333/docs` (if port 3333 is exposed)
- **Local**: `http://localhost:5487` <Callout type="info">
- **Server**: `http://YOUR_SERVER_IP:5487` **Learn More**: For complete API documentation, authentication, and integration examples, see our [API
Reference](/docs/3.1-beta/api) guide
</Callout>
### API Access (Optional) <Callout type="warn">
**Production Ready?** Configure HTTPS with a valid SSL certificate for secure production deployments.
If you exposed port 3333 in your configuration, you can also access: </Callout>
- **API Documentation**: `http://localhost:3333/docs` (local) or `http://YOUR_SERVER_IP:3333/docs` (server)
- **API Endpoints**: Available at `http://localhost:3333` (local) or `http://YOUR_SERVER_IP:3333` (server)
> **📚 Learn More**: For complete API documentation, authentication, and integration examples, see our [API Reference](/docs/3.1-beta/api) guide.
> **💡 Production Tip**: For production deployments, configure HTTPS with a valid SSL certificate for enhanced security.
--- ---
## Docker CLI Alternative ## Docker CLI Alternative
Prefer using Docker directly? Both storage options are supported: Prefer Docker commands over Compose? Here are the equivalent commands:
**Named Volume:** <Tabs items={["Named Volume", "Bind Mount"]}>
<Tab value="Named Volume">
```bash ```bash
docker run -d \ docker run -d \
--name palmr \ --name palmr \
-e ENABLE_S3=false \ # Optional: Uncomment and configure as needed (if you don`t use, you can remove)
# -e ENCRYPTION_KEY=your-secure-key-min-32-chars # Required only if encryption is enabled # -e ENABLE_S3=true \ # Set to true to enable S3-compatible storage (OPTIONAL - default is false)
# -e PALMR_UID=1000 # UID for the container processes (default is 1000) # -e DISABLE_FILESYSTEM_ENCRYPTION=false \ # Set to false to enable file encryption (ENCRYPTION_KEY becomes required) | (OPTIONAL - default is true)
# -e PALMR_GID=1000 # GID for the container processes (default is 1000) # -e ENCRYPTION_KEY=your-secure-key-min-32-chars # Required only if encryption is enabled
-e DISABLE_FILESYSTEM_ENCRYPTION=true # Set to false to enable file encryption # -e PALMR_UID=1000 # UID for the container processes (default is 1000)
# -e SECURE_SITE=false # Set to true if you are using a reverse proxy # -e PALMR_GID=1000 # GID for the container processes (default is 1000)
# -e DEFAULT_LANGUAGE=en-US # Default language for the application (optional, defaults to en-US) # -e SECURE_SITE=false # Set to true if you are using a reverse proxy
-p 5487:5487 \ # -e DEFAULT_LANGUAGE=en-US # Default language for the application (optional, defaults to en-US)
-p 3333:3333 \ -p 5487:5487 \
-v palmr_data:/app/server \ -p 3333:3333 \
--restart unless-stopped \ -v palmr_data:/app/server \
kyantech/palmr:latest --restart unless-stopped \
``` kyantech/palmr:latest
```
> **Permission Configuration**: If you encounter permission issues with bind mounts (common on NAS systems), see our [UID/GID Configuration](/docs/3.1-beta/uid-gid-configuration) guide for automatic permission handling.
**Bind Mount:** <Callout type="info">
**Permission Issues?** Add `-e PALMR_UID=1000 -e PALMR_GID=1000` to the command above. See our [UID/GID Configuration](/docs/3.1-beta/uid-gid-configuration) guide for details.
</Callout>
```bash </Tab>
docker run -d \
--name palmr \ <Tab value="Bind Mount">
-e ENABLE_S3=false \
# -e ENCRYPTION_KEY=your-secure-key-min-32-chars # Required only if encryption is enabled ```bash
# -e PALMR_UID=1000 # UID for the container processes (default is 1000) docker run -d \
# -e PALMR_GID=1000 # GID for the container processes (default is 1000) --name palmr \
-e DISABLE_FILESYSTEM_ENCRYPTION=true # Set to false to enable file encryption # Optional: Uncomment and configure as needed (if you don`t use, you can remove)
# -e SECURE_SITE=false # Set to true if you are using a reverse proxy # -e ENABLE_S3=true \ # Set to true to enable S3-compatible storage (OPTIONAL - default is false)
# -e DEFAULT_LANGUAGE=en-US # Default language for the application (optional, defaults to en-US) # -e DISABLE_FILESYSTEM_ENCRYPTION=true \ # Set to false to enable file encryption (ENCRYPTION_KEY becomes required) | (OPTIONAL - default is true)
-p 5487:5487 \ # -e ENCRYPTION_KEY=your-secure-key-min-32-chars # Required only if encryption is enabled
-p 3333:3333 \ # -e PALMR_UID=1000 # UID for the container processes (default is 1000)
-v $(pwd)/data:/app/server \ # -e PALMR_GID=1000 # GID for the container processes (default is 1000)
--restart unless-stopped \ # -e SECURE_SITE=false # Set to true if you are using a reverse proxy
kyantech/palmr:latest # -e DEFAULT_LANGUAGE=en-US # Default language for the application (optional, defaults to en-US)
``` -p 5487:5487 \
-p 3333:3333 \
-v $(pwd)/data:/app/server \
--restart unless-stopped \
kyantech/palmr:latest
```
<Callout type="info">
**Permission Issues?** Add `-e PALMR_UID=1000 -e PALMR_GID=1000` to the command above. See our [UID/GID Configuration](/docs/3.1-beta/uid-gid-configuration) guide for details.
</Callout>
</Tab>
</Tabs>
--- ---
@@ -228,52 +254,50 @@ docker run -d \
### Updates ### Updates
Keep Palmr. current with the latest features and security fixes: Keep Palmr up to date with the latest features and security patches:
```bash ```bash
docker-compose pull docker-compose pull
docker-compose up -d docker-compose up -d
``` ```
### Backup & Restore ### Backup Your Data
The backup method depends on which storage option you're using: **Named Volumes:**
**Named Volume Backup:**
```bash ```bash
docker run --rm \ docker run --rm -v palmr_data:/data -v $(pwd):/backup alpine tar czf /backup/palmr-backup.tar.gz -C /data .
-v palmr_data:/data \
-v $(pwd):/backup \
alpine tar czf /backup/palmr-backup.tar.gz -C /data .
``` ```
**Named Volume Restore:** **Bind Mounts:**
```bash
docker run --rm \
-v palmr_data:/data \
-v $(pwd):/backup \
alpine tar xzf /backup/palmr-backup.tar.gz -C /data
```
**Bind Mount Backup:**
```bash ```bash
tar czf palmr-backup.tar.gz ./data tar czf palmr-backup.tar.gz ./data
``` ```
**Bind Mount Restore:** ### Restore From Backup
**Named Volumes:**
```bash ```bash
docker-compose down
docker run --rm -v palmr_data:/data -v $(pwd):/backup alpine tar xzf /backup/palmr-backup.tar.gz -C /data
docker-compose up -d
```
**Bind Mounts:**
```bash
docker-compose down
tar xzf palmr-backup.tar.gz tar xzf palmr-backup.tar.gz
docker-compose up -d
``` ```
--- ---
## Next Steps ## What's Next?
Your Palmr. instance is now ready! Explore additional configuration options: Your Palmr instance is ready! Here's what you can explore:
### Advanced Configuration ### Advanced Configuration
@@ -284,8 +308,11 @@ Your Palmr. instance is now ready! Explore additional configuration options:
### Integration & Development ### Integration & Development
- **[API Reference](/docs/3.1-beta/api)** - Integrate Palmr. with your applications - **[API Reference](/docs/3.1-beta/api)** - Integrate Palmr. with your applications
- **[Architecture Guide](/docs/3.1-beta/architecture)** - Understanding Palmr. components and design
<Callout type="info">
**Need help?** Check our [Troubleshooting Guide](/docs/3.1-beta/troubleshooting) for common issues and solutions.
</Callout>
--- ---
Need help? Visit our [GitHub Issues](https://github.com/kyantech/Palmr/issues) or community discussions. **Questions?** Visit our [GitHub Issues](https://github.com/kyantech/Palmr/issues) or join the community discussions.

View File

@@ -45,9 +45,6 @@ services:
image: kyantech/palmr:latest image: kyantech/palmr:latest
container_name: palmr container_name: palmr
environment: environment:
- ENABLE_S3=false
# - ENCRYPTION_KEY=your-secure-key-min-32-chars # Required only if encryption is enabled
- DISABLE_FILESYSTEM_ENCRYPTION=true # Set to false to enable file encryption
- PALMR_UID=1000 - PALMR_UID=1000
- PALMR_GID=1000 - PALMR_GID=1000
ports: ports:
@@ -105,11 +102,8 @@ services:
image: kyantech/palmr:latest image: kyantech/palmr:latest
container_name: palmr container_name: palmr
environment: environment:
- ENABLE_S3=false
- DISABLE_FILESYSTEM_ENCRYPTION=true # Set to false to enable file encryption
- PALMR_UID=1000 - PALMR_UID=1000
- PALMR_GID=1000 - PALMR_GID=1000
# - ENCRYPTION_KEY=your-secure-key-min-32-chars # Required only if encryption is enabled
ports: ports:
- "5487:5487" - "5487:5487"
volumes: volumes:
@@ -125,11 +119,8 @@ services:
image: kyantech/palmr:latest image: kyantech/palmr:latest
container_name: palmr container_name: palmr
environment: environment:
- ENABLE_S3=false
- DISABLE_FILESYSTEM_ENCRYPTION=true # Set to false to enable file encryption
- PALMR_UID=1026 - PALMR_UID=1026
- PALMR_GID=100 - PALMR_GID=100
# - ENCRYPTION_KEY=your-secure-key-min-32-chars # Required only if encryption is enabled
ports: ports:
- "5487:5487" - "5487:5487"
volumes: volumes:
@@ -145,11 +136,8 @@ services:
image: kyantech/palmr:latest image: kyantech/palmr:latest
container_name: palmr container_name: palmr
environment: environment:
- ENABLE_S3=false
- DISABLE_FILESYSTEM_ENCRYPTION=true # Set to false to enable file encryption
- PALMR_UID=1000 - PALMR_UID=1000
- PALMR_GID=100 - PALMR_GID=100
# - ENCRYPTION_KEY=your-secure-key-min-32-chars # Required only if encryption is enabled
ports: ports:
- "5487:5487" - "5487:5487"
volumes: volumes:

View File

@@ -1,6 +1,6 @@
{ {
"name": "palmr-docs", "name": "palmr-docs",
"version": "3.1.5-beta", "version": "3.1.6-beta",
"description": "Docs for Palmr", "description": "Docs for Palmr",
"private": true, "private": true,
"author": "Daniel Luiz Alves <daniel@kyantech.com.br>", "author": "Daniel Luiz Alves <daniel@kyantech.com.br>",

View File

@@ -5,14 +5,15 @@ import { cn } from "@/lib/utils";
interface CardProps { interface CardProps {
title: string; title: string;
description: string; description?: string;
href?: string; href?: string;
icon?: ReactNode; icon?: ReactNode;
className?: string; className?: string;
onClick?: () => void; onClick?: () => void;
children?: ReactNode;
} }
export const Card = ({ title, description, href, icon, className, onClick }: CardProps) => { export const Card = ({ title, description, href, icon, className, onClick, children }: CardProps) => {
const cardContent = ( const cardContent = (
<div <div
className={cn( className={cn(
@@ -37,9 +38,16 @@ export const Card = ({ title, description, href, icon, className, onClick }: Car
<h3 className="font-medium text-sm text-foreground mb-1 group-hover:text-primary transition-colors duration-200 mt-3 text-decoration-none"> <h3 className="font-medium text-sm text-foreground mb-1 group-hover:text-primary transition-colors duration-200 mt-3 text-decoration-none">
{title} {title}
</h3> </h3>
<p className="text-xs text-muted-foreground/80 leading-relaxed line-clamp-2 group-hover:text-muted-foreground transition-colors duration-200"> {description && (
{description} <p className="text-xs text-muted-foreground/80 leading-relaxed line-clamp-2 group-hover:text-muted-foreground transition-colors duration-200">
</p> {description}
</p>
)}
{children && (
<div className="text-xs text-muted-foreground/80 leading-relaxed group-hover:text-muted-foreground transition-colors duration-200 mt-2">
{children}
</div>
)}
</div> </div>
<div className="flex-shrink-0 ml-2"> <div className="flex-shrink-0 ml-2">
<div className="w-5 h-5 rounded-full bg-muted/40 flex items-center justify-center opacity-0 group-hover:opacity-100 group-hover:bg-primary/10 transition-all duration-200"> <div className="w-5 h-5 rounded-full bg-muted/40 flex items-center justify-center opacity-0 group-hover:opacity-100 group-hover:bg-primary/10 transition-all duration-200">

View File

@@ -1,6 +1,6 @@
{ {
"name": "palmr-api", "name": "palmr-api",
"version": "3.1.5-beta", "version": "3.1.6-beta",
"description": "API for Palmr", "description": "API for Palmr",
"private": true, "private": true,
"author": "Daniel Luiz Alves <daniel@kyantech.com.br>", "author": "Daniel Luiz Alves <daniel@kyantech.com.br>",

View File

@@ -1,6 +1,6 @@
{ {
"name": "palmr-web", "name": "palmr-web",
"version": "3.1.5-beta", "version": "3.1.6-beta",
"description": "Frontend for Palmr", "description": "Frontend for Palmr",
"private": true, "private": true,
"author": "Daniel Luiz Alves <daniel@kyantech.com.br>", "author": "Daniel Luiz Alves <daniel@kyantech.com.br>",

View File

@@ -3,8 +3,9 @@ services:
image: kyantech/palmr:latest image: kyantech/palmr:latest
container_name: palmr container_name: palmr
environment: environment:
- ENABLE_S3=false # Optional: Uncomment and configure as needed (if you don`t use, you can remove)
- DISABLE_FILESYSTEM_ENCRYPTION=true # Set to false to enable file encryption (ENCRYPTION_KEY becomes required) | (OPTIONAL - default is true) # - ENABLE_S3=true # Set to true to enable S3-compatible storage (OPTIONAL - default is false)
# - DISABLE_FILESYSTEM_ENCRYPTION=false # Set to false to enable file encryption (ENCRYPTION_KEY becomes required) | (OPTIONAL - default is true)
# - ENCRYPTION_KEY=change-this-key-in-production-min-32-chars # CHANGE THIS KEY FOR SECURITY (REQUIRED if DISABLE_FILESYSTEM_ENCRYPTION is false) # - ENCRYPTION_KEY=change-this-key-in-production-min-32-chars # CHANGE THIS KEY FOR SECURITY (REQUIRED if DISABLE_FILESYSTEM_ENCRYPTION is false)
# - PALMR_UID=1000 # UID for the container processes (OPTIONAL - default is 1000) | See our UID/GID Documentation for more information # - PALMR_UID=1000 # UID for the container processes (OPTIONAL - default is 1000) | See our UID/GID Documentation for more information
# - PALMR_GID=1000 # GID for the container processes (OPTIONAL - default is 1000) | See our UID/GID Documentation for more information # - PALMR_GID=1000 # GID for the container processes (OPTIONAL - default is 1000) | See our UID/GID Documentation for more information

View File

@@ -3,8 +3,9 @@ services:
image: kyantech/palmr:latest image: kyantech/palmr:latest
container_name: palmr container_name: palmr
environment: environment:
- ENABLE_S3=false # Optional: Uncomment and configure as needed (if you don`t use, you can remove)
- DISABLE_FILESYSTEM_ENCRYPTION=true # Set to false to enable file encryption (ENCRYPTION_KEY becomes required) | (OPTIONAL - default is true) # - ENABLE_S3=false # Set to true to enable S3-compatible storage (OPTIONAL - default is false)
# - DISABLE_FILESYSTEM_ENCRYPTION=true # Set to false to enable file encryption (ENCRYPTION_KEY becomes required) | (OPTIONAL - default is true)
# - ENCRYPTION_KEY=change-this-key-in-production-min-32-chars # CHANGE THIS KEY FOR SECURITY (REQUIRED if DISABLE_FILESYSTEM_ENCRYPTION is false) # - ENCRYPTION_KEY=change-this-key-in-production-min-32-chars # CHANGE THIS KEY FOR SECURITY (REQUIRED if DISABLE_FILESYSTEM_ENCRYPTION is false)
# - PALMR_UID=1000 # UID for the container processes (OPTIONAL - default is 1000) | See our UID/GID Documentation for more information # - PALMR_UID=1000 # UID for the container processes (OPTIONAL - default is 1000) | See our UID/GID Documentation for more information
# - PALMR_GID=1000 # GID for the container processes (OPTIONAL - default is 1000) | See our UID/GID Documentation for more information # - PALMR_GID=1000 # GID for the container processes (OPTIONAL - default is 1000) | See our UID/GID Documentation for more information

View File

@@ -1,6 +1,6 @@
{ {
"name": "palmr-monorepo", "name": "palmr-monorepo",
"version": "3.1.5-beta", "version": "3.1.6-beta",
"description": "Palmr monorepo with Husky configuration", "description": "Palmr monorepo with Husky configuration",
"private": true, "private": true,
"packageManager": "pnpm@10.6.0", "packageManager": "pnpm@10.6.0",