Welcome to Arcellite

Arcellite is a self-hosted personal cloud platform for file management, AI assistance, database tools, and smart device integrations. This documentation covers every feature from initial setup to advanced integrations.

Version 1.0.0MIT LicensedBy Robera Desissa

Use the sidebar to navigate between sections. If you're new, start with System Requirements and the Installation Guide.

System Requirements

Hardware and software specifications for running Arcellite.

Minimum

CPU4 cores (ARM64 or x86_64)
RAM4 GB
Storage64 GB
OSUbuntu 22.04+ / Debian 12+

Recommended

CPU4+ cores
RAM8+ GB
Storage250+ GB SSD
OSUbuntu 24.04 LTS

Software Prerequisites

Node.js

≥ 18

Required

PostgreSQL

≥ 14

Required

MySQL/MariaDB

Any

Optional

PM2

Latest

Optional

Storage Note: 64 GB is the minimum. We strongly recommend 250 GB or more for a comfortable experience with file uploads, media storage, database backups, and future growth. NVMe/SSD storage provides significantly better performance for database operations and file serving.
Supported Platforms: Ubuntu 22.04/24.04, Debian 12, Raspberry Pi OS (64-bit), and any Linux distribution with Node.js ≥ 18 and PostgreSQL ≥ 14. Both ARM64 and x86_64 architectures are supported.

Installation Guide

Complete step-by-step guide to installing Arcellite on your server.

1

Clone the Repository

Clone Repositorybash
git clone https://bitbucket.org/arcellite-server/arcelliteserver.git
cd arcelliteserver
2

Run the Installer

The automated installer handles everything — Node.js, PostgreSQL, MySQL, SQLite, data directories, environment configuration, and PM2 process management.

Run Installerbash
chmod +x install.sh
./install.sh

The installer runs 10 steps automatically:

  1. 1System dependencies (curl, build tools)
  2. 2Node.js ≥ 18 installation
  3. 3PostgreSQL setup & database creation
  4. 4MySQL/MariaDB setup
  5. 5SQLite support (pure JS — no system packages)
  6. 6Data directories (~/arcellite-data/)
  7. 7Environment configuration (.env)
  8. 8npm dependency installation
  9. 9Frontend build & server compile
  10. 10PM2 process manager & auto-start on reboot
3

Access the Web UI

Once installed, open your browser:

Access URLbash
# Local access
http://localhost:3000

# LAN access
http://YOUR-SERVER-IP:3000

Complete the setup wizard to create your admin account, then go to Settings → AI Models to add your API keys.

4

Managing with PM2

PM2 Commandsbash
pm2 status                    # Check status
pm2 logs arcellite            # View logs
pm2 restart arcellite         # Restart
pm2 stop arcellite            # Stop
pm2 startup                   # Auto-start on reboot
5

Data Directory Structure

Directory Layouttext
~/arcellite-data/
├── files/          # General files
├── photos/         # Images & photos
├── videos/         # Video files
├── music/          # Music files
├── shared/         # Shared files
├── avatars/        # User profile pictures
├── databases/      # User-created databases
│   └── sqlite/     # SQLite files
└── team/           # Isolated per-user storage

File Management

Upload, organize, and share files from any browser.

  • Upload files up to 10 GB

    Real-time progress bar with streaming I/O — no blocking the server

  • AI-powered auto-rename

    Let the AI assistant rename files by content, date, or custom rules

  • Preview everything

    Built-in PDF viewer, image gallery, video player, and audio player

  • Ghost folders

    Hidden directories invisible in file listings — for private content

  • PIN-locked directories

    Require a PIN to open specific folders

  • Team sharing

    Each team member gets isolated storage under your data directory

  • Favorites & tags

    Mark files as favorites and add custom tags for organization

  • Trash & restore

    Deleted files go to trash first; restore anytime within 30 days

AI Assistant

Chat with your own AI — 10 supported providers.

Add API keys via Settings → AI Models. You can switch between providers instantly.

DeepSeekDeepSeek
OpenAIOpenAI
AnthropicAnthropic
GeminiGemini
GroqGroq
GrokGrok
OllamaOllama
MetaMeta
QwenQwen
ElevenLabsElevenLabs
  • Full file access

    The AI can read, write, rename, move, and delete files in your cloud

  • Real-time streaming

    Responses stream token-by-token — no waiting for complete replies

  • Voice output

    ElevenLabs TTS integration converts AI responses to speech

  • Code execution context

    AI can reference your databases and data directory contents

  • Model switching

    Switch between providers mid-conversation; context is preserved

Database Management

Manage PostgreSQL, MySQL, and SQLite databases from your browser.

Arcellite supports three database engines out of the box. Access them via the Database tab in the sidebar.

PostgreSQLPostgreSQL

Primary database. Used by Arcellite itself. Access remotely with your credentials.

Port: 5432
MySQL / MariaDBMySQL / MariaDB

Secondary database. Run queries, manage tables, and export data via browser UI.

Port: 3306
SQLite

Create and query SQLite databases locally. Pure JS — no system packages needed.

Port: Local

Remote access firewall rules:

UFW Firewall Rulesbash
# Allow PostgreSQL remote access
sudo ufw allow 5432/tcp

# Allow MySQL remote access
sudo ufw allow 3306/tcp
Only open remote database ports if you need external access. For most setups, databases should only be accessible from your local network.

n8n Automation

Connect Arcellite to hundreds of apps via n8n workflow automation.

Arcellite ships with 5 pre-built n8n workflow templates. Run n8n on the same server via Docker Compose for seamless integration.

Docker Compose setup for n8n:

docker-compose.ymlyaml
version: '3.8'
services:
  n8n:
    image: n8nio/n8n
    restart: unless-stopped
    ports:
      - '5678:5678'
    environment:
      - N8N_HOST=localhost
      - N8N_PROTOCOL=http
      - WEBHOOK_URL=http://localhost:5678/
    volumes:
      - n8n_data:/home/node/.n8n
volumes:
  n8n_data:

Pre-built workflow templates — download & import into n8n:

In n8n: click + New Workflow → Import from file and select the downloaded JSON. All webhooks auto-configure to your Arcellite server URL.

Chromecast Integration

Cast photos and videos directly to smart TVs via Chromecast.

Arcellite can cast media to any Chromecast or Google TV device on your network via an n8n → Home Assistant pipeline.

Cast Flow

Arcelliten8n WebhookHome AssistantChromecast

Supported media types:

JPGPNGGIFWebPMP4WebMMKVYouTube URLs
Download the Chromecast workflow from Settings → Integrations and import it into your n8n instance.

Discord Integration

Send files and AI messages to Discord channels via n8n.

The Discord integration lets you send files from Arcellite directly to Discord channels. The AI assistant can also auto-select the appropriate channel based on content.

Webhook endpoints (via n8n):

n8n Webhook APIbash
# List available channels
GET /webhook/discord-channels

# Send message/file to channel
POST /webhook/discord-send
{
  "channel": "general",
  "message": "Hello from Arcellite!",
  "fileUrl": "http://YOUR-SERVER:3000/..."
}
Import the AI to Discord workflow template from Settings → Integrations into n8n to enable AI-powered channel routing.

Cloud Storage Sync

Two-way sync with Google Drive and Microsoft OneDrive.

Keep your Arcellite files in sync with cloud storage providers using pre-built n8n workflows.

Google DriveGoogle Drive

Two-way file sync between your Google Drive and Arcellite storage.

Microsoft OneDriveMicrosoft OneDrive

Two-way file sync between your OneDrive and Arcellite storage.

Custom Domain

Access Arcellite remotely via your own domain name.

Two options for remote access: Cloudflare Tunnel (no port forwarding needed) or a traditional nginx/Caddy reverse proxy.

Option 1 — Cloudflare Tunnel (Recommended)

Cloudflare Tunnelbash
# Install cloudflared
curl -fsSL https://pkg.cloudflare.com/cloudflare-public-v2.gpg | \
  sudo tee /usr/share/keyrings/cloudflare-public-v2.gpg >/dev/null

sudo apt-get install -y cloudflared

# Authenticate and create tunnel
cloudflared tunnel login
cloudflared tunnel create arcellite
cloudflared tunnel route dns arcellite cloud.yourdomain.com
cloudflared tunnel run arcellite

Option 2 — Nginx Reverse Proxy

nginx.confnginx
server {
    listen 80;
    server_name cloud.yourdomain.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_cache_bypass $http_upgrade;
    }
}

Security

Eight layers of protection for your self-hosted cloud.

Session-Based Authentication

256-bit cryptographically random Bearer tokens. Sessions expire automatically after 14 days. No JWT vulnerabilities.

Two-Factor Authentication (TOTP)

TOTP-compatible 2FA works with Google Authenticator, Authy, and any RFC 6238 app.

IP Allowlisting

Restrict logins to specific IP addresses or ranges. Unknown IPs receive a blank 404 response.

Traffic Masking

Unauthorized requests return generic 404 responses to prevent fingerprinting and enumeration.

Ghost Folders

Hidden directories that don't appear in file listings. Only the owner can see or access them.

Secure File Uploads

Path traversal protection, MIME type validation, 10 GB size limit, and streaming I/O to prevent memory exhaustion.

Rate Limiting

Per-IP rate limiting on all auth endpoints. Automatic lockout after repeated failures.

User Isolation

Each user's storage is a completely isolated subdirectory. No cross-user file access is possible.

Arcellite is open source — you can audit every line of security-critical code on Bitbucket. We believe transparency is non-optional.