mirror of
https://github.com/kyantech/Palmr.git
synced 2025-10-22 22:02:00 +00:00
chore: update documentation formatting and structure
This commit is contained in:
@@ -1,236 +1,236 @@
|
||||
---
|
||||
title: API Endpoints
|
||||
icon: Plug
|
||||
---
|
||||
|
||||
Palmr. provides a comprehensive, well-documented, and fully typed REST API designed for maximum developer productivity and seamless integration. Whether you're building custom applications, automating workflows, or integrating with third-party services, our API offers the flexibility and reliability you need.
|
||||
|
||||
> **Overview:** The API is built with Fastify + Zod + TypeScript, ensuring type safety, schema validation, and excellent performance for all operations.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
### Exposing the API port
|
||||
|
||||
To access the API endpoints, you need to expose port **3333** in your Docker configuration. This port is where the Palmr. API server runs.
|
||||
|
||||
**Using Docker Compose:**
|
||||
|
||||
```yaml
|
||||
services:
|
||||
palmr:
|
||||
image: kyantech/palmr:latest
|
||||
ports:
|
||||
- "5487:5487" # Web interface
|
||||
- "3333:3333" # API port (required for API access)
|
||||
# ... other configuration
|
||||
```
|
||||
|
||||
**Using Docker run command:**
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name palmr \
|
||||
-p 5487:5487 \
|
||||
-p 3333:3333 \
|
||||
-v palmr_data:/app/server \
|
||||
--restart unless-stopped \
|
||||
kyantech/palmr:latest
|
||||
```
|
||||
|
||||
> **Note:** Port 3333 exposure is optional if you only need the web interface. However, it's required for direct API access, custom integrations, and accessing the interactive documentation.
|
||||
|
||||
## Accessing the API documentation
|
||||
|
||||
The API documentation is available through interactive interfaces that allow you to explore, test, and validate all available endpoints directly in your browser.
|
||||
|
||||
### Documentation endpoints
|
||||
|
||||
**Local development:**
|
||||
|
||||
- Scalar documentation: `http://localhost:3333/docs`
|
||||
- Swagger documentation: `http://localhost:3333/swagger`
|
||||
|
||||
**Production environment:**
|
||||
|
||||
- Scalar documentation: `{your_domain}:3333/docs`
|
||||
- Swagger documentation: `{your_domain}:3333/swagger`
|
||||
|
||||
> **Important:** We don't provide an online version of the API documentation because endpoints and functionality may vary between different versions of Palmr. Always access the documentation from your specific deployment to ensure accuracy.
|
||||
|
||||
## Interactive documentation with Scalar
|
||||
|
||||
Our primary API documentation is powered by **Scalar**, a modern documentation platform that provides an exceptional developer experience.
|
||||
|
||||

|
||||
|
||||
### Why Scalar?
|
||||
|
||||
- **Interactive testing** - Test endpoints directly in the documentation
|
||||
- **Real-time validation** - Immediate feedback on request/response formats
|
||||
- **Modern interface** - Clean, intuitive design optimized for developer productivity
|
||||
- **Type-safe integration** - Full TypeScript support with automatic type inference
|
||||
- **Schema visualization** - Clear representation of request and response structures
|
||||
|
||||
### Key features
|
||||
|
||||
- **Comprehensive endpoint coverage** - All API endpoints documented with examples
|
||||
- **Authentication testing** - Built-in support for JWT token authentication
|
||||
- **Request builders** - Interactive forms for constructing API requests
|
||||
- **Response visualization** - Formatted display of API responses with syntax highlighting
|
||||
- **Code generation** - Generate client code in multiple programming languages
|
||||
|
||||
## Alternative Swagger documentation
|
||||
|
||||
For developers who prefer Swagger or need compatibility with existing tools, we also provide a Swagger-based documentation interface.
|
||||
|
||||

|
||||
|
||||
### When to use Swagger
|
||||
|
||||
- **Legacy tool compatibility** - Integration with existing Swagger-based workflows
|
||||
- **Team preferences** - When your team is more familiar with Swagger interface
|
||||
- **OpenAPI specification** - Direct access to OpenAPI spec for code generation
|
||||
- **Third-party integrations** - Tools that specifically require Swagger format
|
||||
|
||||
Both documentation formats provide identical endpoint coverage and functionality, ensuring you can choose the interface that best fits your development workflow.
|
||||
|
||||
## API capabilities
|
||||
|
||||
The Palmr. API provides comprehensive access to all platform features:
|
||||
|
||||
### File operations
|
||||
|
||||
- **Upload files** - Single and batch file uploads with progress tracking
|
||||
- **Download files** - Secure file retrieval with access control
|
||||
- **File management** - Rename, delete, and organize files
|
||||
- **Metadata access** - Retrieve file information and properties
|
||||
|
||||
### Folder operations
|
||||
|
||||
- **Create folders** - Build folder structures for organization
|
||||
- **Folder management** - Rename, move, delete folders
|
||||
- **Folder sharing** - Share folders with same controls as files
|
||||
|
||||
### Share management
|
||||
|
||||
- **Create shares** - Generate public links for file sharing
|
||||
- **Configure access** - Set passwords, expiration dates, and view limits
|
||||
- **Track usage** - Monitor share views and download statistics
|
||||
- **Manage recipients** - Add and remove share recipients
|
||||
|
||||
### User operations
|
||||
|
||||
- **Authentication** - Login, logout, and session management
|
||||
- **Profile management** - Update user information and preferences
|
||||
- **User administration** - Create and manage user accounts (admin only)
|
||||
|
||||
### System integration
|
||||
|
||||
- **Health checks** - Monitor system status and availability
|
||||
- **Configuration** - Access and modify system settings
|
||||
- **Storage operations** - Manage filesystem and S3 storage options
|
||||
|
||||
## Authentication
|
||||
|
||||
The API uses **HTTP-only cookies** for secure authentication. After logging in through the web interface or API, authentication is automatically handled via secure cookies:
|
||||
|
||||
```bash
|
||||
# Login to establish authenticated session
|
||||
POST /auth/login
|
||||
{
|
||||
"email": "user@example.com",
|
||||
"password": "your-password"
|
||||
}
|
||||
|
||||
# Subsequent requests automatically include authentication cookies
|
||||
# No Authorization header needed - cookies are sent automatically
|
||||
GET /api/files
|
||||
```
|
||||
|
||||
### How authentication works
|
||||
|
||||
1. **Login** - Use the `/auth/login` endpoint with your credentials
|
||||
2. **Cookie storage** - The server sets HTTP-only cookies containing JWT tokens
|
||||
3. **Automatic authentication** - All subsequent API requests include these cookies automatically
|
||||
4. **Session management** - Cookies handle session persistence and expiration
|
||||
|
||||
### Security features
|
||||
|
||||
- **HTTP-only cookies** - Tokens stored securely in HTTP-only cookies, preventing XSS attacks
|
||||
- **Secure transmission** - Cookies marked as secure and same-site for enhanced protection
|
||||
- **Token expiration** - Automatic session timeout for security
|
||||
- **Role-based access** - Different permissions for users and administrators
|
||||
- **Request validation** - All inputs validated using Zod schemas
|
||||
|
||||
## Getting started with the API
|
||||
|
||||
### 1. Expose the API port
|
||||
|
||||
Ensure port 3333 is exposed in your Docker configuration to access the API endpoints.
|
||||
|
||||
### 2. Access the documentation
|
||||
|
||||
Visit your Palmr. instance at `:3333/docs` to explore the interactive API documentation.
|
||||
|
||||
### 3. Authenticate
|
||||
|
||||
Use the login endpoint to establish an authenticated session. Authentication cookies will be automatically set and included in subsequent requests.
|
||||
|
||||
### 4. Test endpoints
|
||||
|
||||
Use the interactive documentation to test API endpoints and understand request/response formats.
|
||||
|
||||
### 5. Build your integration
|
||||
|
||||
Implement your custom application using the API endpoints that match your requirements.
|
||||
|
||||
## Integration examples
|
||||
|
||||
The API enables powerful integrations and automation:
|
||||
|
||||
**Workflow automation:**
|
||||
|
||||
- Automatically upload files from CI/CD pipelines
|
||||
- Create shares for build artifacts and reports
|
||||
- Integrate with project management tools
|
||||
|
||||
**Custom applications:**
|
||||
|
||||
- Build mobile apps with native file management
|
||||
- Create specialized interfaces for specific use cases
|
||||
- Develop backup and sync solutions
|
||||
|
||||
**Business integrations:**
|
||||
|
||||
- Connect with existing document management systems
|
||||
- Automate file sharing workflows
|
||||
- Integrate with CRM and ERP systems
|
||||
|
||||
## Best practices
|
||||
|
||||
### Performance optimization
|
||||
|
||||
- **Use appropriate HTTP methods** - GET for retrieval, POST for creation, etc.
|
||||
- **Implement pagination** - Handle large datasets efficiently
|
||||
- **Cache responses** - Store frequently accessed data locally
|
||||
- **Batch operations** - Group multiple operations when possible
|
||||
|
||||
### Error handling
|
||||
|
||||
- **Check status codes** - Handle different HTTP response codes appropriately
|
||||
- **Parse error messages** - Use detailed error information for debugging
|
||||
- **Implement retries** - Handle temporary failures gracefully
|
||||
- **Log API interactions** - Maintain audit trails for troubleshooting
|
||||
|
||||
### Security considerations
|
||||
|
||||
- **Use HTTPS** - Always encrypt API communications to protect authentication cookies
|
||||
- **Secure cookies** - Authentication handled automatically via HTTP-only cookies
|
||||
- **Validate inputs** - Sanitize data before sending to API
|
||||
- **Monitor usage** - Track API calls for unusual activity
|
||||
|
||||
## Useful links
|
||||
|
||||
- [Scalar Official Website](https://scalar.com/) - Learn more about our primary documentation platform
|
||||
- [Swagger Official Website](https://swagger.io/) - Information about the alternative documentation format
|
||||
- [JWT.io](https://jwt.io/) - Understanding JSON Web Tokens for authentication
|
||||
---
|
||||
title: API Endpoints
|
||||
icon: Plug
|
||||
---
|
||||
|
||||
Palmr. provides a comprehensive, well-documented, and fully typed REST API designed for maximum developer productivity and seamless integration. Whether you're building custom applications, automating workflows, or integrating with third-party services, our API offers the flexibility and reliability you need.
|
||||
|
||||
> **Overview:** The API is built with Fastify + Zod + TypeScript, ensuring type safety, schema validation, and excellent performance for all operations.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
### Exposing the API port
|
||||
|
||||
To access the API endpoints, you need to expose port **3333** in your Docker configuration. This port is where the Palmr. API server runs.
|
||||
|
||||
**Using Docker Compose:**
|
||||
|
||||
```yaml
|
||||
services:
|
||||
palmr:
|
||||
image: kyantech/palmr:latest
|
||||
ports:
|
||||
- "5487:5487" # Web interface
|
||||
- "3333:3333" # API port (required for API access)
|
||||
# ... other configuration
|
||||
```
|
||||
|
||||
**Using Docker run command:**
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name palmr \
|
||||
-p 5487:5487 \
|
||||
-p 3333:3333 \
|
||||
-v palmr_data:/app/server \
|
||||
--restart unless-stopped \
|
||||
kyantech/palmr:latest
|
||||
```
|
||||
|
||||
> **Note:** Port 3333 exposure is optional if you only need the web interface. However, it's required for direct API access, custom integrations, and accessing the interactive documentation.
|
||||
|
||||
## Accessing the API documentation
|
||||
|
||||
The API documentation is available through interactive interfaces that allow you to explore, test, and validate all available endpoints directly in your browser.
|
||||
|
||||
### Documentation endpoints
|
||||
|
||||
**Local development:**
|
||||
|
||||
- Scalar documentation: `http://localhost:3333/docs`
|
||||
- Swagger documentation: `http://localhost:3333/swagger`
|
||||
|
||||
**Production environment:**
|
||||
|
||||
- Scalar documentation: `{your_domain}:3333/docs`
|
||||
- Swagger documentation: `{your_domain}:3333/swagger`
|
||||
|
||||
> **Important:** We don't provide an online version of the API documentation because endpoints and functionality may vary between different versions of Palmr. Always access the documentation from your specific deployment to ensure accuracy.
|
||||
|
||||
## Interactive documentation with Scalar
|
||||
|
||||
Our primary API documentation is powered by **Scalar**, a modern documentation platform that provides an exceptional developer experience.
|
||||
|
||||

|
||||
|
||||
### Why Scalar?
|
||||
|
||||
- **Interactive testing** - Test endpoints directly in the documentation
|
||||
- **Real-time validation** - Immediate feedback on request/response formats
|
||||
- **Modern interface** - Clean, intuitive design optimized for developer productivity
|
||||
- **Type-safe integration** - Full TypeScript support with automatic type inference
|
||||
- **Schema visualization** - Clear representation of request and response structures
|
||||
|
||||
### Key features
|
||||
|
||||
- **Comprehensive endpoint coverage** - All API endpoints documented with examples
|
||||
- **Authentication testing** - Built-in support for JWT token authentication
|
||||
- **Request builders** - Interactive forms for constructing API requests
|
||||
- **Response visualization** - Formatted display of API responses with syntax highlighting
|
||||
- **Code generation** - Generate client code in multiple programming languages
|
||||
|
||||
## Alternative Swagger documentation
|
||||
|
||||
For developers who prefer Swagger or need compatibility with existing tools, we also provide a Swagger-based documentation interface.
|
||||
|
||||

|
||||
|
||||
### When to use Swagger
|
||||
|
||||
- **Legacy tool compatibility** - Integration with existing Swagger-based workflows
|
||||
- **Team preferences** - When your team is more familiar with Swagger interface
|
||||
- **OpenAPI specification** - Direct access to OpenAPI spec for code generation
|
||||
- **Third-party integrations** - Tools that specifically require Swagger format
|
||||
|
||||
Both documentation formats provide identical endpoint coverage and functionality, ensuring you can choose the interface that best fits your development workflow.
|
||||
|
||||
## API capabilities
|
||||
|
||||
The Palmr. API provides comprehensive access to all platform features:
|
||||
|
||||
### File operations
|
||||
|
||||
- **Upload files** - Single and batch file uploads with progress tracking
|
||||
- **Download files** - Secure file retrieval with access control
|
||||
- **File management** - Rename, delete, and organize files
|
||||
- **Metadata access** - Retrieve file information and properties
|
||||
|
||||
### Folder operations
|
||||
|
||||
- **Create folders** - Build folder structures for organization
|
||||
- **Folder management** - Rename, move, delete folders
|
||||
- **Folder sharing** - Share folders with same controls as files
|
||||
|
||||
### Share management
|
||||
|
||||
- **Create shares** - Generate public links for file sharing
|
||||
- **Configure access** - Set passwords, expiration dates, and view limits
|
||||
- **Track usage** - Monitor share views and download statistics
|
||||
- **Manage recipients** - Add and remove share recipients
|
||||
|
||||
### User operations
|
||||
|
||||
- **Authentication** - Login, logout, and session management
|
||||
- **Profile management** - Update user information and preferences
|
||||
- **User administration** - Create and manage user accounts (admin only)
|
||||
|
||||
### System integration
|
||||
|
||||
- **Health checks** - Monitor system status and availability
|
||||
- **Configuration** - Access and modify system settings
|
||||
- **Storage operations** - Manage filesystem and S3 storage options
|
||||
|
||||
## Authentication
|
||||
|
||||
The API uses **HTTP-only cookies** for secure authentication. After logging in through the web interface or API, authentication is automatically handled via secure cookies:
|
||||
|
||||
```bash
|
||||
# Login to establish authenticated session
|
||||
POST /auth/login
|
||||
{
|
||||
"email": "user@example.com",
|
||||
"password": "your-password"
|
||||
}
|
||||
|
||||
# Subsequent requests automatically include authentication cookies
|
||||
# No Authorization header needed - cookies are sent automatically
|
||||
GET /api/files
|
||||
```
|
||||
|
||||
### How authentication works
|
||||
|
||||
1. **Login** - Use the `/auth/login` endpoint with your credentials
|
||||
2. **Cookie storage** - The server sets HTTP-only cookies containing JWT tokens
|
||||
3. **Automatic authentication** - All subsequent API requests include these cookies automatically
|
||||
4. **Session management** - Cookies handle session persistence and expiration
|
||||
|
||||
### Security features
|
||||
|
||||
- **HTTP-only cookies** - Tokens stored securely in HTTP-only cookies, preventing XSS attacks
|
||||
- **Secure transmission** - Cookies marked as secure and same-site for enhanced protection
|
||||
- **Token expiration** - Automatic session timeout for security
|
||||
- **Role-based access** - Different permissions for users and administrators
|
||||
- **Request validation** - All inputs validated using Zod schemas
|
||||
|
||||
## Getting started with the API
|
||||
|
||||
### 1. Expose the API port
|
||||
|
||||
Ensure port 3333 is exposed in your Docker configuration to access the API endpoints.
|
||||
|
||||
### 2. Access the documentation
|
||||
|
||||
Visit your Palmr. instance at `:3333/docs` to explore the interactive API documentation.
|
||||
|
||||
### 3. Authenticate
|
||||
|
||||
Use the login endpoint to establish an authenticated session. Authentication cookies will be automatically set and included in subsequent requests.
|
||||
|
||||
### 4. Test endpoints
|
||||
|
||||
Use the interactive documentation to test API endpoints and understand request/response formats.
|
||||
|
||||
### 5. Build your integration
|
||||
|
||||
Implement your custom application using the API endpoints that match your requirements.
|
||||
|
||||
## Integration examples
|
||||
|
||||
The API enables powerful integrations and automation:
|
||||
|
||||
**Workflow automation:**
|
||||
|
||||
- Automatically upload files from CI/CD pipelines
|
||||
- Create shares for build artifacts and reports
|
||||
- Integrate with project management tools
|
||||
|
||||
**Custom applications:**
|
||||
|
||||
- Build mobile apps with native file management
|
||||
- Create specialized interfaces for specific use cases
|
||||
- Develop backup and sync solutions
|
||||
|
||||
**Business integrations:**
|
||||
|
||||
- Connect with existing document management systems
|
||||
- Automate file sharing workflows
|
||||
- Integrate with CRM and ERP systems
|
||||
|
||||
## Best practices
|
||||
|
||||
### Performance optimization
|
||||
|
||||
- **Use appropriate HTTP methods** - GET for retrieval, POST for creation, etc.
|
||||
- **Implement pagination** - Handle large datasets efficiently
|
||||
- **Cache responses** - Store frequently accessed data locally
|
||||
- **Batch operations** - Group multiple operations when possible
|
||||
|
||||
### Error handling
|
||||
|
||||
- **Check status codes** - Handle different HTTP response codes appropriately
|
||||
- **Parse error messages** - Use detailed error information for debugging
|
||||
- **Implement retries** - Handle temporary failures gracefully
|
||||
- **Log API interactions** - Maintain audit trails for troubleshooting
|
||||
|
||||
### Security considerations
|
||||
|
||||
- **Use HTTPS** - Always encrypt API communications to protect authentication cookies
|
||||
- **Secure cookies** - Authentication handled automatically via HTTP-only cookies
|
||||
- **Validate inputs** - Sanitize data before sending to API
|
||||
- **Monitor usage** - Track API calls for unusual activity
|
||||
|
||||
## Useful links
|
||||
|
||||
- [Scalar Official Website](https://scalar.com/) - Learn more about our primary documentation platform
|
||||
- [Swagger Official Website](https://swagger.io/) - Information about the alternative documentation format
|
||||
- [JWT.io](https://jwt.io/) - Understanding JSON Web Tokens for authentication
|
||||
|
@@ -1,144 +1,144 @@
|
||||
---
|
||||
title: GitHub Architecture
|
||||
icon: Github
|
||||
---
|
||||
|
||||
import { File, Files, Folder } from "fumadocs-ui/components/files";
|
||||
|
||||
This guide provides a comprehensive overview of Palmr.'s GitHub repository structure, explaining how the different components are organized in the codebase. Understanding this architecture will help you navigate the repository, contribute effectively, and understand how the project is structured.
|
||||
|
||||
> **Overview:** Palmr. uses a monorepo architecture with clear separation between frontend, backend, and documentation components.
|
||||
|
||||
## Project structure
|
||||
|
||||
<Files>
|
||||
<Folder name="apps" defaultOpen>
|
||||
<Folder name="docs">
|
||||
<File name="all documentation files" />
|
||||
</Folder>
|
||||
<Folder name="server">
|
||||
<File name="all backend files" />
|
||||
</Folder>
|
||||
<Folder name="web">
|
||||
<File name="all frontend files" />
|
||||
</Folder>
|
||||
</Folder>
|
||||
<File name="other project files" />
|
||||
</Files>
|
||||
|
||||
## Core components
|
||||
|
||||
### Frontend application (apps/web)
|
||||
|
||||
**Technology stack:**
|
||||
|
||||
- Next.js 15 (App Router)
|
||||
- React 18
|
||||
- TypeScript
|
||||
- TailwindCSS
|
||||
- shadcn/ui components
|
||||
- next-intl for internationalization
|
||||
|
||||
Palmr.'s frontend is built with **Next.js 15**, using the App Router and Server Components for performance, scalability, and flexibility. The structure is modular and feature-based, keeping things easy to evolve as the product grows. UI logic runs on **React 18**, and **TypeScript** adds type safety that prevents a lot of silent bugs. Styles are handled with **TailwindCSS**, letting us build clean, responsive interfaces quickly. For components, we rely on **shadcn/ui**, a headless component library built with Radix UI and Tailwind, it's fast, accessible, and fully customizable.
|
||||
|
||||
Internationalization is handled by **next-intl**, which integrates perfectly with Next.js routing. It supports locale-aware routes, per-page translation loading, and plural rules, all without any extra client-side bloat. It's flexible, lightweight, and great for apps with multilingual audiences.
|
||||
|
||||
The frontend is organized with:
|
||||
|
||||
- A **components-based architecture** for modular UI
|
||||
- **Custom hooks** to isolate logic and side effects
|
||||
- A **route protection system** using session cookies and middleware
|
||||
- A **file management interface** integrated with the backend
|
||||
- **Folder support** for organizing files hierarchically
|
||||
- A **reusable modal system** used for file actions, confirmations, and more
|
||||
- **Dynamic, locale-aware routing** using next-intl
|
||||
|
||||
### Backend service (apps/server)
|
||||
|
||||
**Technology stack:**
|
||||
|
||||
- Fastify
|
||||
- SQLite
|
||||
- Filesystem storage (with S3-compatible object storage support)
|
||||
- Prisma ORM
|
||||
|
||||
The backend is built on **Fastify**, a blazing-fast web framework for Node.js. It's lightweight, modular, and optimized for high performance. Every route is validated using JSON schema, which helps keep the API consistent and secure. Auth flows are built using JWTs stored in HTTP-only cookies, and everything from file uploads to token-based sharing goes through this layer.
|
||||
|
||||
Data is stored in **SQLite**, which handles user info, file metadata, session tokens, and more. For file storage, the system uses **filesystem storage** by default, keeping files organized in the local file system. The architecture also supports **S3-compatible object storage** as an alternative storage option for scalability. We use **Prisma** as our ORM to simplify database access, it gives us type-safe queries and easy-to-read code.
|
||||
|
||||
Key features include:
|
||||
|
||||
- **Authentication/authorization** with JWT + cookie sessions
|
||||
- **File management logic** including uploads, deletes, renames, and folders
|
||||
- **Storage operations** to handle file organization, usage tracking, and cleanup
|
||||
- A **share system** that generates tokenized public file links
|
||||
- Schema-based request validation for all endpoints
|
||||
- Prisma models that keep the database logic predictable and type-safe
|
||||
|
||||
### Documentation (apps/docs)
|
||||
|
||||
**Technology stack:**
|
||||
|
||||
- Fumadocs
|
||||
- MDX (Markdown + JSX)
|
||||
- React-based components
|
||||
|
||||
The docs are built using **Fumadocs**, a modern documentation system built on top of Next.js. It uses **MDX**, so you can mix Markdown with interactive React components, perfect for developer tools and open-source projects. Pages are fast, versionable, and easy to customize. The goal is to keep the documentation as close to the codebase as possible, using shared components where needed and reusing UI patterns directly from the app.
|
||||
|
||||
It supports sidebar navigation, keyboard shortcuts, dark mode, and even interactive demos or UI previews. The file tree you see above, for example, is powered by a real React component from the docs.
|
||||
|
||||
- Built with **Fumadocs**, powered by Next.js
|
||||
- Supports **MDX** and full React component embedding
|
||||
- Ideal for technical docs and live code samples
|
||||
- Styled using the same Tailwind setup from the main app
|
||||
|
||||
### Infrastructure
|
||||
|
||||
Palmr. is fully containerized using **Docker**, which means every service: frontend, backend, database, storage, runs in its own isolated environment. With `docker-compose`, the whole stack spins up locally with a single command. It's also easy to deploy to services like Fly.io, Render, or your own VPS.
|
||||
|
||||
Volumes are used to persist data locally, and containers are networked together so that all services can talk to each other securely.
|
||||
|
||||
- **Docker-first architecture** with all services containerized
|
||||
- Configurable through `.env` and compose overrides
|
||||
- Local volumes and named networks
|
||||
- Easy to deploy and scale on any container-compatible infra
|
||||
|
||||
## Key features
|
||||
|
||||
### File management
|
||||
|
||||
Files are at the heart of Palmr. Users can upload files via the frontend, and they're stored directly in the filesystem. Users can also create folders to organize files. The backend handles metadata (name, size, type, ownership), and also handles deletion, renaming, and public sharing. Every file operation is tracked, and all actions can be scoped per user.
|
||||
|
||||
- Upload/download with instant feedback
|
||||
- Create and organize files in folders
|
||||
- File previews, type validation, and size limits
|
||||
- Token-based sharing system
|
||||
- Disk usage tracking by user
|
||||
|
||||
### User system
|
||||
|
||||
Authentication is done through secure JWTs, stored in HTTP-only cookies for safety. Signup and login flows are simple and fast, and user info is kept in sync across the frontend and backend.
|
||||
|
||||
- Cookie-based session management
|
||||
- Role support and future admin access
|
||||
- Profile updates and password reset flows
|
||||
- Logged-in user state handled via custom hooks
|
||||
|
||||
### Storage system
|
||||
|
||||
The system uses **filesystem storage** for all file operations by default. It's simple, fast, and reliable for most use cases. The architecture also supports **S3-compatible object storage** as an alternative for users who need cloud storage or additional scalability. The backend tracks usage, handles cleanup of orphaned files, and ensures that every file on disk has a matching database record.
|
||||
|
||||
- Filesystem-based storage with organized directory structure
|
||||
- Optional S3-compatible object storage support
|
||||
- Upload validation and automatic cleanup
|
||||
- Usage tracking and quotas (per user or global)
|
||||
- Secure access to stored files with proper permissions
|
||||
|
||||
### Internationalization
|
||||
|
||||
Palmr. supports multiple languages using **next-intl**, which is deeply integrated into the routing system. It loads only the necessary translations per route, supports nested namespaces, and makes it easy to keep things organized even at scale.
|
||||
|
||||
- Per-locale localstorage (`en-US`, `pt-BR`, etc.)
|
||||
- Translation loading by namespace/page
|
||||
- Full pluralization and formatting support
|
||||
- Easy translation management via JSON files
|
||||
---
|
||||
title: GitHub Architecture
|
||||
icon: Github
|
||||
---
|
||||
|
||||
import { File, Files, Folder } from "fumadocs-ui/components/files";
|
||||
|
||||
This guide provides a comprehensive overview of Palmr.'s GitHub repository structure, explaining how the different components are organized in the codebase. Understanding this architecture will help you navigate the repository, contribute effectively, and understand how the project is structured.
|
||||
|
||||
> **Overview:** Palmr. uses a monorepo architecture with clear separation between frontend, backend, and documentation components.
|
||||
|
||||
## Project structure
|
||||
|
||||
<Files>
|
||||
<Folder name="apps" defaultOpen>
|
||||
<Folder name="docs">
|
||||
<File name="all documentation files" />
|
||||
</Folder>
|
||||
<Folder name="server">
|
||||
<File name="all backend files" />
|
||||
</Folder>
|
||||
<Folder name="web">
|
||||
<File name="all frontend files" />
|
||||
</Folder>
|
||||
</Folder>
|
||||
<File name="other project files" />
|
||||
</Files>
|
||||
|
||||
## Core components
|
||||
|
||||
### Frontend application (apps/web)
|
||||
|
||||
**Technology stack:**
|
||||
|
||||
- Next.js 15 (App Router)
|
||||
- React 18
|
||||
- TypeScript
|
||||
- TailwindCSS
|
||||
- shadcn/ui components
|
||||
- next-intl for internationalization
|
||||
|
||||
Palmr.'s frontend is built with **Next.js 15**, using the App Router and Server Components for performance, scalability, and flexibility. The structure is modular and feature-based, keeping things easy to evolve as the product grows. UI logic runs on **React 18**, and **TypeScript** adds type safety that prevents a lot of silent bugs. Styles are handled with **TailwindCSS**, letting us build clean, responsive interfaces quickly. For components, we rely on **shadcn/ui**, a headless component library built with Radix UI and Tailwind, it's fast, accessible, and fully customizable.
|
||||
|
||||
Internationalization is handled by **next-intl**, which integrates perfectly with Next.js routing. It supports locale-aware routes, per-page translation loading, and plural rules, all without any extra client-side bloat. It's flexible, lightweight, and great for apps with multilingual audiences.
|
||||
|
||||
The frontend is organized with:
|
||||
|
||||
- A **components-based architecture** for modular UI
|
||||
- **Custom hooks** to isolate logic and side effects
|
||||
- A **route protection system** using session cookies and middleware
|
||||
- A **file management interface** integrated with the backend
|
||||
- **Folder support** for organizing files hierarchically
|
||||
- A **reusable modal system** used for file actions, confirmations, and more
|
||||
- **Dynamic, locale-aware routing** using next-intl
|
||||
|
||||
### Backend service (apps/server)
|
||||
|
||||
**Technology stack:**
|
||||
|
||||
- Fastify
|
||||
- SQLite
|
||||
- Filesystem storage (with S3-compatible object storage support)
|
||||
- Prisma ORM
|
||||
|
||||
The backend is built on **Fastify**, a blazing-fast web framework for Node.js. It's lightweight, modular, and optimized for high performance. Every route is validated using JSON schema, which helps keep the API consistent and secure. Auth flows are built using JWTs stored in HTTP-only cookies, and everything from file uploads to token-based sharing goes through this layer.
|
||||
|
||||
Data is stored in **SQLite**, which handles user info, file metadata, session tokens, and more. For file storage, the system uses **filesystem storage** by default, keeping files organized in the local file system. The architecture also supports **S3-compatible object storage** as an alternative storage option for scalability. We use **Prisma** as our ORM to simplify database access, it gives us type-safe queries and easy-to-read code.
|
||||
|
||||
Key features include:
|
||||
|
||||
- **Authentication/authorization** with JWT + cookie sessions
|
||||
- **File management logic** including uploads, deletes, renames, and folders
|
||||
- **Storage operations** to handle file organization, usage tracking, and cleanup
|
||||
- A **share system** that generates tokenized public file links
|
||||
- Schema-based request validation for all endpoints
|
||||
- Prisma models that keep the database logic predictable and type-safe
|
||||
|
||||
### Documentation (apps/docs)
|
||||
|
||||
**Technology stack:**
|
||||
|
||||
- Fumadocs
|
||||
- MDX (Markdown + JSX)
|
||||
- React-based components
|
||||
|
||||
The docs are built using **Fumadocs**, a modern documentation system built on top of Next.js. It uses **MDX**, so you can mix Markdown with interactive React components, perfect for developer tools and open-source projects. Pages are fast, versionable, and easy to customize. The goal is to keep the documentation as close to the codebase as possible, using shared components where needed and reusing UI patterns directly from the app.
|
||||
|
||||
It supports sidebar navigation, keyboard shortcuts, dark mode, and even interactive demos or UI previews. The file tree you see above, for example, is powered by a real React component from the docs.
|
||||
|
||||
- Built with **Fumadocs**, powered by Next.js
|
||||
- Supports **MDX** and full React component embedding
|
||||
- Ideal for technical docs and live code samples
|
||||
- Styled using the same Tailwind setup from the main app
|
||||
|
||||
### Infrastructure
|
||||
|
||||
Palmr. is fully containerized using **Docker**, which means every service: frontend, backend, database, storage, runs in its own isolated environment. With `docker-compose`, the whole stack spins up locally with a single command. It's also easy to deploy to services like Fly.io, Render, or your own VPS.
|
||||
|
||||
Volumes are used to persist data locally, and containers are networked together so that all services can talk to each other securely.
|
||||
|
||||
- **Docker-first architecture** with all services containerized
|
||||
- Configurable through `.env` and compose overrides
|
||||
- Local volumes and named networks
|
||||
- Easy to deploy and scale on any container-compatible infra
|
||||
|
||||
## Key features
|
||||
|
||||
### File management
|
||||
|
||||
Files are at the heart of Palmr. Users can upload files via the frontend, and they're stored directly in the filesystem. Users can also create folders to organize files. The backend handles metadata (name, size, type, ownership), and also handles deletion, renaming, and public sharing. Every file operation is tracked, and all actions can be scoped per user.
|
||||
|
||||
- Upload/download with instant feedback
|
||||
- Create and organize files in folders
|
||||
- File previews, type validation, and size limits
|
||||
- Token-based sharing system
|
||||
- Disk usage tracking by user
|
||||
|
||||
### User system
|
||||
|
||||
Authentication is done through secure JWTs, stored in HTTP-only cookies for safety. Signup and login flows are simple and fast, and user info is kept in sync across the frontend and backend.
|
||||
|
||||
- Cookie-based session management
|
||||
- Role support and future admin access
|
||||
- Profile updates and password reset flows
|
||||
- Logged-in user state handled via custom hooks
|
||||
|
||||
### Storage system
|
||||
|
||||
The system uses **filesystem storage** for all file operations by default. It's simple, fast, and reliable for most use cases. The architecture also supports **S3-compatible object storage** as an alternative for users who need cloud storage or additional scalability. The backend tracks usage, handles cleanup of orphaned files, and ensures that every file on disk has a matching database record.
|
||||
|
||||
- Filesystem-based storage with organized directory structure
|
||||
- Optional S3-compatible object storage support
|
||||
- Upload validation and automatic cleanup
|
||||
- Usage tracking and quotas (per user or global)
|
||||
- Secure access to stored files with proper permissions
|
||||
|
||||
### Internationalization
|
||||
|
||||
Palmr. supports multiple languages using **next-intl**, which is deeply integrated into the routing system. It loads only the necessary translations per route, supports nested namespaces, and makes it easy to keep things organized even at scale.
|
||||
|
||||
- Per-locale localstorage (`en-US`, `pt-BR`, etc.)
|
||||
- Translation loading by namespace/page
|
||||
- Full pluralization and formatting support
|
||||
- Easy translation management via JSON files
|
||||
|
@@ -1,50 +1,50 @@
|
||||
---
|
||||
title: Welcome to Palmr.
|
||||
icon: TreePalm
|
||||
---
|
||||
|
||||
import { Ban, Palette, Shield, Star, Users, Zap } from "lucide-react";
|
||||
|
||||

|
||||
|
||||
**Palmr.** is your go-to **open-source alternative** for file sharing, standing tall against services like **WeTransfer**, **SendGB**, **Send Anywhere**, and **Files.fm**. What sets Palmr. apart? You get to **host it on your own infrastructure** be it a **dedicated server** or **VPS** putting you in the driver’s seat for data security and file control. No more third-party dependencies or worrying about pesky limits and steep fees!
|
||||
|
||||
## Why Palmr. Rocks?
|
||||
|
||||
### No limits, seriously
|
||||
|
||||
Forget about arbitrary caps on file sizes or numbers. With Palmr., the only limit is your **server’s storage space**. Got the capacity? Then transfer files of any size or quantity without a hitch. No premium plans to unlock, no annoying ads to dodge, and definitely no hidden fees sneaking up on you. Your file sharing freedom is tied to your infrastructure, not artificial restrictions.
|
||||
|
||||
### Open source & totally free
|
||||
|
||||
Palmr. is 100% **open source** and free no licenses, subscriptions, or surprise costs. This transparency means you’ve got full control over how you use it. Here’s what that looks like:
|
||||
|
||||
- Deploy anywhere **VPS**, **dedicated server**, **Docker**, or any cloud platform you fancy.
|
||||
- Peek under the hood by reviewing the **codebase** to ensure it’s secure and meets your standards.
|
||||
- Pitch in with **improvements** or custom features to make Palmr. even better.
|
||||
- Tweak it for any use case, from personal sharing to business needs or niche applications.
|
||||
|
||||
### Your data, your rules
|
||||
|
||||
Host Palmr. on your own setup and keep **full control over your data**. By managing storage and transfers yourself, you cut out third-party risks. Your files stay in your environment no external services touching or storing them ensuring top-notch **privacy** and **confidentiality**. Set up security measures that fit your needs, and rest easy knowing no one else is in the loop. Palmr. hands you the reins for ultimate peace of mind, perfect for organizations needing strict data control or regulatory compliance.
|
||||
|
||||
### Make it yours
|
||||
|
||||
Palmr. is a canvas for customization, letting you shape every detail to match your **brand** and **user experience**:
|
||||
|
||||
- Slap on your **logo** for consistent branding across the platform.
|
||||
- Pick a **custom app name** that screams your identity.
|
||||
- Hook up an **SMTP server** for seamless email notifications about transfers or updates.
|
||||
- Rewrite **interface text** to vibe with your audience and keep your brand’s voice.
|
||||
|
||||
### Manage users like a pro
|
||||
|
||||
Take charge of your file-sharing world with Palmr.’s robust **user and admin management** system:
|
||||
|
||||
- Set up multiple **admins** to share the load and keep things running smoothly.
|
||||
- Add as many **users** as you need, from small crews to huge teams.
|
||||
- Keep tabs on **storage usage** with handy analytics for smarter resource planning.
|
||||
|
||||
### Lightning fast & feather light
|
||||
|
||||
Palmr. is built for speed with a sleek, scalable design that handles big file transfers and busy user loads without breaking a sweat. It keeps transfer speeds high and adapts to growing demands effortlessly. Thanks to smart resource use and polished code, you get a snappy experience that scales with your needs while staying rock-solid and stable.
|
||||
---
|
||||
title: Welcome to Palmr.
|
||||
icon: TreePalm
|
||||
---
|
||||
|
||||
import { Ban, Palette, Shield, Star, Users, Zap } from "lucide-react";
|
||||
|
||||

|
||||
|
||||
**Palmr.** is your go-to **open-source alternative** for file sharing, standing tall against services like **WeTransfer**, **SendGB**, **Send Anywhere**, and **Files.fm**. What sets Palmr. apart? You get to **host it on your own infrastructure** be it a **dedicated server** or **VPS** putting you in the driver’s seat for data security and file control. No more third-party dependencies or worrying about pesky limits and steep fees!
|
||||
|
||||
## Why Palmr. Rocks?
|
||||
|
||||
### No limits, seriously
|
||||
|
||||
Forget about arbitrary caps on file sizes or numbers. With Palmr., the only limit is your **server’s storage space**. Got the capacity? Then transfer files of any size or quantity without a hitch. No premium plans to unlock, no annoying ads to dodge, and definitely no hidden fees sneaking up on you. Your file sharing freedom is tied to your infrastructure, not artificial restrictions.
|
||||
|
||||
### Open source & totally free
|
||||
|
||||
Palmr. is 100% **open source** and free no licenses, subscriptions, or surprise costs. This transparency means you’ve got full control over how you use it. Here’s what that looks like:
|
||||
|
||||
- Deploy anywhere **VPS**, **dedicated server**, **Docker**, or any cloud platform you fancy.
|
||||
- Peek under the hood by reviewing the **codebase** to ensure it’s secure and meets your standards.
|
||||
- Pitch in with **improvements** or custom features to make Palmr. even better.
|
||||
- Tweak it for any use case, from personal sharing to business needs or niche applications.
|
||||
|
||||
### Your data, your rules
|
||||
|
||||
Host Palmr. on your own setup and keep **full control over your data**. By managing storage and transfers yourself, you cut out third-party risks. Your files stay in your environment no external services touching or storing them ensuring top-notch **privacy** and **confidentiality**. Set up security measures that fit your needs, and rest easy knowing no one else is in the loop. Palmr. hands you the reins for ultimate peace of mind, perfect for organizations needing strict data control or regulatory compliance.
|
||||
|
||||
### Make it yours
|
||||
|
||||
Palmr. is a canvas for customization, letting you shape every detail to match your **brand** and **user experience**:
|
||||
|
||||
- Slap on your **logo** for consistent branding across the platform.
|
||||
- Pick a **custom app name** that screams your identity.
|
||||
- Hook up an **SMTP server** for seamless email notifications about transfers or updates.
|
||||
- Rewrite **interface text** to vibe with your audience and keep your brand’s voice.
|
||||
|
||||
### Manage users like a pro
|
||||
|
||||
Take charge of your file-sharing world with Palmr.’s robust **user and admin management** system:
|
||||
|
||||
- Set up multiple **admins** to share the load and keep things running smoothly.
|
||||
- Add as many **users** as you need, from small crews to huge teams.
|
||||
- Keep tabs on **storage usage** with handy analytics for smarter resource planning.
|
||||
|
||||
### Lightning fast & feather light
|
||||
|
||||
Palmr. is built for speed with a sleek, scalable design that handles big file transfers and busy user loads without breaking a sweat. It keeps transfer speeds high and adapts to growing demands effortlessly. Thanks to smart resource use and polished code, you get a snappy experience that scales with your needs while staying rock-solid and stable.
|
||||
|
@@ -31,4 +31,4 @@
|
||||
],
|
||||
"root": true,
|
||||
"title": "v3.2-beta"
|
||||
}
|
||||
}
|
||||
|
@@ -15,4 +15,4 @@
|
||||
"other"
|
||||
],
|
||||
"title": "OIDC Authentication"
|
||||
}
|
||||
}
|
||||
|
@@ -1,130 +1,130 @@
|
||||
---
|
||||
title: Screenshots
|
||||
icon: Image
|
||||
---
|
||||
|
||||
import { ZoomableImage } from "@/components/ui/zoomable-image";
|
||||
|
||||
Here you can find a collection of screenshots showcasing various features and interfaces of the Palmr. web application. These images provide a visual overview of the user experience, highlighting key functionalities such as file sharing, user management, and settings configuration. Explore the screenshots below to get a better understanding of how Palmr works and what to expect from the platform.
|
||||
|
||||
> **Note:** All screenshots shown are taken in dark mode, but Palmr. also offers a light mode theme for users who prefer brighter interfaces.
|
||||
|
||||
## Authentication & Access
|
||||
|
||||
### Home page
|
||||
|
||||
The main landing page where users can access the platform and learn about Palmr.'s features.
|
||||
|
||||
<ZoomableImage src="/assets/v3/screenshots/home.png" alt="Home Page - Main landing page of Palmr" />
|
||||
|
||||
### Login page
|
||||
|
||||
Secure authentication interface where users enter their credentials to access their Palmr account.
|
||||
|
||||
<ZoomableImage src="/assets/v3/screenshots/login.png" alt="Login Page - User authentication interface" />
|
||||
|
||||
### Forgot password
|
||||
|
||||
Password recovery interface that allows users to reset their passwords when they can't access their accounts.
|
||||
|
||||
<ZoomableImage src="/assets/v3/screenshots/forgot-password.png" alt="Forgot Password - Password recovery interface" />
|
||||
|
||||
## Main Application Interface
|
||||
|
||||
### Dashboard
|
||||
|
||||
The central hub after login, providing an overview of recent activity, quick actions, and system status.
|
||||
|
||||
<ZoomableImage
|
||||
src="/assets/v3/screenshots/dashboard.png"
|
||||
alt="Dashboard - Main application hub with overview and quick actions"
|
||||
/>
|
||||
|
||||
## File Management
|
||||
|
||||
### Files list view
|
||||
|
||||
Comprehensive file browser displaying all uploaded files in a detailed list format with metadata, actions, sorting options, and folder navigation.
|
||||
|
||||
<ZoomableImage
|
||||
src="/assets/v3/screenshots/files-list.png"
|
||||
alt="Files List View - Detailed file browser with metadata and actions"
|
||||
/>
|
||||
|
||||
### Files card view
|
||||
|
||||
Alternative file browser layout showing files as visual cards, perfect for quick browsing, visual file identification, and folder navigation.
|
||||
|
||||
<ZoomableImage
|
||||
src="/assets/v3/screenshots/files-card.png"
|
||||
alt="Files Card View - Visual card-based file browser layout"
|
||||
/>
|
||||
|
||||
### Receive files
|
||||
|
||||
File upload interface where users can drag and drop or select files to upload to their Palmr storage.
|
||||
|
||||
<ZoomableImage
|
||||
src="/assets/v3/screenshots/receive-files.png"
|
||||
alt="Receive Files - File upload interface with drag and drop functionality"
|
||||
/>
|
||||
|
||||
## Sharing & Collaboration
|
||||
|
||||
### Shares page
|
||||
|
||||
Management interface for all shared files and folders, showing share status, permissions, and access controls for both individual files and folders.
|
||||
|
||||
<ZoomableImage
|
||||
src="/assets/v3/screenshots/shares.png"
|
||||
alt="Shares Page - Share management with permissions and access controls"
|
||||
/>
|
||||
|
||||
## User & System Management
|
||||
|
||||
### User management
|
||||
|
||||
Administrative interface for managing user accounts, permissions, roles, and system access controls.
|
||||
|
||||
<ZoomableImage
|
||||
src="/assets/v3/screenshots/user-management.png"
|
||||
alt="User Management - Administrative interface for user accounts and permissions"
|
||||
/>
|
||||
|
||||
### Profile settings
|
||||
|
||||
Personal account management where users can update their profile information, preferences, and account settings.
|
||||
|
||||
<ZoomableImage
|
||||
src="/assets/v3/screenshots/profile.png"
|
||||
alt="Profile Settings - Personal account management and preferences"
|
||||
/>
|
||||
|
||||
### System settings
|
||||
|
||||
Comprehensive system configuration interface for administrators to manage platform settings, integrations, and system behavior.
|
||||
|
||||
<ZoomableImage
|
||||
src="/assets/v3/screenshots/settings.png"
|
||||
alt="System Settings - Administrative configuration interface"
|
||||
/>
|
||||
|
||||
## Reverse share page themes
|
||||
|
||||
### WeTransfer theme
|
||||
|
||||
Special sharing interface with WeTransfer-inspired design, providing a familiar experience for file sharing with custom theming.
|
||||
|
||||
<ZoomableImage
|
||||
src="/assets/v3/screenshots/wetransfer.png"
|
||||
alt="WeTransfer Theme - WeTransfer-inspired sharing interface with custom theming"
|
||||
/>
|
||||
|
||||
### Default reverse theme
|
||||
|
||||
Alternative dark theme interface showing Palmr's theming capabilities and customization options for different user preferences.
|
||||
|
||||
<ZoomableImage
|
||||
src="/assets/v3/screenshots/default-reverse.png"
|
||||
alt="Default Reverse Theme - Dark theme interface showcasing customization options"
|
||||
/>
|
||||
---
|
||||
title: Screenshots
|
||||
icon: Image
|
||||
---
|
||||
|
||||
import { ZoomableImage } from "@/components/ui/zoomable-image";
|
||||
|
||||
Here you can find a collection of screenshots showcasing various features and interfaces of the Palmr. web application. These images provide a visual overview of the user experience, highlighting key functionalities such as file sharing, user management, and settings configuration. Explore the screenshots below to get a better understanding of how Palmr works and what to expect from the platform.
|
||||
|
||||
> **Note:** All screenshots shown are taken in dark mode, but Palmr. also offers a light mode theme for users who prefer brighter interfaces.
|
||||
|
||||
## Authentication & Access
|
||||
|
||||
### Home page
|
||||
|
||||
The main landing page where users can access the platform and learn about Palmr.'s features.
|
||||
|
||||
<ZoomableImage src="/assets/v3/screenshots/home.png" alt="Home Page - Main landing page of Palmr" />
|
||||
|
||||
### Login page
|
||||
|
||||
Secure authentication interface where users enter their credentials to access their Palmr account.
|
||||
|
||||
<ZoomableImage src="/assets/v3/screenshots/login.png" alt="Login Page - User authentication interface" />
|
||||
|
||||
### Forgot password
|
||||
|
||||
Password recovery interface that allows users to reset their passwords when they can't access their accounts.
|
||||
|
||||
<ZoomableImage src="/assets/v3/screenshots/forgot-password.png" alt="Forgot Password - Password recovery interface" />
|
||||
|
||||
## Main Application Interface
|
||||
|
||||
### Dashboard
|
||||
|
||||
The central hub after login, providing an overview of recent activity, quick actions, and system status.
|
||||
|
||||
<ZoomableImage
|
||||
src="/assets/v3/screenshots/dashboard.png"
|
||||
alt="Dashboard - Main application hub with overview and quick actions"
|
||||
/>
|
||||
|
||||
## File Management
|
||||
|
||||
### Files list view
|
||||
|
||||
Comprehensive file browser displaying all uploaded files in a detailed list format with metadata, actions, sorting options, and folder navigation.
|
||||
|
||||
<ZoomableImage
|
||||
src="/assets/v3/screenshots/files-list.png"
|
||||
alt="Files List View - Detailed file browser with metadata and actions"
|
||||
/>
|
||||
|
||||
### Files card view
|
||||
|
||||
Alternative file browser layout showing files as visual cards, perfect for quick browsing, visual file identification, and folder navigation.
|
||||
|
||||
<ZoomableImage
|
||||
src="/assets/v3/screenshots/files-card.png"
|
||||
alt="Files Card View - Visual card-based file browser layout"
|
||||
/>
|
||||
|
||||
### Receive files
|
||||
|
||||
File upload interface where users can drag and drop or select files to upload to their Palmr storage.
|
||||
|
||||
<ZoomableImage
|
||||
src="/assets/v3/screenshots/receive-files.png"
|
||||
alt="Receive Files - File upload interface with drag and drop functionality"
|
||||
/>
|
||||
|
||||
## Sharing & Collaboration
|
||||
|
||||
### Shares page
|
||||
|
||||
Management interface for all shared files and folders, showing share status, permissions, and access controls for both individual files and folders.
|
||||
|
||||
<ZoomableImage
|
||||
src="/assets/v3/screenshots/shares.png"
|
||||
alt="Shares Page - Share management with permissions and access controls"
|
||||
/>
|
||||
|
||||
## User & System Management
|
||||
|
||||
### User management
|
||||
|
||||
Administrative interface for managing user accounts, permissions, roles, and system access controls.
|
||||
|
||||
<ZoomableImage
|
||||
src="/assets/v3/screenshots/user-management.png"
|
||||
alt="User Management - Administrative interface for user accounts and permissions"
|
||||
/>
|
||||
|
||||
### Profile settings
|
||||
|
||||
Personal account management where users can update their profile information, preferences, and account settings.
|
||||
|
||||
<ZoomableImage
|
||||
src="/assets/v3/screenshots/profile.png"
|
||||
alt="Profile Settings - Personal account management and preferences"
|
||||
/>
|
||||
|
||||
### System settings
|
||||
|
||||
Comprehensive system configuration interface for administrators to manage platform settings, integrations, and system behavior.
|
||||
|
||||
<ZoomableImage
|
||||
src="/assets/v3/screenshots/settings.png"
|
||||
alt="System Settings - Administrative configuration interface"
|
||||
/>
|
||||
|
||||
## Reverse share page themes
|
||||
|
||||
### WeTransfer theme
|
||||
|
||||
Special sharing interface with WeTransfer-inspired design, providing a familiar experience for file sharing with custom theming.
|
||||
|
||||
<ZoomableImage
|
||||
src="/assets/v3/screenshots/wetransfer.png"
|
||||
alt="WeTransfer Theme - WeTransfer-inspired sharing interface with custom theming"
|
||||
/>
|
||||
|
||||
### Default reverse theme
|
||||
|
||||
Alternative dark theme interface showing Palmr's theming capabilities and customization options for different user preferences.
|
||||
|
||||
<ZoomableImage
|
||||
src="/assets/v3/screenshots/default-reverse.png"
|
||||
alt="Default Reverse Theme - Dark theme interface showcasing customization options"
|
||||
/>
|
||||
|
@@ -366,13 +366,11 @@ If none of these solutions work:
|
||||
```
|
||||
|
||||
2. **Check our documentation:**
|
||||
|
||||
- [UID/GID Configuration](/docs/3.0-beta/uid-gid-configuration)
|
||||
- [Quick Start Guide](/docs/3.0-beta/quick-start)
|
||||
- [API Reference](/docs/3.0-beta/api)
|
||||
|
||||
3. **Open an issue on GitHub:**
|
||||
|
||||
- Include your `docker-compose.yaml`
|
||||
- Include relevant log output
|
||||
- Describe your system (OS, Docker version, etc.)
|
||||
|
@@ -1,6 +1,3 @@
|
||||
{
|
||||
"pages": [
|
||||
"3.2-beta",
|
||||
"2.0.0-beta"
|
||||
]
|
||||
}
|
||||
"pages": ["3.2-beta", "2.0.0-beta"]
|
||||
}
|
||||
|
@@ -62,4 +62,4 @@
|
||||
"tw-animate-css": "^1.2.8",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
4878
apps/docs/pnpm-lock.yaml
generated
4878
apps/docs/pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user